Compare commits

...

3 Commits

Author SHA1 Message Date
Boblet
23ef334472 my balls are heavy 2026-05-06 15:16:17 +02:00
Boblet
704640d88b cargo elevator 2026-05-06 11:53:29 +02:00
Boblet
5294357455 i haven't actually tested this yet 2026-05-06 11:38:25 +02:00
38 changed files with 447 additions and 3618 deletions

View File

@ -1,8 +1,15 @@
## Added
* Freight elevator
* A 3x3 hydraulic platform
* Can be stacked
* Only supports two floors, the top and the bottom
* Hopefully not terribly janky
## Changed ## Changed
* Reduced steam demand of the rotary furnace's hotter fuels by a bit * Reduced steam demand of the rotary furnace's hotter fuels by a bit
* The acidizer now has a sound loop (chemplant sound at 75% pitch) * The acidizer now has a sound loop (chemplant sound at 75% pitch)
* Updated some bomb part recipes, mainly to make use of the new neutron reflectors and some more modern materials (why did ivy mike coolers still use iron?) * Updated some bomb part recipes, mainly to make use of the new neutron reflectors and some more modern materials (why did ivy mike coolers still use iron?)
* Updated the fat man igniter icon * Updated the fat man igniter and gadget wiring icons
* The cape items, which haven't actually been used by anyone ever, are now deprecated. Existing capes will still work, but the items are now unobtainable * The cape items, which haven't actually been used by anyone ever, are now deprecated. Existing capes will still work, but the items are now unobtainable
* Some long deprecated melee weapons have now been properly removed * Some long deprecated melee weapons have now been properly removed

View File

@ -1,6 +1,6 @@
mod_version=1.0.27 mod_version=1.0.27
# Empty build number makes a release type # Empty build number makes a release type
mod_build_number=5685 mod_build_number=5687
credits=HbMinecraft,\ credits=HbMinecraft,\
\ rodolphito (explosion algorithms),\ \ rodolphito (explosion algorithms),\

View File

