yeah whatever this is

This commit is contained in:
Bob 2023-04-02 20:30:22 +02:00
parent b82597c0e3
commit c7e3f3bb42
17 changed files with 57 additions and 34 deletions

View File

@ -34,6 +34,7 @@ public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnt
@SideOnly(Side.CLIENT) public IIcon iconRight; @SideOnly(Side.CLIENT) public IIcon iconRight;
@SideOnly(Side.CLIENT) public IIcon iconBelt; @SideOnly(Side.CLIENT) public IIcon iconBelt;
@SideOnly(Side.CLIENT) public IIcon iconInner; @SideOnly(Side.CLIENT) public IIcon iconInner;
@SideOnly(Side.CLIENT) public IIcon iconInnerSide;
public CraneSplitter() { public CraneSplitter() {
super(Material.iron); 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.iconRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_splitter_right");
this.iconBelt = iconRegister.registerIcon(RefStrings.MODID + ":crane_splitter_belt"); this.iconBelt = iconRegister.registerIcon(RefStrings.MODID + ":crane_splitter_belt");
this.iconInner = iconRegister.registerIcon(RefStrings.MODID + ":crane_splitter_inner"); 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(); public static int renderID = RenderingRegistry.getNextAvailableRenderId();

View File

@ -61,15 +61,15 @@ public class RenderSplitter implements ISimpleBlockRenderingHandler {
private static void drawSplitter(Tessellator tessellator, Block block, boolean isLeft, float rotation, boolean shadeNormals) { private static void drawSplitter(Tessellator tessellator, Block block, boolean isLeft, float rotation, boolean shadeNormals) {
CraneSplitter splitter = (CraneSplitter) block; CraneSplitter splitter = (CraneSplitter) block;
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Top", isLeft ? splitter.iconTopLeft : splitter.iconTopRight, tessellator, rotation, shadeNormals); 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, "Left", splitter.iconLeft, tessellator, rotation, shadeNormals);
if(!isLeft) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Right", splitter.iconRight, 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, "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, "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, "Inner", splitter.iconInner, tessellator, rotation, shadeNormals);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerLeft", splitter.iconInner, tessellator, rotation, shadeNormals); ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerLeft", splitter.iconInnerSide, tessellator, rotation, shadeNormals);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerRight", splitter.iconInner, tessellator, rotation, shadeNormals); ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerRight", splitter.iconInnerSide, tessellator, rotation, shadeNormals);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerTop", splitter.iconInner, 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); ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerBottom", splitter.iconBelt, tessellator, rotation, shadeNormals);
} }

View File

@ -2,6 +2,7 @@ package com.hbm.tileentity.network;
import java.util.List; import java.util.List;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.network.CraneInserter; import com.hbm.blocks.network.CraneInserter;
import com.hbm.entity.item.EntityMovingItem; import com.hbm.entity.item.EntityMovingItem;
import com.hbm.interfaces.IControlReceiver; 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.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
@ -83,27 +85,46 @@ public class TileEntityCraneGrabber extends TileEntityMachineBase implements IGU
access = CraneInserter.masquerade(sided, dir.ordinal()); access = CraneInserter.masquerade(sided, dir.ordinal());
} }
List<EntityMovingItem> 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)); if(te instanceof IInventory) {
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); * due to this really primitive way of just offsetting the AABB instead of contracting it, there's a wacky
copy.stackSize = toAdd; * edge-case where it's possible to feed the grabber by inserting items from the side if there's a triple
ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, copy.copy(), dir.ordinal()); * lane conveyor in front of the grabbing end. this is such a non-issue that i'm not going to bother trying
int didAdd = toAdd - (ret != null ? ret.stackSize : 0); * to fuck with the AABB further, since that's just a major headache for no practical benefit
stack.stackSize -= didAdd; */
double reach = 1D;
if(stack.stackSize <= 0) { if(this.getBlockMetadata() > 1) { //ignore if pointing up or down
item.setDead(); 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<EntityMovingItem> 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; for(EntityMovingItem item : items) {
if(amount <= 0) { ItemStack stack = item.getItemStack();
break; 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;
}
} }
} }
} }

View File

