From bfe55f04d0160961a2ba2db3b4167b493a8caa67 Mon Sep 17 00:00:00 2001 From: Serenibyss <10861407+serenibyss@users.noreply.github.com> Date: Sun, 3 Mar 2024 16:15:00 -0600 Subject: [PATCH] Electric Wirecutter (#2404) (cherry picked from commit 4e47ef8e75cab83ffa25dc90b80adf37add2cafd) --- .../java/gregtech/common/items/ToolItems.java | 33 ++++++++++++++++++ .../recipe/handlers/ToolRecipeHandler.java | 19 ++++++++++ .../resources/assets/gregtech/lang/en_us.lang | 3 ++ .../dull/tool_head_wirecutter.json | 6 ++++ .../models/item/tools/wire_cutter_hv.json | 7 ++++ .../models/item/tools/wire_cutter_iv.json | 7 ++++ .../models/item/tools/wire_cutter_lv.json | 7 ++++ .../tools/handle_electric_wire_cutter_hv.png | Bin 0 -> 2552 bytes .../tools/handle_electric_wire_cutter_iv.png | Bin 0 -> 2532 bytes .../tools/handle_electric_wire_cutter_lv.png | Bin 0 -> 2508 bytes .../items/tools/wire_cutter_electric.png | Bin 0 -> 1786 bytes 11 files changed, 82 insertions(+) create mode 100644 src/main/resources/assets/gregtech/models/item/material_sets/dull/tool_head_wirecutter.json create mode 100644 src/main/resources/assets/gregtech/models/item/tools/wire_cutter_hv.json create mode 100644 src/main/resources/assets/gregtech/models/item/tools/wire_cutter_iv.json create mode 100644 src/main/resources/assets/gregtech/models/item/tools/wire_cutter_lv.json create mode 100644 src/main/resources/assets/gregtech/textures/items/tools/handle_electric_wire_cutter_hv.png create mode 100644 src/main/resources/assets/gregtech/textures/items/tools/handle_electric_wire_cutter_iv.png create mode 100644 src/main/resources/assets/gregtech/textures/items/tools/handle_electric_wire_cutter_lv.png create mode 100644 src/main/resources/assets/gregtech/textures/items/tools/wire_cutter_electric.png diff --git a/src/main/java/gregtech/common/items/ToolItems.java b/src/main/java/gregtech/common/items/ToolItems.java index 05e2453846b..5545387ef7c 100644 --- a/src/main/java/gregtech/common/items/ToolItems.java +++ b/src/main/java/gregtech/common/items/ToolItems.java @@ -55,6 +55,9 @@ public final class ToolItems { public static IGTTool BUZZSAW; public static IGTTool SCREWDRIVER_LV; public static IGTTool PLUNGER; + public static IGTTool WIRECUTTER_LV; + public static IGTTool WIRECUTTER_HV; + public static IGTTool WIRECUTTER_IV; private ToolItems() {/**/} @@ -319,6 +322,36 @@ public static void init() { .oreDict(ToolOreDict.toolPlunger) .toolClasses(ToolClasses.PLUNGER) .markerItem(() -> ToolHelper.getAndSetToolData(PLUNGER, Materials.Rubber, 255, 1, 4F, 0F))); + WIRECUTTER_LV = register(ItemGTTool.Builder.of(GTValues.MODID, "wire_cutter_lv") + .toolStats(b -> b.blockBreaking().crafting().damagePerCraftingAction(4) + .efficiencyMultiplier(2.0F) + .attackDamage(-1.0F).attackSpeed(-2.4F) + .brokenStack(ToolHelper.SUPPLY_POWER_UNIT_LV)) + .sound(GTSoundEvents.WIRECUTTER_TOOL, true) + .oreDict(ToolOreDict.toolWireCutter) + .secondaryOreDicts("craftingToolWireCutter") + .toolClasses(ToolClasses.WIRE_CUTTER) + .electric(GTValues.LV)); + WIRECUTTER_HV = register(ItemGTTool.Builder.of(GTValues.MODID, "wire_cutter_hv") + .toolStats(b -> b.blockBreaking().crafting().damagePerCraftingAction(4) + .efficiencyMultiplier(3.0F) + .attackDamage(-1.0F).attackSpeed(-2.4F) + .brokenStack(ToolHelper.SUPPLY_POWER_UNIT_LV)) + .sound(GTSoundEvents.WIRECUTTER_TOOL, true) + .oreDict(ToolOreDict.toolWireCutter) + .secondaryOreDicts("craftingToolWireCutter") + .toolClasses(ToolClasses.WIRE_CUTTER) + .electric(GTValues.HV)); + WIRECUTTER_IV = register(ItemGTTool.Builder.of(GTValues.MODID, "wire_cutter_iv") + .toolStats(b -> b.blockBreaking().crafting().damagePerCraftingAction(4) + .efficiencyMultiplier(4.0F) + .attackDamage(-1.0F).attackSpeed(-2.4F) + .brokenStack(ToolHelper.SUPPLY_POWER_UNIT_LV)) + .sound(GTSoundEvents.WIRECUTTER_TOOL, true) + .oreDict(ToolOreDict.toolWireCutter) + .secondaryOreDicts("craftingToolWireCutter") + .toolClasses(ToolClasses.WIRE_CUTTER) + .electric(GTValues.IV)); } public static IGTTool register(@NotNull ToolBuilder builder) { diff --git a/src/main/java/gregtech/loaders/recipe/handlers/ToolRecipeHandler.java b/src/main/java/gregtech/loaders/recipe/handlers/ToolRecipeHandler.java index 4b6ec9210b2..1997631a38c 100644 --- a/src/main/java/gregtech/loaders/recipe/handlers/ToolRecipeHandler.java +++ b/src/main/java/gregtech/loaders/recipe/handlers/ToolRecipeHandler.java @@ -287,6 +287,10 @@ private static void processElectricTool(OrePrefix prefix, Material material, Too .EUt(8 * voltageMultiplier) .buildAndRegister(); } + + // wirecutter + addElectricWirecutterRecipe(material, + new IGTTool[] { ToolItems.WIRECUTTER_LV, ToolItems.WIRECUTTER_HV, ToolItems.WIRECUTTER_IV }); } // screwdriver @@ -316,6 +320,21 @@ public static void addElectricToolRecipe(OrePrefix toolHead, Material material, } } + public static void addElectricWirecutterRecipe(Material material, IGTTool[] toolItems) { + for (IGTTool toolItem : toolItems) { + int tier = toolItem.getElectricTier(); + ItemStack powerUnitStack = powerUnitItems.get(tier).getStackForm(); + IElectricItem powerUnit = powerUnitStack.getCapability(GregtechCapabilities.CAPABILITY_ELECTRIC_ITEM, null); + ItemStack tool = toolItem.get(material, 0, powerUnit.getMaxCharge()); + ModHandler.addShapedEnergyTransferRecipe(String.format("%s_%s", toolItem.getToolId(), material), tool, + Ingredient.fromStacks(powerUnitStack), true, true, + "PfP", "hPd", "RUR", + 'P', new UnificationEntry(OrePrefix.plate, material), + 'U', powerUnitStack, + 'R', new UnificationEntry(OrePrefix.stick, material)); + } + } + public static void addToolRecipe(@NotNull Material material, @NotNull IGTTool tool, boolean mirrored, Object... recipe) { if (mirrored) { diff --git a/src/main/resources/assets/gregtech/lang/en_us.lang b/src/main/resources/assets/gregtech/lang/en_us.lang index 0dea6d1ea4b..6fc2ebe2f39 100644 --- a/src/main/resources/assets/gregtech/lang/en_us.lang +++ b/src/main/resources/assets/gregtech/lang/en_us.lang @@ -1008,6 +1008,9 @@ item.gt.tool.screwdriver_lv.name=%s Screwdriver (LV) item.gt.tool.screwdriver_lv.tooltip=§8Adjusts Covers and Machines item.gt.tool.plunger.name=%s Plunger item.gt.tool.plunger.tooltip=§8Removes Fluids from Machines +item.gt.tool.wire_cutter_lv.name=%s Wire Cutter (LV) +item.gt.tool.wire_cutter_hv.name=%s Wire Cutter (HV) +item.gt.tool.wire_cutter_iv.name=%s Wire Cutter (IV) item.gt.tool.tooltip.crafting_uses=§a%s Crafting Uses diff --git a/src/main/resources/assets/gregtech/models/item/material_sets/dull/tool_head_wirecutter.json b/src/main/resources/assets/gregtech/models/item/material_sets/dull/tool_head_wirecutter.json new file mode 100644 index 00000000000..92690c87e45 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/material_sets/dull/tool_head_wirecutter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/material_sets/dull/tool_head_wire_cutter" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/tools/wire_cutter_hv.json b/src/main/resources/assets/gregtech/models/item/tools/wire_cutter_hv.json new file mode 100644 index 00000000000..60a5a9255c1 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/tools/wire_cutter_hv.json @@ -0,0 +1,7 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "gregtech:items/tools/handle_electric_wire_cutter_hv", + "layer1": "gregtech:items/tools/wire_cutter_electric" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/tools/wire_cutter_iv.json b/src/main/resources/assets/gregtech/models/item/tools/wire_cutter_iv.json new file mode 100644 index 00000000000..6a7f378d8a9 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/tools/wire_cutter_iv.json @@ -0,0 +1,7 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "gregtech:items/tools/handle_electric_wire_cutter_iv", + "layer1": "gregtech:items/tools/wire_cutter_electric" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/tools/wire_cutter_lv.json b/src/main/resources/assets/gregtech/models/item/tools/wire_cutter_lv.json new file mode 100644 index 00000000000..406df61785c --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/tools/wire_cutter_lv.json @@ -0,0 +1,7 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "gregtech:items/tools/handle_electric_wire_cutter_lv", + "layer1": "gregtech:items/tools/wire_cutter_electric" + } +} diff --git a/src/main/resources/assets/gregtech/textures/items/tools/handle_electric_wire_cutter_hv.png b/src/main/resources/assets/gregtech/textures/items/tools/handle_electric_wire_cutter_hv.png new file mode 100644 index 0000000000000000000000000000000000000000..b54d8d136c2f0e8692327d3b940f495d641295d2 GIT binary patch literal 2552 zcmcIm+i%-c7No;Jl zNj9`;z3kq#qXTv+($GMvP?Em;lr~tGYhk)FD@)xzHs5asp+$hGkNgf@yW^g<0sxc zGq*T5w>UksU|EL`9XdTd{raiX=QnQLxOMB+GqV?q#iQBm!CdY&+ny|yj$vQcuV24u z)28h^b{v_UpO}~#+h1yEXlU8c($&?K$rOA(Ut3!n*-bVzHFb1!VEiR85W|nKn;05d z`4<<_%q+i*iJGl}7afAw^0aq1T?Bgo+Ag$RSrH zi@9vxQHo)zOswGV-Zn##Wr#Z#rXt>n@#gdN`8)p002^w{bC@1G$`&OIlyrY z5E&rTKvFnP;bgLUQTRNP4B2{0NyMJ5o`+XqD&xAA!Z3wG!C&D0rk!S3S(X{VF&sx@ z1nrdau3Dt?&bA6kl_rK9Xd9Mmn0eBpRW)ZRE*0DHU@pv7+CT%WPM>}r+1oo&J;F@SBS+Wq5K#n%*vRq>151%#8Lmb9*w2+*+_LwJ87EPTE&KIEF{PK1+r(Kk=MIFdsfC@B@1);01`Zq9}WPu{$QVV|po4S!IJrJrx zC1u(<6=%uFscFPm`E>cTcw8CGJFc3CXfPJ0u&aK<(3OCuLz$I%I=~{97Jwkpnk);n zrU{w`cuftYf;Ib?3CFz(*6ej`52aK<)exiw83pN-B#5-e2UMDs051SthkQz{*}q^L zxR=!Iqw~}&r1Y6t(~g@u&N5#UF_v*zPRfAc;F^`n4N~cra+{2xS66LSMV~duvZ@pn zdcqG=(5pDosp__|M$#TG=n8EigD~lRlu&^=X38z7Hj1Qif*-6j<{<)c)QS6t!RY}p zrSUQiMNXm-CjdGqvmBj*f(SG%$V$9eOT*n^@CqAH0AJJSBZW~hf*CcRM)=)|`}{u% z?BPVcW_|8%zW*Vx5aYdGSIaTPtgYP89mUtWCW1TIlee=<0%dte)%2>Zy1aK+29Rz- z+^%=%f;5ZA7Q{U-3LK65UZf%9Asdi@AnU1$pIPG{(8@d~c@(q;bU?GLpwY4< zrD$1&K;%&{D6!HSw3V&Z5rmjKzTPYJiq)#IRd%$pi)SKU;k?!+vbU;Fb(F_)v+>N{ za_fgPc-~J8#v;j{5%^)GadR^O(H_w3+k11@GTF7``i)y(eD!6ke%)6re){`w>wIUg zH8r0)e)7cgWal$Gx6|9cKGHV7u&*tVOdM@mTKazJm-ojq`;ESv-+X)fJDkVI1|zLv ufW0j>I_k&gUmE>ss?!?#V7dF+Y%B5WlR{(ryZ)T_mt(MhD0Vga%H*FW_%)RP literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/tools/handle_electric_wire_cutter_iv.png b/src/main/resources/assets/gregtech/textures/items/tools/handle_electric_wire_cutter_iv.png new file mode 100644 index 0000000000000000000000000000000000000000..303fea217f6ee5fa49bdbbc901d221d81931c863 GIT binary patch literal 2532 zcmcImTWs4@7LU+qY?_2LAx%6m9ySTIO@py_UO@1~D@aJ?IJXtnU6{a<8%s#VRI;+c zFzKw1R9hK0HGv?dl+>3eCY)z8Cv>?eA3Ub=7-`2RCS6@ANh7aokmz#hkiNWY*RFm0 z_N7o+1*SOsnlyThp1)(qj=sLW1H;4exFH^RrK6*xduR9H;GnSo{jB2<(ed3t9TU6Fv-c9XW(TLvL-3oPKx{O%da@rwo=>?B?oif6e-!WCw;PXaz2kw zE@R!|CMSBjlQl#cDkL=6TBYm+sFvdD#E5>6wt0@NL&D`0myS+kkLDKGDc2{g78e1A z5VD#cS5%dlSQ%$UD2hB(c&G!YAyGu4&NeTOp2xCD-zuQR>~qcY=qkmP!q7uJU#(W- zRVnWJMPAT#orfYXihv?Ou;zqD4LHI621%19O9JfMUTC`x8_^o3yAq~2>T)BNir40L zf@Z>K>iC-B@j@I%vDJYVZsWWazg+jg!aOOH3UR`KVud!ArYo0g!?&cZRNCkuoL;3K zH3Qrd9pu+M!Y`7*UGXuQUZp4QZ#m|b+|Uh5?mgmY|J;toLsLF6Lf6l`Zn;&lg%%4d zN^zMTIbu7OTMb5|QyQS~^8Qk~Rht2*L(5M+IRSq45u}kQX3Q zXsPADfnCcktUVBFVN`Jaib1nvSBxUzJ*QYdEtf-cP7oRnCUe;oM_rBEwuMyF!n&YK zKoy7pWGHLE)O8t{rfix}G7YtmXxV37yb@KgWp7b?tQAzlBpAp#Nq~YTE5MXg0|*+F zWN2AfDi|&M7k!)dl2Lwio_2-Mlv{TFoNLi6ODz#o8Q0~6X6=C1Y^~lPjc%#8$r3rS zX{#yvvdz|2g$x`CKgHpw;>6;b+x8Yod$^z*wAB)!r1w!m0~WZ2uxj`uU8D(qu+sR4 z2qZ98?;nO}sY=0=bbu9614NV|Na%tH3RqU4X(j|sQd()aI}8a4DuPl=qmL9u!w8oQ zr%33#mG=3664=9uddvFU-F*K;U`alDy>6CclHXdn$vcW~bxoRfa3t?wlLYGW&KSi_ zTWxtyGzO66V%n~E=n@i6=%kxJAEusJ> zv>*@!*#x?#6@YGFs7NG{&;)G@+Q!!A2$K9AU+)!q!)nvmsyo`)r8AMPXkJ?rIa;-+ zI&rAnd^)rD-uUG`I`3EKvg!QD5{5I|_H;p*8G&7~!`H^ovxCEzuip6jn=3um5t#H$3D2&+4b(*@0@;t9XL38W$gMhr+R<<=;OW*k1V{^IWoF_ZuZP)XV0F?T)TPm zhwp#B{oVGtbkFTu+D$bU7+*X&uwFVf;4SB_vllPv%%?x`=ij(>97KOP=BDSf7c$4* F{0pFb6#oDK literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/tools/handle_electric_wire_cutter_lv.png b/src/main/resources/assets/gregtech/textures/items/tools/handle_electric_wire_cutter_lv.png new file mode 100644 index 0000000000000000000000000000000000000000..c45bffa43605a2c3858313c423a5ef2d17126870 GIT binary patch literal 2508 zcmcImYitx%7~O)c6=*C3OQSRlLs3*_=e@Ht?1H7+(i#^^S)r&uI&nLs*zLnyE>}@)O`sm#i=C^m0DX_^>zC0j&#Ip>-PN^s>`!QLQ@A2n z;c{($cKDxiJ{sQ=ubFSTTqWhsmACe`&qljkH}~tI2D>5nfCP-FTUHGPx|7j3Lc3hP zY00<@7C;+QU|5g&@pIifa7=>lNv~-);hgrFA<(`6h$=p9YSA!XQbG(- zXvGAy|i18YaX9H$wo5qA)>p^BxaW06!UH zD25>^o}@&A5+sI^7!k{SaI_zW`Ak)l>I2o8{m{sdH`#VvBFRJ|;ZCq_!wi$OD2gP- zkPJg01YxzsY&l89tO;q73{3!9z|`ZmZp1K$R#uD_+mEA=(^{hO9CyshBn+jFOv-VR zc2kbF6i@{@T)f4Mq#{rO2_rBHW448`bPkKs6%6L!gVIK$IkaV0wW5eJ0tZD~p|&_A z>!D?|m;hF_q8%q>1B*8qwqZ3HSJ09BJEtZtRhm$?4KrjIk!;24vMd%8|D%qXPG+cB{_2AJh=)NW&~cvlFrjE5azj*LE6t9YQR* z_3APh)x&EFD-wWb1OhS~MR-M;AvD18l%jZPf#tJlxLgJ+(H@CnvmU)68R7c)(Q7 z-c!>DkZJ(bu9xV%Ebxj@^AMEcMLo}R41xNdCjejp?GY$WRJC-R5&d7#iYy~I6of*l z6hYIRLWqK(5uywzo`qhoKnsJ=rl$rf@R65dy^{3wssYDVD$w*SIup?dg+5WFK?-;hsWbjckWK?8_`od^5Up5r}}!%-|Bkt z)GIxw_a}WD4mG!QEv`O0YWELJA4~7>s?l^YBmO5Lz-(Ga=x4yDf_fP!AH)dCF zvGw?h>hQb9(N%lSA%&uA^gJ;YRPy zgS*!6{Q1K6_ga2^*< z6g18+X_3mdmyLKeAeUkzhI~79WqI$yZ}Ns7;CQpQd+7I1eN_I(!=-rP^!$dy&-do9 z(Kdb2+_`7u@3USwaejGad)?a87uMwEovohGcd)Q?+?#ci>Rzi~x+rQb?pXa*^%?Cc m*Sn#~B^`vd=4gL$Z`u1(zMk^vR$FpjscNfc2D+vK+Ik`9XCMQdB zdv80%54usc17+wa^T+nXiThE}NkLlZ27bWorda&7Kb@1QjIn_~rW7_$?nltsZexLy zoa8+3^L{*U-nR$(ds~_xYo;iwCEb@AB+pI$+VCK`Kl$fPNFEQ_eY;(XdgLj8HKYf( zUZbc7=8epVH=^v6RcwZ!hO;PCHf@5YsLrmk4b@TP(OHx;tORp)evzRKEx`;&6`G9fUL2kEj|uw1#EU@E*a+54Y4hOR)o(FD`&JETXH z0Xm5tM8`t{s{#P%xD<-UVkoOdJ7@t20tccTkXR6x1wj@hx^^+douldUU}{Ir8F@=E zdC#+Djw_W)p;9=6ogBwYlEeXl69kqZSa;m=V41btEp>(za#hE$Jp)^`&j_=)=p`5u zYBdMb4rnd6Rwq(1t_*FC4*@@?3Q$u6oLzJZ73Z4Dp#n0I<+%jQ2Ut=jMG4?*(wb&~ zcDYL;HPLQn+(z6Wa&gg7QO_9hxTPMLoyQ(_^LU*+g5w|?TTVI%df3TeT&OEG zP-mfqa414QJ#1JSF1c;Kmzn`eK@TMuqFRIn0?UI8ku1u~Ahr#NG5}SmLK;DX9{fKz zEb}p$m;M9BnxT*15vr-OjvW({Dj6osAo|nr!CimmWtA;1Vcg%8HOh7FdUAl zVUdkUS%Ho4kvJ<#YK+zOm-H}?2Kj|x;of-yh2$hIU`N3ksdCuw-%20JeTGZK8n68kLuhYpS1{;G z>&Q^`yF0~PG@7PY3e;dqG@)AsBWD#nI z%-izUyAP3B{e3#soe>XSd7rl?w?EvoIQ&&(-_f1DFZ7<}#rv98I$oNbpFV!<=>7v% z=iI{C9cT2WwogwkoRzZ zN;}-Ja&h119q(RQ?WayHWp;hAf7A5LAI;Z(J+<^>