@ -579,6 +579,8 @@ public class ModBlocks {
public static Block seal_controller; public static Block seal_controller;
public static Block seal_hatch; public static Block seal_hatch;
public static Block cargo_elevator;
public static Block vault_door; public static Block vault_door;
public static Block blast_door; public static Block blast_door;
public static Block sliding_blast_door; public static Block sliding_blast_door;
@ -2032,6 +2034,8 @@ public class ModBlocks {
seal_controller = new BlockSeal(Material.iron).setBlockName("seal_controller").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab); seal_controller = new BlockSeal(Material.iron).setBlockName("seal_controller").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab);
seal_hatch = new BlockHatch(Material.iron).setBlockName("seal_hatch").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":seal_hatch_3"); seal_hatch = new BlockHatch(Material.iron).setBlockName("seal_hatch").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":seal_hatch_3");
cargo_elevator = new BlockCargoElevator().setBlockName("cargo_elevator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
vault_door = new BlockDoorGeneric(Material.iron, DoorDecl.VAULT_DOOR).setBlockName("vault_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete"); vault_door = new BlockDoorGeneric(Material.iron, DoorDecl.VAULT_DOOR).setBlockName("vault_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete");
blast_door = new BlastDoor(Material.iron).setBlockName("blast_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":blast_door"); blast_door = new BlastDoor(Material.iron).setBlockName("blast_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":blast_door");
@ -2953,6 +2957,9 @@ public class ModBlocks {
GameRegistry.registerBlock(seal_controller, seal_controller.getUnlocalizedName()); GameRegistry.registerBlock(seal_controller, seal_controller.getUnlocalizedName());
GameRegistry.registerBlock(seal_hatch, seal_hatch.getUnlocalizedName()); GameRegistry.registerBlock(seal_hatch, seal_hatch.getUnlocalizedName());
//Hooh
GameRegistry.registerBlock(cargo_elevator, cargo_elevator.getUnlocalizedName());
//Vault Door //Vault Door
GameRegistry.registerBlock(vault_door, vault_door.getUnlocalizedName()); GameRegistry.registerBlock(vault_door, vault_door.getUnlocalizedName());
GameRegistry.registerBlock(blast_door, blast_door.getUnlocalizedName()); GameRegistry.registerBlock(blast_door, blast_door.getUnlocalizedName());

View File

@ -0,0 +1,180 @@
package com.hbm.blocks.machine;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ICustomBlockHighlight;
import com.hbm.blocks.ModBlocks;
import com.hbm.tileentity.machine.TileEntityCargoElevator;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.RenderGlobal;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
import net.minecraftforge.common.util.ForgeDirection;
public class BlockCargoElevator extends BlockDummyable {
public BlockCargoElevator() {
super(Material.iron);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12) return new TileEntityCargoElevator();
return null;
}
@Override
public int[] getDimensions() {
return new int[] {0, 0, 1, 1, 1, 1};
}
@Override
public int getOffset() {
return 1;
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote) return true;
if(player.isSneaking()) return false;
int[] pos = ((BlockDummyable) ModBlocks.cargo_elevator).findCore(world, x, y, z);
if(pos != null) {
TileEntityCargoElevator elevator = (TileEntityCargoElevator) world.getTileEntity(pos[0], pos[1], pos[2]);
x = pos[0];
y = pos[1];
z = pos[2];
// due to the collisions being really fucking weird, we have to add custom elevator extension too
if(player.getHeldItem() != null && player.getHeldItem().getItem() == Item.getItemFromBlock(this)) {
boolean replacable = true;
for(int i = x - 1; i < x + 2; i++) for(int j = z - 1; j < z + 2; j++) {
if(!world.getBlock(i, y + elevator.height + 1, j).isReplaceable(world, i, y + elevator.height + 1, j)) {
replacable = false;
break;
}
}
if(replacable) {
for(int i = x - 1; i < x + 2; i++) for(int j = z - 1; j < z + 2; j++) {
world.setBlock(i, y + elevator.height + 1, j, ModBlocks.cargo_elevator, 1, 3);
}
elevator.height++;
elevator.markDirty();
if(!player.capabilities.isCreativeMode) player.getHeldItem().stackSize--;
}
} else {
elevator.toggleElevator();
}
}
return true;
}
@Override
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.999F, 1.0F); //for some fucking reason setting maxY to something that isn't 1 magically fixes item collisions
}
@Override
public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB entityBounding, List list, Entity entity) {
int[] pos = this.findCore(world, x, y, z);
if(pos == null) return;
x = pos[0];
y = pos[1];
z = pos[2];
TileEntityCargoElevator elevator = (TileEntityCargoElevator) world.getTileEntity(x, y, z);
if(elevator == null) return;
for(AxisAlignedBB aabb : getAABBs(elevator, x, y, z)) {
if(entityBounding.intersectsWith(aabb)) list.add(aabb);
}
}
@Override
public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 startVec, Vec3 endVec) {
int[] pos = this.findCore(world, x, y, z);
if(pos == null) return null;
TileEntityCargoElevator elevator = (TileEntityCargoElevator) world.getTileEntity(pos[0], pos[1], pos[2]);
if(elevator == null) return null;
for(AxisAlignedBB aabb : getAABBs(elevator, pos[0], pos[1], pos[2])) {
MovingObjectPosition intercept = aabb.calculateIntercept(startVec, endVec);
if(intercept != null) {
return new MovingObjectPosition(x, y, z, intercept.sideHit, intercept.hitVec);
}
}
return null;
}
@Override
@SideOnly(Side.CLIENT)
public void drawHighlight(DrawBlockHighlightEvent event, World world, int x, int y, int z) {
int[] pos = this.findCore(world, x, y, z);
if(pos == null) return;
x = pos[0];
y = pos[1];
z = pos[2];
TileEntityCargoElevator elevator = (TileEntityCargoElevator) world.getTileEntity(x, y, z);
if(elevator == null) return;
EntityPlayer player = event.player;
float interp = event.partialTicks;
double dX = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double) interp;
double dY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double) interp;
double dZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)interp;
float exp = 0.002F;
ForgeDirection rot = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z) - offset).getRotation(ForgeDirection.UP);
ICustomBlockHighlight.setup();
for(AxisAlignedBB aabb : getAABBs(elevator, x, y, z)) RenderGlobal.drawOutlinedBoundingBox(aabb.expand(exp, exp, exp).getOffsetBoundingBox(-dX, -dY, -dZ), -1);
ICustomBlockHighlight.cleanup();
}
@Override
@SideOnly(Side.CLIENT)
public boolean shouldDrawHighlight(World world, int x, int y, int z) {
return true;
}
public AxisAlignedBB[] getGuideAABBs(int x, int y, int z, int height) {
return new AxisAlignedBB[] {
AxisAlignedBB.getBoundingBox(x - 1, y, z - 1, x - 0.75, y + height, z - 0.75),
AxisAlignedBB.getBoundingBox(x - 1, y, z + 1.75, x - 0.75, y + height, z + 2),
AxisAlignedBB.getBoundingBox(x + 1.75, y, z - 1, x + 2, y + height, z - 0.75),
AxisAlignedBB.getBoundingBox(x + 1.75, y, z + 1.75, x + 2, y + height, z + 2),
};
}
public AxisAlignedBB[] getAABBs(TileEntityCargoElevator elevator, int x, int y, int z) {
int height = elevator.height + 1;
return new AxisAlignedBB[] {
AxisAlignedBB.getBoundingBox(x - 1, y, z - 1, x - 0.75, y + height, z - 0.75),
AxisAlignedBB.getBoundingBox(x - 1, y, z + 1.75, x - 0.75, y + height, z + 2),
AxisAlignedBB.getBoundingBox(x + 1.75, y, z - 1, x + 2, y + height, z - 0.75),
AxisAlignedBB.getBoundingBox(x + 1.75, y, z + 1.75, x + 2, y + height, z + 2),
AxisAlignedBB.getBoundingBox(x - 1, y + 0.75 + elevator.extension, z - 1, x + 2, y + 1 + elevator.extension, z + 2),
};
}
}