@ -3578,7 +3578,6 @@ tile.conveyor.name=Förderband
tile.conveyor_chute.name=Förderschütte tile.conveyor_chute.name=Förderschütte
tile.conveyor_double.name=Zweispuriges Förderband tile.conveyor_double.name=Zweispuriges Förderband
tile.conveyor_lift.name=Kettenaufzug tile.conveyor_lift.name=Kettenaufzug
tile.conveyor_splitter.name=Förderband-Teiler
tile.conveyor_triple.name=Dreispuriges Förderband tile.conveyor_triple.name=Dreispuriges Förderband
tile.corium_block.name=Corium tile.corium_block.name=Corium
tile.crane_boxer.name=Förderband-Verpacker 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_grabber.name=Förderband-Greifer
tile.crane_inserter.name=Förderband-Einsetzer tile.crane_inserter.name=Förderband-Einsetzer
tile.crane_router.name=Förderband-Sortierer tile.crane_router.name=Förderband-Sortierer
tile.crate_splitter.name=Förderband-Teiler
tile.crane_unboxer.name=Förderband-Entpacker tile.crane_unboxer.name=Förderband-Entpacker
tile.crashed_bomb.name=Blindgänger tile.crashed_bomb.name=Blindgänger
tile.crate.name=Vorratskiste tile.crate.name=Vorratskiste

View File

@ -4387,7 +4387,6 @@ tile.conveyor.name=Conveyor Belt
tile.conveyor_chute.name=Conveyor Chute tile.conveyor_chute.name=Conveyor Chute
tile.conveyor_double.name=Double-Lane Conveyor Belt tile.conveyor_double.name=Double-Lane Conveyor Belt
tile.conveyor_lift.name=Conveyor Chain Lift tile.conveyor_lift.name=Conveyor Chain Lift
tile.conveyor_splitter.name=Conveyor Splitter
tile.conveyor_triple.name=Triple-Lane Conveyor Belt tile.conveyor_triple.name=Triple-Lane Conveyor Belt
tile.corium_block.name=Corium tile.corium_block.name=Corium
tile.crane_boxer.name=Conveyor Boxer tile.crane_boxer.name=Conveyor Boxer
@ -4395,6 +4394,7 @@ tile.crane_extractor.name=Conveyor Ejector
tile.crane_grabber.name=Conveyor Grabber tile.crane_grabber.name=Conveyor Grabber
tile.crane_inserter.name=Conveyor Inserter tile.crane_inserter.name=Conveyor Inserter
tile.crane_router.name=Conveyor Sorter tile.crane_router.name=Conveyor Sorter
tile.crane_splitter.name=Conveyor Splitter
tile.crane_unboxer.name=Conveyor Unboxer tile.crane_unboxer.name=Conveyor Unboxer
tile.crashed_bomb.name=Dud tile.crashed_bomb.name=Dud
tile.crate.name=Supply Crate tile.crate.name=Supply Crate

View File

@ -31,10 +31,10 @@ v -0.500000 0.250000 0.375000
v -0.500000 0.875000 0.375000 v -0.500000 0.875000 0.375000
v 0.000000 0.250000 0.375000 v 0.000000 0.250000 0.375000
v 0.000000 0.875000 0.375000 v 0.000000 0.875000 0.375000
vt 1.000000 0.875000 vt 0.187500 1.000000
vt 0.500000 0.250000 vt 0.812500 0.500000
vt 1.000000 0.250000 vt 0.812500 1.000000
vt 0.500000 0.875000 vt 0.187500 0.500000
vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 -1.0000
s off s off
f 10/9/3 11/10/3 9/11/3 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.500000 0.875000 -0.375000
v 0.000000 0.250000 -0.375000 v 0.000000 0.250000 -0.375000
v 0.000000 0.875000 -0.375000 v 0.000000 0.875000 -0.375000
vt 0.000000 0.250000 vt 0.187500 1.000000
vt 0.500000 0.875000 vt 0.812500 0.500000
vt 0.000000 0.875000 vt 0.812500 1.000000
vt 0.500000 0.250000 vt 0.187500 0.500000
vn 0.0000 0.0000 1.0000 vn 0.0000 0.0000 1.0000
s off s off
f 17/17/5 20/18/5 18/19/5 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 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 1.000000
vt 0.000000 0.000000 vt 1.000000 0.000000
vt 1.000000 1.000000 vt 1.000000 1.000000
vt 0.000000 0.000000
vn 0.0000 -1.0000 0.0000 vn 0.0000 -1.0000 0.0000
s off s off
f 43/41/11 42/42/11 41/43/11 f 43/41/11 42/42/11 41/43/11

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 B

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 B

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 B

After

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 B

After

Width:  |  Height:  |  Size: 316 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

After

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 B

After

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 B

After

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 333 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B