Compare commits
3 Commits
c6f44d4921
...
23ef334472
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
23ef334472 | ||
|
|
704640d88b | ||
|
|
5294357455 |
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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),\
|
||||||
|
|||||||
@ -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());
|
||||||
|
|||||||
180
src/main/java/com/hbm/blocks/machine/BlockCargoElevator.java
Normal 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),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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
|
||||||
|
|||||||
@ -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());
|
||||||
|
|||||||
@ -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() });
|
||||||
|
|||||||
@ -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");
|
||||||
|
|||||||
@ -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);
|
||||||
|
}};
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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");
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
|
||||||
@ -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
|
|
||||||
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 357 B |
BIN
src/main/resources/assets/hbm/textures/items/coil_copper2.png
Normal file
|
After Width: | Height: | Size: 381 B |
BIN
src/main/resources/assets/hbm/textures/items/coil_gold2.png
Normal file
|
After Width: | Height: | Size: 292 B |
|
After Width: | Height: | Size: 337 B |
|
Before Width: | Height: | Size: 5.8 KiB |
BIN
src/main/resources/assets/hbm/textures/items/coil_tungsten2.png
Normal file
|
After Width: | Height: | Size: 139 B |
|
Before Width: | Height: | Size: 379 B |
|
Before Width: | Height: | Size: 372 B |
|
Before Width: | Height: | Size: 360 B |
|
Before Width: | Height: | Size: 393 B |
|
Before Width: | Height: | Size: 396 B |
|
Before Width: | Height: | Size: 384 B |
|
Before Width: | Height: | Size: 422 B |
|
Before Width: | Height: | Size: 324 B |
|
Before Width: | Height: | Size: 327 B |
|
Before Width: | Height: | Size: 356 B |
|
Before Width: | Height: | Size: 295 B After Width: | Height: | Size: 332 B |
|
Before Width: | Height: | Size: 275 B |
|
Before Width: | Height: | Size: 370 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.7 KiB |