View File

@ -3,7 +3,7 @@ package com.hbm.lib;
public class RefStrings { public class RefStrings {
public static final String MODID = "hbm"; public static final String MODID = "hbm";
public static final String NAME = "Hbm's Nuclear Tech Mod"; public static final String NAME = "Hbm's Nuclear Tech Mod";
public static final String VERSION = "1.0.27 BETA (5685)"; public static final String VERSION = "1.0.27 BETA (5687)";
//HBM's Beta Naming Convention: //HBM's Beta Naming Convention:
//V T (X) //V T (X)
//V -> next release version //V -> next release version

View File

@ -436,6 +436,8 @@ public class ClientProxy extends ServerProxy {
//Watz //Watz
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatz.class, new RenderWatz()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatz.class, new RenderWatz());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatzPump.class, new RenderWatzPump()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatzPump.class, new RenderWatzPump());
//Elevator
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCargoElevator.class, new RenderCargoElevator());
//doors //doors
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBlastDoor.class, new RenderBlastDoor()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBlastDoor.class, new RenderBlastDoor());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDoorGeneric.class, new RenderDoorGeneric()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDoorGeneric.class, new RenderDoorGeneric());

View File

@ -647,6 +647,8 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModBlocks.pink_slab, 6), new Object[] { "WWW", 'W', ModBlocks.pink_planks }); addRecipeAuto(new ItemStack(ModBlocks.pink_slab, 6), new Object[] { "WWW", 'W', ModBlocks.pink_planks });
addRecipeAuto(new ItemStack(ModBlocks.pink_stairs, 6), new Object[] { "W ", "WW ", "WWW", 'W', ModBlocks.pink_planks }); addRecipeAuto(new ItemStack(ModBlocks.pink_stairs, 6), new Object[] { "W ", "WW ", "WWW", 'W', ModBlocks.pink_planks });
addRecipeAuto(new ItemStack(ModBlocks.cargo_elevator, 3), new Object[] { "GGG", "SPS", 'G', ModBlocks.steel_grate, 'S', STEEL.ingot(), 'P', new ItemStack(ModItems.part_generic, 1, EnumPartType.PISTON_HYDRAULIC.ordinal()) });
addRecipeAuto(new ItemStack(ModItems.door_metal, 1), new Object[] { "II", "SS", "II", 'I', IRON.plate(), 'S', STEEL.plate() }); addRecipeAuto(new ItemStack(ModItems.door_metal, 1), new Object[] { "II", "SS", "II", 'I', IRON.plate(), 'S', STEEL.plate() });
addRecipeAuto(new ItemStack(ModItems.door_office, 1), new Object[] { "II", "SS", "II", 'I', KEY_PLANKS, 'S', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.door_office, 1), new Object[] { "II", "SS", "II", 'I', KEY_PLANKS, 'S', IRON.plate() });
addRecipeAuto(new ItemStack(ModItems.door_bunker, 1), new Object[] { "II", "SS", "II", 'I', STEEL.plate(), 'S', PB.plate() }); addRecipeAuto(new ItemStack(ModItems.door_bunker, 1), new Object[] { "II", "SS", "II", 'I', STEEL.plate(), 'S', PB.plate() });

View File

@ -305,11 +305,8 @@ public class ResourceManager {
//Drain //Drain
public static final IModelCustom drain = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/drain.obj")); public static final IModelCustom drain = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/drain.obj"));
//Vault Door //Elevator
public static final IModelCustom vault_cog = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_cog.obj")); public static final IModelCustom cargo_elevator = new HFRWavefrontObject("models/machines/elevator.obj").asVBO();
public static final IModelCustom vault_frame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_frame.obj"));
public static final IModelCustom vault_teeth = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_teeth.obj"));
public static final IModelCustom vault_label = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_label.obj"));
//Blast Door //Blast Door
public static final IModelCustom blast_door_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_base.obj")); public static final IModelCustom blast_door_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_base.obj"));
@ -776,6 +773,9 @@ public class ResourceManager {
//SatDock //SatDock
public static final ResourceLocation satdock_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_dock.png"); public static final ResourceLocation satdock_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_dock.png");
//Elevator
public static final ResourceLocation cargo_elevator_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/elevator.png");
//Vault Door //Vault Door
public static final ResourceLocation vault_cog_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_cog.png"); public static final ResourceLocation vault_cog_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_cog.png");
public static final ResourceLocation vault_frame_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_frame.png"); public static final ResourceLocation vault_frame_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_frame.png");

