From c7e3f3bb42f0d2fe8c1906fa9bf01dd009088d4b Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 2 Apr 2023 20:30:22 +0200 Subject: [PATCH] yeah whatever this is --- .../com/hbm/blocks/network/CraneSplitter.java | 2 + .../com/hbm/render/block/RenderSplitter.java | 8 +-- .../network/TileEntityCraneGrabber.java | 57 ++++++++++++------ src/main/resources/assets/hbm/lang/de_DE.lang | 2 +- src/main/resources/assets/hbm/lang/en_US.lang | 2 +- .../assets/hbm/models/blocks/splitter.obj | 20 +++--- .../blocks/crane_splitter_back_left.png | Bin 178 -> 270 bytes .../blocks/crane_splitter_back_right.png | Bin 181 -> 271 bytes .../blocks/crane_splitter_front_left.png | Bin 121 -> 301 bytes .../blocks/crane_splitter_front_right.png | Bin 121 -> 316 bytes .../textures/blocks/crane_splitter_inner.png | Bin 199 -> 125 bytes .../blocks/crane_splitter_inner_side.png | Bin 0 -> 121 bytes .../textures/blocks/crane_splitter_left.png | Bin 137 -> 376 bytes .../textures/blocks/crane_splitter_right.png | Bin 130 -> 360 bytes .../blocks/crane_splitter_top_left.png | Bin 153 -> 339 bytes .../blocks/crane_splitter_top_right.png | Bin 153 -> 333 bytes .../hbm/textures/blocks/crane_top_wide.png | Bin 0 -> 330 bytes 17 files changed, 57 insertions(+), 34 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_splitter_inner_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_top_wide.png diff --git a/src/main/java/com/hbm/blocks/network/CraneSplitter.java b/src/main/java/com/hbm/blocks/network/CraneSplitter.java index 98b519420..11de7afda 100644 --- a/src/main/java/com/hbm/blocks/network/CraneSplitter.java +++ b/src/main/java/com/hbm/blocks/network/CraneSplitter.java @@ -34,6 +34,7 @@ public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnt @SideOnly(Side.CLIENT) public IIcon iconRight; @SideOnly(Side.CLIENT) public IIcon iconBelt; @SideOnly(Side.CLIENT) public IIcon iconInner; + @SideOnly(Side.CLIENT) public IIcon iconInnerSide; public CraneSplitter() { super(Material.iron); @@ -68,6 +69,7 @@ public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnt this.iconRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_splitter_right"); this.iconBelt = iconRegister.registerIcon(RefStrings.MODID + ":crane_splitter_belt"); this.iconInner = iconRegister.registerIcon(RefStrings.MODID + ":crane_splitter_inner"); + this.iconInnerSide = iconRegister.registerIcon(RefStrings.MODID + ":crane_splitter_inner_side"); } public static int renderID = RenderingRegistry.getNextAvailableRenderId(); diff --git a/src/main/java/com/hbm/render/block/RenderSplitter.java b/src/main/java/com/hbm/render/block/RenderSplitter.java index 0d2f1b91a..9ec29dfe4 100644 --- a/src/main/java/com/hbm/render/block/RenderSplitter.java +++ b/src/main/java/com/hbm/render/block/RenderSplitter.java @@ -61,15 +61,15 @@ public class RenderSplitter implements ISimpleBlockRenderingHandler { private static void drawSplitter(Tessellator tessellator, Block block, boolean isLeft, float rotation, boolean shadeNormals) { CraneSplitter splitter = (CraneSplitter) block; ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Top", isLeft ? splitter.iconTopLeft : splitter.iconTopRight, tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Bottom", isLeft ? splitter.iconFrontRight : splitter.iconFrontLeft , tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Bottom", isLeft ? splitter.iconTopRight : splitter.iconTopLeft , tessellator, rotation, shadeNormals); if(isLeft) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Left", splitter.iconLeft, tessellator, rotation, shadeNormals); if(!isLeft) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Right", splitter.iconRight, tessellator, rotation, shadeNormals); ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Back", isLeft ? splitter.iconBackLeft : splitter.iconBackRight, tessellator, rotation, shadeNormals); ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Front", isLeft ? splitter.iconFrontLeft : splitter.iconFrontRight, tessellator, rotation, shadeNormals); ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Inner", splitter.iconInner, tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerLeft", splitter.iconInner, tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerRight", splitter.iconInner, tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerTop", splitter.iconInner, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerLeft", splitter.iconInnerSide, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerRight", splitter.iconInnerSide, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerTop", splitter.iconInnerSide, tessellator, rotation, shadeNormals); ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerBottom", splitter.iconBelt, tessellator, rotation, shadeNormals); } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java index 84331f475..ba50abcea 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java @@ -2,6 +2,7 @@ package com.hbm.tileentity.network; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.network.CraneInserter; import com.hbm.entity.item.EntityMovingItem; import com.hbm.interfaces.IControlReceiver; @@ -14,6 +15,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -83,27 +85,46 @@ public class TileEntityCraneGrabber extends TileEntityMachineBase implements IGU access = CraneInserter.masquerade(sided, dir.ordinal()); } - List items = worldObj.getEntitiesWithinAABB(EntityMovingItem.class, AxisAlignedBB.getBoundingBox(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, xCoord + dir.offsetX + 1, yCoord + dir.offsetY + 1, zCoord + dir.offsetZ + 1)); - - for(EntityMovingItem item : items) { - ItemStack stack = item.getItemStack(); - boolean match = this.matchesFilter(stack); - if(this.isWhitelist && !match || !this.isWhitelist && match) continue; + if(te instanceof IInventory) { - ItemStack copy = stack.copy(); - int toAdd = Math.min(stack.stackSize, amount); - copy.stackSize = toAdd; - ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, copy.copy(), dir.ordinal()); - int didAdd = toAdd - (ret != null ? ret.stackSize : 0); - stack.stackSize -= didAdd; - - if(stack.stackSize <= 0) { - item.setDead(); + /* + * due to this really primitive way of just offsetting the AABB instead of contracting it, there's a wacky + * edge-case where it's possible to feed the grabber by inserting items from the side if there's a triple + * lane conveyor in front of the grabbing end. this is such a non-issue that i'm not going to bother trying + * to fuck with the AABB further, since that's just a major headache for no practical benefit + */ + double reach = 1D; + if(this.getBlockMetadata() > 1) { //ignore if pointing up or down + Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + if(b == ModBlocks.conveyor_double) reach = 0.5D; + if(b == ModBlocks.conveyor_triple) reach = 0.33D; } + + double x = xCoord + dir.offsetX * reach; + double y = yCoord + dir.offsetY * reach; + double z = zCoord + dir.offsetZ * reach; + List items = worldObj.getEntitiesWithinAABB(EntityMovingItem.class, AxisAlignedBB.getBoundingBox(x + 0.1875D, y + 0.1875D, z + 0.1875D, x + 0.8125D, y + 0.8125D, z + 0.8125D)); - amount -= didAdd; - if(amount <= 0) { - break; + for(EntityMovingItem item : items) { + ItemStack stack = item.getItemStack(); + boolean match = this.matchesFilter(stack); + if(this.isWhitelist && !match || !this.isWhitelist && match) continue; + + ItemStack copy = stack.copy(); + int toAdd = Math.min(stack.stackSize, amount); + copy.stackSize = toAdd; + ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, copy, dir.ordinal()); + int didAdd = toAdd - (ret != null ? ret.stackSize : 0); + stack.stackSize -= didAdd; + + if(stack.stackSize <= 0) { + item.setDead(); + } + + amount -= didAdd; + if(amount <= 0) { + break; + } } } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index ff143a96f..f49aec1bb 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3578,7 +3578,6 @@ tile.conveyor.name=Förderband tile.conveyor_chute.name=Förderschütte tile.conveyor_double.name=Zweispuriges Förderband tile.conveyor_lift.name=Kettenaufzug -tile.conveyor_splitter.name=Förderband-Teiler tile.conveyor_triple.name=Dreispuriges Förderband tile.corium_block.name=Corium tile.crane_boxer.name=Förderband-Verpacker @@ -3586,6 +3585,7 @@ tile.crane_extractor.name=Förderband-Auswerfer tile.crane_grabber.name=Förderband-Greifer tile.crane_inserter.name=Förderband-Einsetzer tile.crane_router.name=Förderband-Sortierer +tile.crate_splitter.name=Förderband-Teiler tile.crane_unboxer.name=Förderband-Entpacker tile.crashed_bomb.name=Blindgänger tile.crate.name=Vorratskiste diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 5cf9d45ce..b0c7451dc 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4387,7 +4387,6 @@ tile.conveyor.name=Conveyor Belt tile.conveyor_chute.name=Conveyor Chute tile.conveyor_double.name=Double-Lane Conveyor Belt tile.conveyor_lift.name=Conveyor Chain Lift -tile.conveyor_splitter.name=Conveyor Splitter tile.conveyor_triple.name=Triple-Lane Conveyor Belt tile.corium_block.name=Corium tile.crane_boxer.name=Conveyor Boxer @@ -4395,6 +4394,7 @@ tile.crane_extractor.name=Conveyor Ejector tile.crane_grabber.name=Conveyor Grabber tile.crane_inserter.name=Conveyor Inserter tile.crane_router.name=Conveyor Sorter +tile.crane_splitter.name=Conveyor Splitter tile.crane_unboxer.name=Conveyor Unboxer tile.crashed_bomb.name=Dud tile.crate.name=Supply Crate diff --git a/src/main/resources/assets/hbm/models/blocks/splitter.obj b/src/main/resources/assets/hbm/models/blocks/splitter.obj index 611da2f75..4078add15 100644 --- a/src/main/resources/assets/hbm/models/blocks/splitter.obj +++ b/src/main/resources/assets/hbm/models/blocks/splitter.obj @@ -31,10 +31,10 @@ v -0.500000 0.250000 0.375000 v -0.500000 0.875000 0.375000 v 0.000000 0.250000 0.375000 v 0.000000 0.875000 0.375000 -vt 1.000000 0.875000 -vt 0.500000 0.250000 -vt 1.000000 0.250000 -vt 0.500000 0.875000 +vt 0.187500 1.000000 +vt 0.812500 0.500000 +vt 0.812500 1.000000 +vt 0.187500 0.500000 vn 0.0000 0.0000 -1.0000 s off f 10/9/3 11/10/3 9/11/3 @@ -57,10 +57,10 @@ v -0.500000 0.250000 -0.375000 v -0.500000 0.875000 -0.375000 v 0.000000 0.250000 -0.375000 v 0.000000 0.875000 -0.375000 -vt 0.000000 0.250000 -vt 0.500000 0.875000 -vt 0.000000 0.875000 -vt 0.500000 0.250000 +vt 0.187500 1.000000 +vt 0.812500 0.500000 +vt 0.812500 1.000000 +vt 0.187500 0.500000 vn 0.0000 0.0000 1.0000 s off f 17/17/5 20/18/5 18/19/5 @@ -135,10 +135,10 @@ v -0.500000 0.000000 0.500000 v 0.500000 0.000000 0.500000 v -0.500000 0.000000 -0.500000 v 0.500000 0.000000 -0.500000 -vt 1.000000 0.000000 vt 0.000000 1.000000 -vt 0.000000 0.000000 +vt 1.000000 0.000000 vt 1.000000 1.000000 +vt 0.000000 0.000000 vn 0.0000 -1.0000 0.0000 s off f 43/41/11 42/42/11 41/43/11 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_splitter_back_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_splitter_back_left.png index 800df3c444a03cdd2e712a0edf3473a2c545d752..1ed0fa1516b617618dc7424b1429b1b2c3f86ab4 100644 GIT binary patch delta 226 zcmV<803H9b0geKYG=IfOL_t(Ijm46&4TCTgM4uxXBs$vEv`8!vDTBC6MaKrIso5(F zFaiyNNLa|Gi49I71f<9{_MP?b`=1T}hA4`{{9+IQWLf5k#u&FQ_pYlDz5zg4mQL)t zjwp&&xs-A?Xxr8uEV0J5*0X^n0Cimhkf!M>w_}_D`o8BVK3i_E72XKTgtx-h95%2S z1j8`wF7^znsv-aJ$}t*DE|9deM z$#?J9U*q3Y^}wOsQ+@>y094fn0LVFCM>9i2hCZcq2ee?uKL7x=Rsdp*L*MlM7k)qo nSlIw{J7~+ARRAcZER_LH)z2&mU!!dD00000NkvXXu0mjfZl5)@ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_splitter_back_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_splitter_back_right.png index 919ca6bf08986ab92b082b207d8470e5210d2812..7e5fb324e8c0c9bc1c631b0c2532ec9e97165cae 100644 GIT binary patch delta 227 zcmV<90383d0gnQZG=IiPL_t(Ijm45N4uc>RhCeEciRW?qTwmjQ*=-?&a1h|9v((Bw&%Xm415S1JyQE{bdMwMjCIItS_Iw`GG?lfG zo6X<%6!txUQ)iG%FB+nV5JK1k5J2m?=ItKPcg#g(3(pV&*vkkoKgRt0D(2e_+&m<8 zFK7DkghKS`E_$B7-hSodHM-rzSlYHN{*BH#taGlk9)M5O;H;N;f*2D30000R5`)K)xgumF~p)bxul@r$9V_Fgu;RXh3LR^W~gGs;V;np%Xw+6v?KU&EI$(BqAvQpswqAARdfCW|j=k zfVOP`aL%EstEcY*RF!F(P}Nlze*%QsiV-{e1?c-8GfM!=e@k7SoB;MN??`imAQ9Po zgw(%7MU)__hxNjeS`i}?fa`tN}%hK{Z$2qtAgrOhDF}(wTrfKN9Za3?ez5u9M W3ur>tKOX=93IG5}MNUMnLSTZ32!5~t delta 75 zcmdnPR5`)K)xgumF~p+x?O8)X1_PeM4qL?&+VaxQ-ms0-WmvELa^ngHmEOkPJJ~q| f9)vS&JMO@|dl$>&$I0jF8Gyjk)z4*}Q$iB}Q7RoW diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_splitter_inner.png b/src/main/resources/assets/hbm/textures/blocks/crane_splitter_inner.png index 95506ddf879834e0acfab887677c5a367d5f19ca..9a6d83c4afde3924127cb7904f6f977c0e5bd63a 100644 GIT binary patch delta 79 zcmX@kSUbVQ)5O!oF~p)bSwu|i-+2edghejKp*#tW&-T>*o~Ge@=+L1n#Rpd~HXme| jQqmx^zoht}fdK=9c^%8tQwr_J7=Xaj)z4*}Q$iB}?A#vQ delta 154 zcmV;L0A>Gu#{rNue|||sK~y-6rI67LfFKM7Ps0ST2Q#q$XZL^=^uwqDDHiP)3Ato@teOCh zPTqPM3M`{WfV%BzftJ}Mu)gTe~DWM4f!*C#v literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_splitter_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_splitter_left.png index aab446258ec4fde42498a5c3be2a3977a7086d0a..a545cccbd83585ea0f3b8bcc0135b952c565ad05 100644 GIT binary patch delta 334 zcmV-U0kQsx0r&!tGk*auNklWigWm+4%fS!9lISW5IWh?lXSXlyij#O&({Ee z!{LCccGNk?a=Gjzlx5igO#$k<2Eba2h{Wou%6`8GU^1Biuzy%AB5b?edVq-FoI^ye zx@g-LAlkt@5Rs^TKY&3av zgt36MqoL6N-@#Z==q3fG7Y>kz2hpzzg#s7RncN>4silWf@e2%sD*PBnr3tKy#PJRo= g;}K)bz#jgVZxwGoF%|u{@Bjb+07*qoM6N<$f_hw|fB*mh delta 93 zcmeyt)X6x(IE=x;)5S5wqWA6Pjl2vBJj@5#4QIH2PrKl*B)DkdgY4H<=AM(g*&3F- xJy6D*;%d{RI-zmf%jFJlnB^;&B?9dAvKiAtc-1E;PG@ES0#8>zmvv4FO#p^xA+!Jh diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_splitter_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_splitter_right.png index 8c4dabdd8bbf58968dd45fbaa6be8daa9c213123..dffb103464da9722d5790599b1fe6552ecb67038 100644 GIT binary patch delta 318 zcmV-E0m1%)0q6pdGk*aeNklXh6JJa_oUSGk0 zJ?hb(F#dSh;y3OHJ{{~`R8_@AQTR_3mKygTw!q97$I)(K7zQY%5_`CeZ=1d_LPy=O QNdN!<07*qoM6N<$g5^e%PXGV_ delta 86 zcmV-c0IC1z0)hdMGfx0HNkltj25aqR7k>iy6~5dw4SxVah^Vs!FpeY6xd_m< zE$_RU`#U&()<`MY(#^U>Z$9j6hHn@r*gd~e6vcUfuM8li`07 z*IN4O&9m6nOZFfsQ3&ktrSAQ-938oCQ*<#uPWY~0Wut1+^J~z|+;w JWt~$(69C}NA>jZ3 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_splitter_top_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_splitter_top_right.png index cadc1bb9abf79558ff476f8e830d076bce1bb074..7d072091f1b8725221740c9bb53067b6e277366a 100644 GIT binary patch delta 291 zcmV+;0o?wX0nGxCGk*aDNkloh&r}}}~!hZKg6h-3*&Z?@ybL}`Y#&A63)E1tf7$L7O z?<7gGC>Bir7a$BnKEF@1O4G^c@h8s002ovPDHLkV1hggfxQ3# delta 109 zcmX@hG?Q_HaT-H_r;B5VMQ?IRLBWsn4vYzf1qBMxpBtIkC1z-BoZHx#ctbis{^9{3 zc9_R_Lh7Sr(^ZBXsRBu-LWvCt!Z|UGcg<$)NRW^?Q1svcV;2tt!(@Gd8N~@?qY#~!hV!xCo%rSwjVt$ z^?fh+qiz7ubzSmNM8Z9O_9CJ~qPA_niXX=j!!SGm0AQM?5D*8(i9{q@{H(Or4}fJ^ z0071qFmsmv3_#N~Z{u$Oz|3&Yftj;iI1Atp6U*l`#-srLD%lWs=Bj+H0I;qrL?i*& zQ`hj`IT!8;z^mb_t+S=)&5f!)K7YZFH(dGu}ta5b%fIoRGBC59caqE*I)LJJ$ z>@BDTKty544_i?3`xD={ZTlJ|RsgWphBes(%1^xS#Vnu*?o}rYg cn)p-Q0X%kI&mQ99^Z)<=07*qoM6N<$f*8YyXaE2J literal 0 HcmV?d00001