View File

@ -0,0 +1,78 @@
package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.ModBlocks;
import com.hbm.main.ResourceManager;
import com.hbm.render.item.ItemRenderBase;
import com.hbm.tileentity.machine.TileEntityCargoElevator;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.client.IItemRenderer;
public class RenderCargoElevator extends TileEntitySpecialRenderer implements IItemRendererProvider {
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) {
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5, y, z + 0.5);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_CULL_FACE);
bindTexture(ResourceManager.cargo_elevator_tex);
TileEntityCargoElevator elevator = (TileEntityCargoElevator) tile;
if(elevator.renderPlatform) {
double extension = elevator.prevExtension + (elevator.extension - elevator.prevExtension) * interp;
ResourceManager.cargo_elevator.renderPart("Base");
GL11.glPushMatrix(); {
GL11.glTranslated(0, extension, 0);
ResourceManager.cargo_elevator.renderPart("Platform");
for(int i = 0; i < extension + 1; i++) {
ResourceManager.cargo_elevator.renderPart("Piston");
GL11.glTranslated(0, -1, 0);
}
} GL11.glPopMatrix();
}
GL11.glPushMatrix(); {
for(int i = 0; i <= elevator.height; i++) {
ResourceManager.cargo_elevator.renderPart("Guides");
GL11.glTranslated(0, 1, 0);
}
} GL11.glPopMatrix();
GL11.glPopMatrix();
}
@Override
public Item getItemForRenderer() {
return Item.getItemFromBlock(ModBlocks.cargo_elevator);
}
@Override
public IItemRenderer getRenderer() {
return new ItemRenderBase() {
public void renderInventory() {
GL11.glTranslated(0, -2.75, 0);
GL11.glScaled(3.25, 3.25, 3.25);
}
public void renderCommon() {
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.cargo_elevator_tex);
ResourceManager.cargo_elevator.renderPart("Base");
ResourceManager.cargo_elevator.renderPart("Piston");
ResourceManager.cargo_elevator.renderPart("Guides");
GL11.glTranslated(0, 1, 0);
ResourceManager.cargo_elevator.renderPart("Piston");
ResourceManager.cargo_elevator.renderPart("Guides");
ResourceManager.cargo_elevator.renderPart("Platform");
GL11.glTranslated(0, 1, 0);
ResourceManager.cargo_elevator.renderPart("Guides");
GL11.glShadeModel(GL11.GL_FLAT);
}};
}
}

View File

@ -221,8 +221,9 @@ public class TileMappings {
put(TileEntityPlushie.class, "tileentity_ntm_plushie"); put(TileEntityPlushie.class, "tileentity_ntm_plushie");
put(TileEntityEmitter.class, "tileentity_ntm_emitter"); put(TileEntityEmitter.class, "tileentity_ntm_emitter");
put(TileEntityCargoElevator.class, "tileentity_cargo_elevator");
put(TileEntityDoorGeneric.class, "tileentity_ntm_door"); put(TileEntityDoorGeneric.class, "tileentity_ntm_door");
put(TileEntityCharger.class, "tileentity_ntm_charger"); put(TileEntityCharger.class, "tileentity_ntm_charger");
put(TileEntityRefueler.class, "tileentity_ntm_refueler"); put(TileEntityRefueler.class, "tileentity_ntm_refueler");

View File

@ -0,0 +1,159 @@
package com.hbm.tileentity.machine;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ModBlocks;
import com.hbm.tileentity.TileEntityLoadedBase;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper;
public class TileEntityCargoElevator extends TileEntityLoadedBase {
public int height = 0;
public double extension;
public double prevExtension;
public double syncExtension;
private int sync;
public boolean isExtending;
public static final double speed = 2D / 20D; // 2 blocks per second
public boolean renderPlatform = false;
@Override
public void updateEntity() {
this.prevExtension = this.extension;
if(!worldObj.isRemote) {
// connect to lower elevator
if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == ModBlocks.cargo_elevator) {
int[] pos = ((BlockDummyable) ModBlocks.cargo_elevator).findCore(worldObj, xCoord, yCoord - 1, zCoord);
if(pos != null && pos[0] == xCoord && pos[2] == zCoord) {
TileEntityCargoElevator lower = (TileEntityCargoElevator) worldObj.getTileEntity(pos[0], pos[1], pos[2]);
lower.height += this.height + 1;
for(int x = xCoord -1; x < xCoord + 2; x++) for(int z = zCoord -1; z < zCoord + 2; z++) {
for(int y = yCoord; y <= yCoord + this.height; y++) worldObj.setBlock(x, y, z, ModBlocks.cargo_elevator, 1, 3);
}
return;
}
}
if(this.isExtending && this.extension < this.height) {
this.extension += this.speed;
}
if(!this.isExtending && this.extension > 0) {
this.extension -= this.speed;
}
this.extension = MathHelper.clamp_double(this.extension, 0, this.height);
// exist for at least one tick before the main portion gets rendered, fixes the short flickering platform that instantly despawns
renderPlatform = true;
this.networkPackNT(100);
} else {
if(this.sync > 0) {
this.extension = this.extension + ((this.syncExtension - this.extension) / (float) this.sync);
--this.sync;
} else {
this.extension = this.syncExtension;
}
}
if(this.extension != this.prevExtension) {
double liftUpper = this.yCoord + 1 + Math.max(this.extension, this.prevExtension);
double liftLower = this.yCoord + 1 + Math.min(this.extension, this.prevExtension);
List<Entity> toLift = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(xCoord - 0.99, liftLower, zCoord - 0.99, xCoord + 1.99, liftUpper, zCoord + 1.99));
for(Entity e : toLift) {
if(e instanceof EntityPlayer && !worldObj.isRemote) continue;
if(e.boundingBox.minY >= liftLower && e.boundingBox.minY <= liftUpper) {
double delta = e.boundingBox.minY - (this.yCoord + 1 + this.extension);
e.moveEntity(0, -delta, 0);
e.onGround = true;
e.moveEntity(0, -0.125, 0);
}
}
}
}
public void toggleElevator() {
if(this.extension >= this.height) {
this.isExtending = false;
}
if(this.extension <= 0) {
this.isExtending = true;
}
}
@Override
public void serialize(ByteBuf buf) {
super.serialize(buf);
buf.writeBoolean(renderPlatform);
buf.writeShort((short) height);
buf.writeDouble(extension);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
this.renderPlatform = buf.readBoolean();
this.height = buf.readShort();
this.syncExtension = buf.readDouble();
if(this.syncExtension > 0 && this.syncExtension < this.height) {
this.sync = 3;
}
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.extension = nbt.getDouble("extension");
this.isExtending = nbt.getBoolean("isExtending");
this.height = nbt.getInteger("height");
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setDouble("extension", extension);
nbt.setBoolean("isExtending", isExtending);
nbt.setInteger("height", height);
}
AxisAlignedBB bb = null;
@Override
public AxisAlignedBB getRenderBoundingBox() {
int h = 1 + this.height;
if(bb == null || bb.maxY - bb.minY < h) {
bb = AxisAlignedBB.getBoundingBox(
xCoord - 1,
yCoord,
zCoord - 1,
xCoord + 2,
yCoord + h,
zCoord + 2
);
}
return bb;
}
}

View File

@ -3997,6 +3997,7 @@ tile.capacitor_niobium.name=Niobkondensator (LEGACY)
tile.capacitor_schrabidate.name=Schrabidatkondensator (LEGACY) tile.capacitor_schrabidate.name=Schrabidatkondensator (LEGACY)
tile.capacitor_tantalium.name=Tantalkondensator (LEGACY) tile.capacitor_tantalium.name=Tantalkondensator (LEGACY)
tile.capacitor.desc=Input: Oben$Output: Unten, über Kondensator-Bus tile.capacitor.desc=Input: Oben$Output: Unten, über Kondensator-Bus
tile.cargo_elevator.name=Frachtenaufzug
tile.charge_c4.name=Abrissladung tile.charge_c4.name=Abrissladung
tile.charge_dynamite.name=Zeitbombe tile.charge_dynamite.name=Zeitbombe
tile.charge_miner.name=Bergbauladung mit Zeitzünder tile.charge_miner.name=Bergbauladung mit Zeitzünder

View File

@ -5196,6 +5196,7 @@ tile.capacitor_niobium.name=Niobium Capacitor (LEGACY)
tile.capacitor_schrabidate.name=Schrabidate Capacitor (LEGACY) tile.capacitor_schrabidate.name=Schrabidate Capacitor (LEGACY)
tile.capacitor_tantalium.name=Tantalum Capacitor (LEGACY) tile.capacitor_tantalium.name=Tantalum Capacitor (LEGACY)
tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus
tile.cargo_elevator.name=Cargo Elevator
tile.charge_c4.name=Demolition Charge tile.charge_c4.name=Demolition Charge
tile.charge_dynamite.name=Time Bomb tile.charge_dynamite.name=Time Bomb
tile.charge_miner.name=Timed Mining Charge tile.charge_miner.name=Timed Mining Charge

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,57 +0,0 @@
# Blender v2.76 (sub 0) OBJ File: 'vault_label.blend'
# www.blender.org
o Cylinder
v 0.450000 2.978691 -0.083927
v 0.450000 2.920645 -0.243406
v 0.450000 2.021473 -0.084857
v 0.450000 2.078882 -0.242588
v 0.450000 2.812752 -0.371988
v 0.450000 2.665775 -0.456845
v 0.450000 2.500473 -0.485992
v 0.450000 2.333337 -0.456522
v 0.450000 2.665775 0.456845
v 0.450000 2.812752 0.371988
v 0.450000 2.187972 -0.372596
v 0.450000 2.920646 0.243405
v 0.450000 2.978691 0.083926
v 0.450000 2.021473 0.084857
v 0.450000 2.078882 0.242587
v 0.450000 2.187972 0.372596
v 0.450000 2.333337 0.456522
v 0.450000 2.500473 0.485992
vt 0.037266 0.323502
vt 0.586012 0.007394
vt 0.992606 0.492912
vt 0.877051 0.809440
vt 0.746718 0.918803
vt 0.585069 0.977638
vt 0.414932 0.977638
vt 0.253283 0.918803
vt 0.122950 0.809441
vt 0.036938 0.660464
vt 0.007394 0.492912
vt 0.122334 0.176159
vt 0.254112 0.065584
vt 0.413988 0.007394
vt 0.745889 0.065585
vt 0.877666 0.176159
vt 0.962735 0.323502
vt 0.963062 0.660464
vn 1.000000 -0.000000 -0.000000
s off
f 17/1/1 3/2/1 7/3/1
f 5/4/1 2/5/1 1/6/1
f 1/6/1 13/7/1 5/4/1
f 12/8/1 10/9/1 17/1/1
f 9/10/1 18/11/1 17/1/1
f 17/1/1 16/12/1 15/13/1
f 15/13/1 14/14/1 3/2/1
f 3/2/1 4/15/1 11/16/1
f 11/16/1 8/17/1 7/3/1
f 7/3/1 6/18/1 12/8/1
f 5/4/1 13/7/1 12/8/1
f 10/9/1 9/10/1 17/1/1
f 17/1/1 15/13/1 3/2/1
f 3/2/1 11/16/1 7/3/1
f 6/18/1 5/4/1 12/8/1
f 12/8/1 17/1/1 7/3/1

View File

@ -1,316 +0,0 @@
# Blender v2.76 (sub 0) OBJ File: 'vault_teeth.blend'
# www.blender.org
o Cylinder
v -0.500000 0.762429 0.308123
v 0.500000 0.762428 0.308123
v -0.500000 0.762429 -0.308124
v 0.500000 0.762429 -0.308124
v -0.500000 0.327325 0.574589
v 0.500000 0.327325 0.574589
v 0.499999 0.327326 -0.574590
v -0.500001 0.327326 -0.574590
v -0.500000 0.762429 -1.261877
v 0.500000 0.762428 -1.261877
v -0.500000 0.762429 -1.878124
v 0.500000 0.762429 -1.878124
v -0.500000 0.327325 -0.995411
v 0.500000 0.327325 -0.995411
v 0.499999 0.327326 -2.144590
v -0.500001 0.327326 -2.144590
v -0.500000 0.762429 1.878123
v 0.500000 0.762428 1.878123
v -0.500000 0.762429 1.261876
v 0.500000 0.762429 1.261876
v -0.500000 0.327325 2.144589
v 0.500000 0.327325 2.144589
v 0.499999 0.327326 0.995410
v -0.500001 0.327326 0.995410
v -0.500000 0.762429 3.448123
v 0.500000 0.762428 3.448123
v -0.500000 0.762429 2.831876
v 0.500000 0.762429 2.831876
v -0.500000 0.327325 3.714589
v 0.500000 0.327325 3.714589
v 0.499999 0.327326 2.565410
v -0.500001 0.327326 2.565410
v -0.500000 0.762429 5.018124
v 0.500000 0.762428 5.018124
v -0.500000 0.762429 4.401876
v 0.500000 0.762429 4.401876
v -0.500000 0.327325 5.284589
v 0.500000 0.327325 5.284589
v 0.499999 0.327326 4.135410
v -0.500001 0.327326 4.135410
v -0.500000 0.762429 6.588124
v 0.500000 0.762428 6.588124
v -0.500000 0.762429 5.971876
v 0.500000 0.762429 5.971876
v -0.500000 0.327325 6.854589
v 0.500000 0.327325 6.854589
v 0.499999 0.327326 5.705410
v -0.500001 0.327326 5.705410
v -0.500000 0.000000 7.000000
v 0.500000 0.000000 7.000000
v -0.500000 0.000000 -2.250000
v 0.500000 0.000000 -2.250000
vt 0.691404 0.444331
vt 0.622542 0.444331
vt 0.622542 0.342186
vt 0.610683 0.758938
vt 0.610683 0.656793
vt 0.667687 0.656793
vt 0.926074 0.342186
vt 0.926074 0.444331
vt 0.869093 0.444331
vt 0.691404 0.499489
vt 0.691404 0.601634
vt 0.622542 0.601634
vt 0.728029 0.758938
vt 0.728029 0.656793
vt 0.785033 0.656793
vt 0.587947 0.287028
vt 0.530966 0.287028
vt 0.530966 0.184883
vt 0.562200 0.499489
vt 0.562200 0.601634
vt 0.493337 0.601634
vt 0.751747 0.499489
vt 0.808750 0.499489
vt 0.808750 0.601634
vt 0.845375 0.758938
vt 0.845375 0.656793
vt 0.902356 0.656793
vt 0.717152 0.287028
vt 0.648290 0.287028
vt 0.648290 0.184883
vt 0.751747 0.444331
vt 0.751747 0.342186
vt 0.808750 0.342186
vt 0.953962 0.129724
vt 0.896981 0.129724
vt 0.896981 0.027579
vt 0.493337 0.342186
vt 0.562200 0.342186
vt 0.562200 0.444331
vt 0.550341 0.656793
vt 0.550341 0.758938
vt 0.493337 0.758938
vt 0.869093 0.499489
vt 0.926074 0.499489
vt 0.926074 0.601634
vt 0.650453 0.027579
vt 0.719315 0.027579
vt 0.719315 0.129724
vt 0.590111 0.027579
vt 0.590111 0.129724
vt 0.533107 0.129724
vt 0.836639 0.129724
vt 0.779658 0.129724
vt 0.779658 0.027579
vt 0.141916 0.972421
vt 0.030171 0.972421
vt 0.030171 0.027579
vt 0.533107 0.027579
vt 0.493337 0.129724
vt 0.969829 0.916241
vt 0.922804 0.916241
vt 0.922804 0.814096
vt 0.493337 0.814096
vt 0.540362 0.814096
vt 0.540362 0.916241
vt 0.862462 0.916241
vt 0.815438 0.916241
vt 0.815438 0.814096
vt 0.708071 0.814096
vt 0.755096 0.814096
vt 0.755096 0.916241
vt 0.600704 0.814096
vt 0.647729 0.814096
vt 0.647729 0.916241
vt 0.493337 0.287028
vt 0.493337 0.184883
vt 0.432995 0.128511
vt 0.384375 0.155729
vt 0.384375 0.038346
vt 0.432995 0.288879
vt 0.384375 0.316097
vt 0.384375 0.198714
vt 0.432995 0.930349
vt 0.384375 0.957568
vt 0.384375 0.840185
vt 0.432995 0.769982
vt 0.384375 0.797200
vt 0.384375 0.679817
vt 0.432995 0.609614
vt 0.384375 0.636832
vt 0.384375 0.519449
vt 0.432995 0.449246
vt 0.384375 0.476465
vt 0.384375 0.359082
vt 0.347798 0.027579
vt 0.347798 0.972421
vt 0.238835 0.159815
vt 0.238835 0.042432
vt 0.287456 0.069650
vt 0.238835 0.320183
vt 0.238835 0.202800
vt 0.287456 0.230018
vt 0.238835 0.480550
vt 0.238835 0.363168
vt 0.287456 0.390386
vt 0.238835 0.640918
vt 0.238835 0.523535
vt 0.287456 0.550753
vt 0.238835 0.801286
vt 0.238835 0.683903
vt 0.287456 0.711121
vt 0.238835 0.961654
vt 0.238835 0.844271
vt 0.287456 0.871489
vt 0.202258 0.972421
vt 0.202258 0.027579
vt 0.691404 0.342186
vt 0.667687 0.758938
vt 0.869093 0.342186
vt 0.622542 0.499489
vt 0.785033 0.758938
vt 0.587947 0.184883
vt 0.493337 0.499489
vt 0.751747 0.601634
vt 0.902356 0.758938
vt 0.717152 0.184883
vt 0.808750 0.444331
vt 0.953962 0.027579
vt 0.493337 0.444331
vt 0.493337 0.656793
vt 0.869093 0.601634
vt 0.650453 0.129724
vt 0.836639 0.027579
vt 0.141916 0.027579
vt 0.493337 0.027579
vt 0.969829 0.814096
vt 0.493337 0.916241
vt 0.862462 0.814096
vt 0.708071 0.916241
vt 0.600704 0.916241
vt 0.432995 0.065564
vt 0.432995 0.225932
vt 0.432995 0.867403
vt 0.432995 0.707035
vt 0.432995 0.546668
vt 0.432995 0.386300
vt 0.287456 0.132597
vt 0.287456 0.292965
vt 0.287456 0.453332
vt 0.287456 0.613700
vt 0.287456 0.774068
vt 0.287456 0.934435
vn 0.000000 1.000000 0.000000
vn 0.000000 0.522300 0.852800
vn 0.000000 0.522300 -0.852800
vn 0.000000 -1.000000 0.000000
vn 0.000000 0.406000 0.913900
vn 0.000000 0.306500 -0.951900
vn 1.000000 0.000000 -0.000000
vn -1.000000 0.000000 0.000000
s off
f 2/1/1 4/2/1 3/3/1
f 2/4/2 1/5/2 5/6/2
f 3/7/3 4/8/3 7/9/3
f 9/10/1 10/11/1 12/12/1
f 10/13/2 9/14/2 13/15/2
f 12/16/3 15/17/3 16/18/3
f 17/19/1 18/20/1 20/21/1
f 17/22/2 21/23/2 22/24/2
f 19/25/3 20/26/3 23/27/3
f 26/28/1 28/29/1 27/30/1
f 26/31/2 25/32/2 29/33/2
f 28/34/3 31/35/3 32/36/3
f 34/37/1 36/38/1 35/39/1
f 34/40/2 33/41/2 37/42/2
f 36/43/3 39/44/3 40/45/3
f 42/46/1 44/47/1 43/48/1
f 42/49/2 41/50/2 45/51/2
f 44/52/3 47/53/3 48/54/3
f 51/55/4 52/56/4 50/57/4
f 46/58/5 45/51/5 49/59/5
f 37/60/1 48/61/1 47/62/1
f 29/63/1 40/64/1 39/65/1
f 21/66/1 32/67/1 31/68/1
f 5/69/1 24/70/1 23/71/1
f 7/72/1 14/73/1 13/74/1
f 15/17/6 52/75/6 51/76/6
f 10/77/7 14/78/7 15/79/7
f 2/80/7 6/81/7 7/82/7
f 42/83/7 46/84/7 47/85/7
f 34/86/7 38/87/7 39/88/7
f 26/89/7 30/90/7 31/91/7
f 18/92/7 22/93/7 23/94/7
f 52/95/7 31/91/7 50/96/7
f 48/97/8 45/98/8 41/99/8
f 40/100/8 37/101/8 33/102/8
f 32/103/8 29/104/8 25/105/8
f 24/106/8 21/107/8 17/108/8
f 8/109/8 5/110/8 1/111/8
f 16/112/8 13/113/8 9/114/8
f 32/103/8 51/115/8 49/116/8
f 1/117/1 2/1/1 3/3/1
f 6/118/2 2/4/2 5/6/2
f 8/119/3 3/7/3 7/9/3
f 11/120/1 9/10/1 12/12/1
f 14/121/2 10/13/2 13/15/2
f 11/122/3 12/16/3 16/18/3
f 19/123/1 17/19/1 20/21/1
f 18/124/2 17/22/2 22/24/2
f 24/125/3 19/25/3 23/27/3
f 25/126/1 26/28/1 27/30/1
f 30/127/2 26/31/2 29/33/2
f 27/128/3 28/34/3 32/36/3
f 33/129/1 34/37/1 35/39/1
f 38/130/2 34/40/2 37/42/2
f 35/131/3 36/43/3 40/45/3
f 41/132/1 42/46/1 43/48/1
f 46/58/2 42/49/2 45/51/2
f 43/133/3 44/52/3 48/54/3
f 49/134/4 51/55/4 50/57/4
f 50/135/5 46/58/5 49/59/5
f 38/136/1 37/60/1 47/62/1
f 30/137/1 29/63/1 39/65/1
f 22/138/1 21/66/1 31/68/1
f 6/139/1 5/69/1 23/71/1
f 8/140/1 7/72/1 13/74/1
f 16/18/6 15/17/6 51/76/6
f 12/141/7 10/77/7 15/79/7
f 4/142/7 2/80/7 7/82/7
f 44/143/7 42/83/7 47/85/7
f 36/144/7 34/86/7 39/88/7
f 28/145/7 26/89/7 31/91/7
f 20/146/7 18/92/7 23/94/7
f 46/84/7 50/96/7 47/85/7
f 52/95/7 15/79/7 14/78/7
f 14/78/7 7/82/7 52/95/7
f 6/81/7 23/94/7 52/95/7
f 22/93/7 31/91/7 52/95/7
f 30/90/7 39/88/7 50/96/7
f 38/87/7 47/85/7 50/96/7
f 52/95/7 7/82/7 6/81/7
f 38/87/7 50/96/7 39/88/7
f 31/91/7 30/90/7 50/96/7
f 52/95/7 23/94/7 22/93/7
f 43/147/8 48/97/8 41/99/8
f 35/148/8 40/100/8 33/102/8
f 27/149/8 32/103/8 25/105/8
f 19/150/8 24/106/8 17/108/8
f 3/151/8 8/109/8 1/111/8
f 11/152/8 16/112/8 9/114/8
f 51/115/8 32/103/8 21/107/8
f 45/98/8 48/97/8 49/116/8
f 37/101/8 40/100/8 49/116/8
f 29/104/8 32/103/8 49/116/8
f 21/107/8 24/106/8 51/115/8
f 5/110/8 8/109/8 51/115/8
f 13/113/8 16/112/8 51/115/8
f 49/116/8 48/97/8 37/101/8
f 40/100/8 29/104/8 49/116/8
f 24/106/8 5/110/8 51/115/8
f 13/113/8 51/115/8 8/109/8

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 379 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 393 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 356 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 B

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB