mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
BlockDecoContainer, filing cabinet
This commit is contained in:
parent
72c0c2f2ac
commit
8654cfd92d
@ -20,6 +20,7 @@ import com.hbm.lib.ModDamageSource;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.DoorDecl;
|
||||
import com.hbm.tileentity.machine.storage.TileEntityFileCabinet;
|
||||
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import net.minecraft.block.Block;
|
||||
@ -410,7 +411,9 @@ public class ModBlocks {
|
||||
public static Block brick_forgotten;
|
||||
|
||||
public static Block deco_computer;
|
||||
|
||||
|
||||
public static Block filing_cabinet;
|
||||
|
||||
public static Block tape_recorder;
|
||||
public static Block steel_poles;
|
||||
public static Block pole_top;
|
||||
@ -1673,7 +1676,9 @@ public class ModBlocks {
|
||||
|
||||
brick_forgotten = new BlockGeneric(Material.rock).setBlockName("brick_forgotten").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(1000000).setBlockTextureName(RefStrings.MODID + ":brick_forgotten");
|
||||
|
||||
deco_computer = new BlockDecoModel(Material.iron, 1).setBlockName("deco_computer").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_computer");
|
||||
deco_computer = new BlockDecoModel(Material.iron, 1).setBlockBoundsTo(.160749F, 0F, 0F, .839251F, .867849F, .622184F).setBlockName("deco_computer").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_computer");
|
||||
|
||||
filing_cabinet = new BlockDecoContainer(Material.iron, 1, TileEntityFileCabinet.class).setBlockBoundsTo(.1875F, 0F, 0F, .8125F, 1F, .75F).setBlockName("filing_cabinet").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
|
||||
tape_recorder = new DecoTapeRecorder(Material.iron).setBlockName("tape_recorder").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_tape_recorder");
|
||||
steel_poles = new DecoSteelPoles(Material.iron).setBlockName("steel_poles").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_beam");
|
||||
@ -2788,6 +2793,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(brick_dungeon_circle, brick_dungeon_circle.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_forgotten, brick_forgotten.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_computer, ItemBlockMeta.class, deco_computer.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(filing_cabinet, filing_cabinet.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(tape_recorder, tape_recorder.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(steel_poles, steel_poles.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(pole_top, pole_top.getUnlocalizedName());
|
||||
|
||||
106
src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java
Normal file
106
src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java
Normal file
@ -0,0 +1,106 @@
|
||||
package com.hbm.blocks.generic;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.main.MainRegistry;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.ITileEntityProvider;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockDecoContainer extends BlockDecoModel implements ITileEntityProvider {
|
||||
|
||||
Class<? extends TileEntity> tile;
|
||||
|
||||
public BlockDecoContainer(Material mat, int types, Class<? extends TileEntity> tile) {
|
||||
super(mat, types);
|
||||
this.tile = tile;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int metadata) {
|
||||
try {
|
||||
return tile.newInstance();
|
||||
} catch (Exception e) {
|
||||
System.out.println("BlockDecoContainer attempted to create a TE, but couldn't. How does that even happen?");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockEventReceived(World world, int x, int y, int z, int eventNo, int eventArg) {
|
||||
super.onBlockEventReceived(world, x, y, z, eventNo, eventArg);
|
||||
TileEntity tileentity = world.getTileEntity(x, y, z);
|
||||
return tileentity != null ? tileentity.receiveClientEvent(eventNo, eventArg) : false;
|
||||
}
|
||||
|
||||
@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;
|
||||
} else if(!player.isSneaking()) {
|
||||
|
||||
FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z);
|
||||
return true;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
|
||||
IInventory inventory = (IInventory) world.getTileEntity(x, y, z);
|
||||
Random rand = world.rand;
|
||||
|
||||
if(inventory != null) {
|
||||
for(int i1 = 0; i1 < inventory.getSizeInventory(); ++i1) {
|
||||
ItemStack itemstack = inventory.getStackInSlot(i1);
|
||||
|
||||
if (itemstack != null) {
|
||||
float f = rand.nextFloat() * 0.8F + 0.1F;
|
||||
float f1 = rand.nextFloat() * 0.8F + 0.1F;
|
||||
float f2 = rand.nextFloat() * 0.8F + 0.1F;
|
||||
|
||||
while(itemstack.stackSize > 0) {
|
||||
int j1 = rand.nextInt(21) + 10;
|
||||
|
||||
if (j1 > itemstack.stackSize) {
|
||||
j1 = itemstack.stackSize;
|
||||
}
|
||||
|
||||
itemstack.stackSize -= j1;
|
||||
EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
|
||||
|
||||
if(itemstack.hasTagCompound()) {
|
||||
entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy());
|
||||
|
||||
float f3 = 0.05F;
|
||||
entityitem.motionX = (float) rand.nextGaussian() * f3;
|
||||
entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F;
|
||||
entityitem.motionZ = (float) rand.nextGaussian() * f3;
|
||||
world.spawnEntityInWorld(entityitem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
world.func_147453_f(x, y, z, block);
|
||||
}
|
||||
|
||||
super.breakBlock(world, x, y, z, block, meta);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -14,8 +14,10 @@ import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockDecoModel extends Block {
|
||||
@ -57,7 +59,10 @@ public class BlockDecoModel extends Block {
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int meta) {
|
||||
return this.icons[(meta >> 2) % this.icons.length];
|
||||
if(subTypes > 1)
|
||||
return this.icons[(meta >> 2) % this.icons.length];
|
||||
|
||||
return this.blockIcon;
|
||||
}
|
||||
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
@ -99,4 +104,48 @@ public class BlockDecoModel extends Block {
|
||||
|
||||
world.setBlockMetadataWithNotify(x, y, z, meta, 2);
|
||||
}
|
||||
}
|
||||
|
||||
//These are separate because they have to be constant
|
||||
private float mnX = 0.0F; //min
|
||||
private float mnY = 0.0F;
|
||||
private float mnZ = 0.0F;
|
||||
private float mxX = 1.0F; //max
|
||||
private float mxY = 1.0F;
|
||||
private float mxZ = 1.0F;
|
||||
|
||||
public BlockDecoModel setBlockBoundsTo(float minX, float minY, float minZ, float maxX, float maxY, float maxZ) {
|
||||
mnX = minX;
|
||||
mnY = minY;
|
||||
mnZ = minZ;
|
||||
mxX = maxX;
|
||||
mxY = maxY;
|
||||
mxZ = maxZ;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
|
||||
switch(world.getBlockMetadata(x, y, z) & 3) {
|
||||
case 0://North
|
||||
this.setBlockBounds(1 - mxX, mnY, 1 - mxZ, 1 - mnX, mxY, 1 - mnZ);
|
||||
break;
|
||||
case 1://South
|
||||
this.setBlockBounds(mnX, mnY, mnZ, mxX, mxY, mxZ);
|
||||
break;
|
||||
case 2://West
|
||||
this.setBlockBounds(1 - mxZ, mnY, mnX, 1 - mnZ, mxY, mxX);
|
||||
break;
|
||||
case 3://East
|
||||
this.setBlockBounds(mnZ, mnY, 1 - mxX, mxZ, mxY, 1 - mnX);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
this.setBlockBoundsBasedOnState(world, x, y, z);
|
||||
return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
package com.hbm.inventory.container;
|
||||
|
||||
import com.hbm.tileentity.machine.storage.TileEntityFileCabinet;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ContainerFileCabinet extends Container {
|
||||
|
||||
protected TileEntityFileCabinet cabinet;
|
||||
|
||||
public ContainerFileCabinet(InventoryPlayer invPlayer, TileEntityFileCabinet tile) {
|
||||
this.cabinet = tile;
|
||||
this.cabinet.openInventory();
|
||||
|
||||
for(int i = 0; i < 2; i++) {
|
||||
for(int j = 0; j < 4; j++) {
|
||||
this.addSlotToContainer(new Slot(tile, j + i * 4, 53 + j * 18, 18 + i * 36));
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0; i < 3; i++) {
|
||||
for(int j = 0; j < 9; j++) {
|
||||
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 88 + i * 18));
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0; i < 9; i++) {
|
||||
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 146));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
|
||||
ItemStack returnStack = null;
|
||||
Slot slot = (Slot) this.inventorySlots.get(index);
|
||||
|
||||
if(slot != null && slot.getHasStack()) {
|
||||
ItemStack originalStack = slot.getStack();
|
||||
returnStack = originalStack.copy();
|
||||
|
||||
if(index <= 7) {
|
||||
if(!this.mergeItemStack(originalStack, 8, this.inventorySlots.size(), true)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
slot.onSlotChange(originalStack, returnStack);
|
||||
|
||||
} else if(!this.mergeItemStack(originalStack, 0, 8, false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if(originalStack.stackSize == 0) {
|
||||
slot.putStack((ItemStack) null);
|
||||
} else {
|
||||
slot.onSlotChanged();
|
||||
}
|
||||
}
|
||||
|
||||
return returnStack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInteractWith(EntityPlayer player) {
|
||||
return cabinet.isUseableByPlayer(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onContainerClosed(EntityPlayer player) {
|
||||
super.onContainerClosed(player);
|
||||
this.cabinet.closeInventory();
|
||||
}
|
||||
}
|
||||
42
src/main/java/com/hbm/inventory/gui/GUIFileCabinet.java
Normal file
42
src/main/java/com/hbm/inventory/gui/GUIFileCabinet.java
Normal file
@ -0,0 +1,42 @@
|
||||
package com.hbm.inventory.gui;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.inventory.container.ContainerFileCabinet;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.tileentity.machine.storage.TileEntityFileCabinet;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class GUIFileCabinet extends GuiContainer {
|
||||
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_file_cabinet.png");
|
||||
private TileEntityFileCabinet cabinet;
|
||||
|
||||
public GUIFileCabinet(InventoryPlayer invPlayer, TileEntityFileCabinet tile) {
|
||||
super(new ContainerFileCabinet(invPlayer, tile));
|
||||
cabinet = tile;
|
||||
|
||||
this.xSize = 176;
|
||||
this.ySize = 170;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(int i, int j) {
|
||||
String name = this.cabinet.hasCustomInventoryName() ? this.cabinet.getInventoryName() : I18n.format(this.cabinet.getInventoryName());
|
||||
|
||||
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
}
|
||||
}
|
||||
@ -591,6 +591,16 @@ public class AnvilRecipes {
|
||||
|
||||
}
|
||||
).setTier(2));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new ComparableStack(ModBlocks.filing_cabinet),
|
||||
new AnvilOutput[] {
|
||||
new AnvilOutput(new ItemStack(ModItems.plate_steel, 2)),
|
||||
new AnvilOutput(new ItemStack(ModItems.plate_steel, 2), 0.5F),
|
||||
new AnvilOutput(new ItemStack(ModItems.plate_polymer, 2), 0.25F),
|
||||
new AnvilOutput(new ItemStack(ModItems.scrap, 1))
|
||||
|
||||
}
|
||||
).setTier(1));
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new ComparableStack(ModItems.circuit_raw),
|
||||
|
||||
@ -286,6 +286,8 @@ public class ClientProxy extends ServerProxy {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySubstation.class, new RenderSubstation());
|
||||
//chargers
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCharger.class, new RenderCharger());
|
||||
//DecoContainer
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFileCabinet.class, new RenderFileCabinet());
|
||||
//multiblocks
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityStructureMarker.class, new RenderStructureMaker());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMultiblock.class, new RenderMultiblock());
|
||||
|
||||
@ -319,6 +319,9 @@ public class ResourceManager {
|
||||
//Belt
|
||||
public static final IModelCustom charger = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/charger.obj"));
|
||||
|
||||
//DecoContainer (File Cabinet for now)
|
||||
public static final IModelCustom file_cabinet = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/file_cabinet.obj"));
|
||||
|
||||
////Textures TEs
|
||||
|
||||
public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png");
|
||||
@ -655,6 +658,9 @@ public class ResourceManager {
|
||||
//Charger
|
||||
public static final ResourceLocation charger_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/charger.png");
|
||||
|
||||
//DecoContainer
|
||||
public static final ResourceLocation file_cabinet_tex = new ResourceLocation(RefStrings.MODID, "textures/models/file_cabinet.png");
|
||||
|
||||
////Obj Items
|
||||
|
||||
//Shimmer Sledge
|
||||
|
||||
@ -35,7 +35,8 @@ public class RenderBlockDecoModel implements ISimpleBlockRenderingHandler {
|
||||
iicon = renderer.overrideBlockTexture;
|
||||
}
|
||||
|
||||
GL11.glRotated(-15, 0, 1, 0);
|
||||
GL11.glTranslated(0, 0.1D, 0);
|
||||
GL11.glScaled(1.2D, 1.2D, 1.2D);
|
||||
tessellator.startDrawingQuads();
|
||||
ObjUtil.renderWithIcon((WavefrontObject) model, iicon, tessellator, modelId, false);
|
||||
|
||||
|
||||
@ -0,0 +1,80 @@
|
||||
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.storage.TileEntityFileCabinet;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class RenderFileCabinet 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);
|
||||
|
||||
switch(tile.getBlockMetadata() & 3) { //rotation
|
||||
case 0:
|
||||
GL11.glRotatef(180, 0F, 1F, 0F);
|
||||
break;
|
||||
case 1:
|
||||
GL11.glRotatef(0, 0F, 1F, 0F);
|
||||
break;
|
||||
case 2:
|
||||
GL11.glRotatef(270, 0F, 1F, 0F);
|
||||
break;
|
||||
case 3:
|
||||
GL11.glRotatef(90, 0F, 1F, 0F);
|
||||
break;
|
||||
}
|
||||
|
||||
TileEntityFileCabinet cabinet = (TileEntityFileCabinet) tile;
|
||||
|
||||
bindTexture(ResourceManager.file_cabinet_tex);
|
||||
ResourceManager.file_cabinet.renderPart("Cabinet");
|
||||
|
||||
GL11.glPushMatrix();
|
||||
float lower = cabinet.prevLowerExtent + (cabinet.lowerExtent - cabinet.prevLowerExtent) * interp;
|
||||
GL11.glTranslated(0F, 0F, 0.6875F * lower);
|
||||
ResourceManager.file_cabinet.renderPart("LowerDrawer");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
float upper = cabinet.prevUpperExtent + (cabinet.upperExtent - cabinet.prevUpperExtent) * interp;
|
||||
GL11.glTranslated(0F, 0F, 0.6875F * upper);
|
||||
ResourceManager.file_cabinet.renderPart("UpperDrawer");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemForRenderer() {
|
||||
return Item.getItemFromBlock(ModBlocks.filing_cabinet);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemRenderer getRenderer() {
|
||||
return new ItemRenderBase() {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(-1D, 0.5D, -1D);
|
||||
GL11.glRotatef(180F, 0, 1F, 0);
|
||||
GL11.glScalef(4F, 4F, 4F);
|
||||
}
|
||||
public void renderCommon() {
|
||||
GL11.glTranslated(0, -1.25D, 0);
|
||||
GL11.glScaled(2.75D, 2.75D, 2.75D);
|
||||
bindTexture(ResourceManager.file_cabinet_tex);
|
||||
ResourceManager.file_cabinet.renderAll();
|
||||
}};
|
||||
}
|
||||
}
|
||||
@ -185,6 +185,8 @@ public class TileMappings {
|
||||
|
||||
put(TileEntityCharger.class, "tileentity_ntm_charger");
|
||||
|
||||
put(TileEntityFileCabinet.class, "tileentity_file_cabinet");
|
||||
|
||||
put(TileEntityProxyInventory.class, "tileentity_proxy_inventory");
|
||||
put(TileEntityProxyEnergy.class, "tileentity_proxy_power");
|
||||
put(TileEntityProxyCombo.class, "tileentity_proxy_combo");
|
||||
|
||||
@ -0,0 +1,145 @@
|
||||
package com.hbm.tileentity.machine.storage;
|
||||
|
||||
import com.hbm.inventory.container.ContainerFileCabinet;
|
||||
import com.hbm.inventory.gui.GUIFileCabinet;
|
||||
import com.hbm.packet.NBTPacket;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.INBTPacketReceiver;
|
||||
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIProvider, INBTPacketReceiver {
|
||||
|
||||
private int timer = 0;
|
||||
private int playersUsing = 0;
|
||||
//meh, it's literally just two extra variables
|
||||
public float lowerExtent = 0; //i don't know a term for how 'open' something is
|
||||
public float prevLowerExtent = 0;
|
||||
public float upperExtent = 0;
|
||||
public float prevUpperExtent = 0;
|
||||
|
||||
public TileEntityFileCabinet() {
|
||||
super(8);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getInventoryName() {
|
||||
return "container.fileCabinet";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openInventory() {
|
||||
if(!worldObj.isRemote) this.playersUsing++;
|
||||
//somehow guarentee that playersUsing is synced up when this method is called, to allow for sounds upon *actually* opening/closing?
|
||||
//this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.crateOpen", 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closeInventory() {
|
||||
if(!worldObj.isRemote) this.playersUsing--;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
if(this.playersUsing > 0) {
|
||||
if(timer < 10) {
|
||||
timer++;
|
||||
}
|
||||
} else
|
||||
timer = 0;
|
||||
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setInteger("timer", timer);
|
||||
data.setInteger("playersUsing", this.playersUsing);
|
||||
PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(data, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 25));
|
||||
} else {
|
||||
this.prevLowerExtent = lowerExtent;
|
||||
this.prevUpperExtent = upperExtent;
|
||||
float openSpeed = 1F / 25F;
|
||||
|
||||
if(this.playersUsing > 0) {
|
||||
this.lowerExtent += openSpeed;
|
||||
|
||||
if(timer >= 10)
|
||||
this.upperExtent += openSpeed;
|
||||
} else {
|
||||
this.lowerExtent -= openSpeed;
|
||||
this.upperExtent -= openSpeed;
|
||||
}
|
||||
|
||||
this.lowerExtent = MathHelper.clamp_float(lowerExtent, 0F, 0.8F);
|
||||
this.upperExtent = MathHelper.clamp_float(upperExtent, 0F, 0.8F);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void networkUnpack(NBTTagCompound nbt) {
|
||||
this.timer = nbt.getInteger("timer");
|
||||
this.playersUsing = nbt.getInteger("playersUsing");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new ContainerFileCabinet(player.inventory, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new GUIFileCabinet(player.inventory, this);
|
||||
}
|
||||
|
||||
//No automation, it's a filing cabinet.
|
||||
@Override
|
||||
public boolean isItemValidForSlot(int i, ItemStack stack) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInsertItem(int i, ItemStack itemStack, int j) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExtractItem(int i, ItemStack itemStack, int j) {
|
||||
return false;
|
||||
}
|
||||
|
||||
AxisAlignedBB bb = null;
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
|
||||
if(bb == null) {
|
||||
bb = AxisAlignedBB.getBoundingBox(
|
||||
xCoord - 1,
|
||||
yCoord,
|
||||
zCoord - 1,
|
||||
xCoord + 1,
|
||||
yCoord + 1,
|
||||
zCoord + 1
|
||||
);
|
||||
}
|
||||
|
||||
return bb;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double getMaxRenderDistanceSquared() {
|
||||
return 65536.0D;
|
||||
}
|
||||
}
|
||||
@ -485,6 +485,7 @@ container.epress=Electric Press
|
||||
container.factoryAdvanced=Advanced Factory
|
||||
container.factoryTitanium=Basic Factory
|
||||
container.fluidtank=Tank
|
||||
container.fileCabinet=Filing Cabinet
|
||||
container.forceField=Forcefield Emitter
|
||||
container.frackingTower=Hydraulic Fracking Tower
|
||||
container.furnaceIron=Iron Furnace
|
||||
@ -3912,6 +3913,7 @@ tile.factory_titanium_hull.name=Factory Block
|
||||
tile.fallout.name=Fallout
|
||||
tile.fence_metal.name=Chainlink Fence
|
||||
tile.field_disturber.name=High Energy Field Jammer
|
||||
tile.filing_cabinet.name=Filing Cabinet
|
||||
tile.fire_digamma.name=Lingering Digamma
|
||||
tile.fire_door.name=Fire Door
|
||||
tile.fireworks.name=Firework Battery
|
||||
|
||||
530
src/main/resources/assets/hbm/models/file_cabinet.obj
Normal file
530
src/main/resources/assets/hbm/models/file_cabinet.obj
Normal file
@ -0,0 +1,530 @@
|
||||
# Blender 3.2.0
|
||||
# www.blender.org
|
||||
o Cabinet
|
||||
v -0.312500 0.000000 0.250000
|
||||
v -0.312500 1.000000 0.250000
|
||||
v -0.312500 0.000000 -0.500000
|
||||
v -0.312500 1.000000 -0.500000
|
||||
v 0.312500 0.000000 0.250000
|
||||
v 0.312500 1.000000 0.250000
|
||||
v 0.312500 0.000000 -0.500000
|
||||
v 0.312500 1.000000 -0.500000
|
||||
v -0.312500 0.000000 0.250000
|
||||
v -0.312500 1.000000 0.250000
|
||||
v 0.312500 1.000000 0.250000
|
||||
v 0.312500 0.000000 0.250000
|
||||
v -0.250000 0.062500 -0.437500
|
||||
v 0.250000 0.062500 -0.437500
|
||||
v 0.250000 0.937500 -0.437500
|
||||
v -0.250000 0.937500 -0.437500
|
||||
v -0.250000 0.531250 -0.437500
|
||||
v 0.250000 0.531250 -0.437500
|
||||
v 0.312500 0.500000 0.250000
|
||||
v 0.250000 0.468750 -0.437500
|
||||
v -0.250000 0.468750 -0.437500
|
||||
v -0.312500 0.500000 0.250000
|
||||
v 0.250000 0.937500 0.250000
|
||||
v -0.250000 0.937500 0.250000
|
||||
v -0.250000 0.531250 0.250000
|
||||
v 0.250000 0.531250 0.250000
|
||||
v -0.250000 0.062500 0.250000
|
||||
v 0.250000 0.062500 0.250000
|
||||
v 0.250000 0.468750 0.250000
|
||||
v -0.250000 0.468750 0.250000
|
||||
vn -1.0000 -0.0000 -0.0000
|
||||
vn -0.0000 -0.0000 -1.0000
|
||||
vn 1.0000 -0.0000 -0.0000
|
||||
vn -0.0000 -0.0000 1.0000
|
||||
vn -0.0000 -1.0000 -0.0000
|
||||
vn -0.0000 1.0000 -0.0000
|
||||
vt 0.750000 0.640625
|
||||
vt 1.000000 0.640625
|
||||
vt 0.234375 0.828125
|
||||
vt 0.484375 0.828125
|
||||
vt 0.750000 0.484375
|
||||
vt 1.000000 0.484375
|
||||
vt 0.890625 0.828125
|
||||
vt 0.234375 0.984375
|
||||
vt 0.078125 0.828125
|
||||
vt 0.484375 0.984375
|
||||
vt 0.640625 0.828125
|
||||
vt 0.234375 0.640625
|
||||
vt 0.484375 0.640625
|
||||
vt 0.640625 0.640625
|
||||
vt 0.890625 0.640625
|
||||
vt 0.078125 0.640625
|
||||
vt 0.890625 0.828125
|
||||
vt 0.890625 0.703125
|
||||
vt 0.765625 0.828125
|
||||
vt 1.000000 0.703125
|
||||
vt 0.656250 0.828125
|
||||
vt 0.531250 0.828125
|
||||
vt 1.000000 0.828125
|
||||
vt 0.890625 0.828125
|
||||
vt 0.890625 0.703125
|
||||
vt 0.765625 0.828125
|
||||
vt 0.875000 0.484375
|
||||
vt 1.000000 0.703125
|
||||
vt 0.656250 0.828125
|
||||
vt 0.531250 0.828125
|
||||
vt 1.000000 0.828125
|
||||
vt 0.875000 0.640625
|
||||
vt 0.984375 0.500000
|
||||
vt 0.656250 1.000000
|
||||
vt 0.984375 0.625000
|
||||
vt 0.531250 1.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.882812 0.625000
|
||||
vt 0.875000 0.500000
|
||||
vt 0.890625 1.000000
|
||||
vt 0.882812 0.500000
|
||||
vt 0.875000 0.625000
|
||||
vt 0.765625 1.000000
|
||||
vt 0.765625 0.625000
|
||||
vt 0.890625 1.000000
|
||||
vt 0.765625 0.500000
|
||||
vt 0.765625 1.000000
|
||||
vt 0.890625 0.625000
|
||||
vt 0.867188 0.500000
|
||||
vt 0.656250 1.000000
|
||||
vt 0.890625 0.500000
|
||||
vt 0.867188 0.625000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.531250 1.000000
|
||||
s 0
|
||||
f 10/13/1 3/3/1 9/12/1
|
||||
f 4/4/2 7/8/2 3/3/2
|
||||
f 8/11/3 12/15/3 7/7/3
|
||||
f 15/20/4 17/24/4 18/25/4
|
||||
f 7/9/5 9/12/5 3/3/5
|
||||
f 4/4/6 11/14/6 8/11/6
|
||||
f 27/44/4 5/5/4 28/46/4
|
||||
f 23/33/4 2/2/4 24/35/4
|
||||
f 24/35/4 22/32/4 25/38/4
|
||||
f 28/46/4 19/27/4 29/49/4
|
||||
f 23/33/4 19/27/4 6/6/4
|
||||
f 30/52/4 25/38/4 22/32/4
|
||||
f 26/42/4 30/51/4 29/48/4
|
||||
f 20/28/4 13/17/4 14/18/4
|
||||
f 27/44/4 22/32/4 1/1/4
|
||||
f 26/41/4 29/49/4 19/27/4
|
||||
f 15/21/5 24/36/5 16/22/5
|
||||
f 16/23/3 25/40/3 17/24/3
|
||||
f 18/26/1 23/34/1 15/21/1
|
||||
f 17/24/6 26/43/6 18/26/6
|
||||
f 13/17/6 28/47/6 14/19/6
|
||||
f 14/19/1 29/50/1 20/29/1
|
||||
f 21/31/3 27/45/3 13/17/3
|
||||
f 20/29/5 30/54/5 21/30/5
|
||||
f 10/13/1 4/4/1 3/3/1
|
||||
f 4/4/2 8/10/2 7/8/2
|
||||
f 8/11/3 11/14/3 12/15/3
|
||||
f 15/20/4 16/23/4 17/24/4
|
||||
f 7/9/5 12/16/5 9/12/5
|
||||
f 4/4/6 10/13/6 11/14/6
|
||||
f 27/44/4 1/1/4 5/5/4
|
||||
f 23/33/4 6/6/4 2/2/4
|
||||
f 24/35/4 2/2/4 22/32/4
|
||||
f 28/46/4 5/5/4 19/27/4
|
||||
f 23/33/4 26/41/4 19/27/4
|
||||
f 26/42/4 25/39/4 30/51/4
|
||||
f 20/28/4 21/31/4 13/17/4
|
||||
f 27/44/4 30/52/4 22/32/4
|
||||
f 15/21/5 23/34/5 24/36/5
|
||||
f 16/23/3 24/37/3 25/40/3
|
||||
f 18/26/1 26/43/1 23/34/1
|
||||
f 17/24/6 25/40/6 26/43/6
|
||||
f 13/17/6 27/45/6 28/47/6
|
||||
f 14/19/1 28/47/1 29/50/1
|
||||
f 21/31/3 30/53/3 27/45/3
|
||||
f 20/29/5 29/50/5 30/54/5
|
||||
o LowerDrawer
|
||||
v -0.078125 0.171875 0.250000
|
||||
v -0.250000 0.468750 0.250000
|
||||
v -0.250000 0.062500 -0.437500
|
||||
v 0.250000 0.062500 0.250000
|
||||
v -0.046875 0.203125 0.250000
|
||||
v 0.250000 0.062500 -0.437500
|
||||
v -0.250000 0.062500 0.187500
|
||||
v -0.250000 0.468750 0.187500
|
||||
v 0.250000 0.062500 0.187500
|
||||
v 0.250000 0.468750 0.187500
|
||||
v -0.218750 0.265625 -0.406250
|
||||
v 0.250000 0.265625 -0.437500
|
||||
v -0.250000 0.265625 0.187500
|
||||
v 0.250000 0.265625 0.187500
|
||||
v -0.218750 0.265625 0.187500
|
||||
v -0.250000 0.265625 -0.437500
|
||||
v 0.218750 0.265625 -0.406250
|
||||
v 0.218750 0.265625 0.187500
|
||||
v -0.218750 0.093750 -0.406250
|
||||
v -0.218750 0.093750 0.187500
|
||||
v 0.218750 0.093750 -0.406250
|
||||
v 0.218750 0.093750 0.187500
|
||||
v -0.250000 0.062500 0.250000
|
||||
v -0.078125 0.203125 0.250000
|
||||
v 0.250000 0.468750 0.250000
|
||||
v -0.046875 0.171875 0.250000
|
||||
v 0.046875 0.171875 0.250000
|
||||
v 0.078125 0.203125 0.250000
|
||||
v 0.046875 0.203125 0.250000
|
||||
v 0.078125 0.171875 0.250000
|
||||
v 0.046875 0.171875 0.281250
|
||||
v 0.046875 0.203125 0.281250
|
||||
v 0.078125 0.203125 0.281250
|
||||
v 0.078125 0.171875 0.281250
|
||||
v -0.078125 0.171875 0.281250
|
||||
v -0.078125 0.203125 0.281250
|
||||
v -0.046875 0.203125 0.281250
|
||||
v -0.046875 0.171875 0.281250
|
||||
v -0.046875 0.203125 0.265625
|
||||
v -0.046875 0.171875 0.265625
|
||||
v 0.046875 0.203125 0.265625
|
||||
v 0.046875 0.171875 0.265625
|
||||
vn -0.0000 -1.0000 -0.0000
|
||||
vn -0.0000 1.0000 -0.0000
|
||||
vn 1.0000 -0.0000 -0.0000
|
||||
vn -1.0000 -0.0000 -0.0000
|
||||
vn -0.0000 -0.0000 -1.0000
|
||||
vn -0.0000 -0.0000 1.0000
|
||||
vt 0.046875 0.984375
|
||||
vt 0.625000 0.500000
|
||||
vt 0.281250 0.390625
|
||||
vt 0.078125 0.640625
|
||||
vt 0.734375 0.625000
|
||||
vt 0.484375 0.640625
|
||||
vt 0.046875 1.000000
|
||||
vt 0.058594 0.972656
|
||||
vt 0.078125 0.515625
|
||||
vt 0.750000 0.500000
|
||||
vt 0.734375 0.484375
|
||||
vt 0.234375 0.640625
|
||||
vt 0.078125 0.796875
|
||||
vt 0.625000 0.484375
|
||||
vt 0.609375 0.500000
|
||||
vt 0.734375 0.640625
|
||||
vt 0.078125 0.359375
|
||||
vt 0.750000 0.625000
|
||||
vt 0.234375 0.515625
|
||||
vt 0.625000 0.640625
|
||||
vt 0.609375 0.625000
|
||||
vt 0.019531 0.632812
|
||||
vt 0.019531 0.648438
|
||||
vt 0.277344 0.484375
|
||||
vt 0.027344 0.515625
|
||||
vt 0.679688 0.484375
|
||||
vt 0.562500 0.500000
|
||||
vt 0.027344 0.796875
|
||||
vt 0.679688 0.640625
|
||||
vt 0.027344 0.359375
|
||||
vt 0.562500 0.625000
|
||||
vt 0.019531 0.796875
|
||||
vt 0.277344 0.109375
|
||||
vt 0.277344 0.640625
|
||||
vt 0.027344 0.640625
|
||||
vt 0.019531 0.507812
|
||||
vt 0.019531 0.523438
|
||||
vt 0.277344 0.375000
|
||||
vt 0.019531 0.359375
|
||||
vt 0.277344 0.218750
|
||||
vt 0.234375 0.484375
|
||||
vt 0.085938 0.484375
|
||||
vt 0.234375 0.640625
|
||||
vt 0.234375 0.109375
|
||||
vt 0.234375 0.375000
|
||||
vt 0.085938 0.375000
|
||||
vt 0.234375 0.218750
|
||||
vt 0.484375 0.390625
|
||||
vt 0.734375 0.500000
|
||||
vt 0.046875 0.992188
|
||||
vt 0.625000 0.625000
|
||||
vt 0.281250 0.640625
|
||||
vt 0.046875 0.976562
|
||||
vt 0.058594 0.980469
|
||||
vt 0.109375 0.976562
|
||||
vt 0.097656 0.980469
|
||||
vt 0.109375 0.992188
|
||||
vt 0.097656 0.972656
|
||||
vt 0.109375 1.000000
|
||||
vt 0.109375 0.984375
|
||||
vt 0.101562 0.976562
|
||||
vt 0.093750 0.984375
|
||||
vt 0.101562 1.000000
|
||||
vt 0.093750 0.992188
|
||||
vt 0.093750 0.968750
|
||||
vt 0.101562 0.992188
|
||||
vt 0.101562 0.984375
|
||||
vt 0.054688 0.984375
|
||||
vt 0.054688 0.992188
|
||||
vt 0.054688 1.000000
|
||||
vt 0.062500 0.992188
|
||||
vt 0.062500 0.968750
|
||||
vt 0.054688 0.976562
|
||||
vt 0.062500 0.984375
|
||||
vt 0.062500 0.972656
|
||||
vt 0.062500 0.980469
|
||||
vt 0.093750 0.972656
|
||||
vt 0.093750 0.980469
|
||||
s 0
|
||||
f 39/72/7 53/103/7 37/64/7
|
||||
f 38/69/8 55/105/8 40/75/8
|
||||
f 36/63/7 37/66/7 33/58/7
|
||||
f 44/84/8 47/90/8 48/93/8
|
||||
f 40/74/9 55/105/9 44/83/9
|
||||
f 34/59/9 44/83/9 55/105/9
|
||||
f 39/70/9 44/83/9 34/59/9
|
||||
f 53/103/10 43/80/10 37/65/10
|
||||
f 32/56/10 43/80/10 53/103/10
|
||||
f 38/68/10 43/80/10 32/56/10
|
||||
f 36/63/9 44/84/9 39/71/9
|
||||
f 42/79/11 33/58/11 46/89/11
|
||||
f 33/58/10 43/82/10 46/89/10
|
||||
f 46/89/8 47/91/8 42/79/8
|
||||
f 40/75/11 43/81/11 38/69/11
|
||||
f 41/77/8 43/82/8 45/86/8
|
||||
f 47/92/10 52/101/10 48/94/10
|
||||
f 52/100/8 49/95/8 50/96/8
|
||||
f 45/88/9 49/95/9 41/78/9
|
||||
f 48/94/11 50/98/11 45/87/11
|
||||
f 41/78/12 51/99/12 47/92/12
|
||||
f 63/120/12 61/116/12 64/121/12
|
||||
f 60/114/7 61/115/7 57/109/7
|
||||
f 58/111/9 64/121/9 60/114/9
|
||||
f 59/113/8 63/120/8 58/111/8
|
||||
f 71/131/9 57/110/9 59/112/9
|
||||
f 67/125/12 65/122/12 68/128/12
|
||||
f 31/55/10 66/123/10 54/104/10
|
||||
f 68/127/7 31/55/7 56/107/7
|
||||
f 66/123/8 35/61/8 54/104/8
|
||||
f 70/130/10 35/62/10 56/108/10
|
||||
f 70/130/12 71/131/12 69/129/12
|
||||
f 68/128/8 72/132/8 70/130/8
|
||||
f 62/118/12 68/128/12 61/116/12
|
||||
f 69/129/8 62/119/8 71/131/8
|
||||
f 34/60/12 32/57/12 53/102/12
|
||||
f 39/72/7 34/59/7 53/103/7
|
||||
f 38/69/8 32/56/8 55/105/8
|
||||
f 36/63/7 39/73/7 37/66/7
|
||||
f 44/84/8 42/79/8 47/90/8
|
||||
f 36/63/9 42/79/9 44/84/9
|
||||
f 42/79/11 36/63/11 33/58/11
|
||||
f 33/58/10 37/67/10 43/82/10
|
||||
f 46/89/8 41/76/8 47/91/8
|
||||
f 40/75/11 44/85/11 43/81/11
|
||||
f 41/77/8 46/89/8 43/82/8
|
||||
f 47/92/10 51/99/10 52/101/10
|
||||
f 52/100/8 51/99/8 49/95/8
|
||||
f 45/88/9 50/97/9 49/95/9
|
||||
f 48/94/11 52/101/11 50/98/11
|
||||
f 41/78/12 49/95/12 51/99/12
|
||||
f 63/120/12 62/118/12 61/116/12
|
||||
f 60/114/7 64/121/7 61/115/7
|
||||
f 58/111/9 63/120/9 64/121/9
|
||||
f 59/113/8 62/117/8 63/120/8
|
||||
f 71/131/9 72/132/9 57/110/9
|
||||
f 67/125/12 66/123/12 65/122/12
|
||||
f 31/55/10 65/122/10 66/123/10
|
||||
f 68/127/7 65/122/7 31/55/7
|
||||
f 66/123/8 67/124/8 35/61/8
|
||||
f 70/130/10 69/129/10 35/62/10
|
||||
f 70/130/12 72/132/12 71/131/12
|
||||
f 68/128/8 61/116/8 72/132/8
|
||||
f 62/118/12 67/125/12 68/128/12
|
||||
f 69/129/8 67/126/8 62/119/8
|
||||
f 34/60/12 55/106/12 32/57/12
|
||||
l 38 37
|
||||
l 40 39
|
||||
o UpperDrawer
|
||||
v -0.078125 0.640625 0.250000
|
||||
v -0.250000 0.937500 0.250000
|
||||
v -0.250000 0.531250 -0.437500
|
||||
v 0.250000 0.531250 0.250000
|
||||
v -0.046875 0.671875 0.250000
|
||||
v 0.250000 0.531250 -0.437500
|
||||
v -0.250000 0.531250 0.187500
|
||||
v -0.250000 0.937500 0.187500
|
||||
v 0.250000 0.531250 0.187500
|
||||
v 0.250000 0.937500 0.187500
|
||||
v -0.218750 0.734375 -0.406250
|
||||
v 0.250000 0.734375 -0.437500
|
||||
v -0.250000 0.734375 0.187500
|
||||
v 0.250000 0.734375 0.187500
|
||||
v -0.218750 0.734375 0.187500
|
||||
v -0.250000 0.734375 -0.437500
|
||||
v 0.218750 0.734375 -0.406250
|
||||
v 0.218750 0.734375 0.187500
|
||||
v -0.218750 0.562500 -0.406250
|
||||
v -0.218750 0.562500 0.187500
|
||||
v 0.218750 0.562500 -0.406250
|
||||
v 0.218750 0.562500 0.187500
|
||||
v -0.250000 0.531250 0.250000
|
||||
v -0.078125 0.671875 0.250000
|
||||
v 0.250000 0.937500 0.250000
|
||||
v -0.046875 0.640625 0.250000
|
||||
v 0.046875 0.640625 0.250000
|
||||
v 0.078125 0.671875 0.250000
|
||||
v 0.046875 0.671875 0.250000
|
||||
v 0.078125 0.640625 0.250000
|
||||
v 0.046875 0.640625 0.281250
|
||||
v 0.046875 0.671875 0.281250
|
||||
v 0.078125 0.671875 0.281250
|
||||
v 0.078125 0.640625 0.281250
|
||||
v -0.078125 0.640625 0.281250
|
||||
v -0.078125 0.671875 0.281250
|
||||
v -0.046875 0.671875 0.281250
|
||||
v -0.046875 0.640625 0.281250
|
||||
v -0.046875 0.671875 0.265625
|
||||
v -0.046875 0.640625 0.265625
|
||||
v 0.046875 0.671875 0.265625
|
||||
v 0.046875 0.640625 0.265625
|
||||
vn -0.0000 -1.0000 -0.0000
|
||||
vn -0.0000 1.0000 -0.0000
|
||||
vn 1.0000 -0.0000 -0.0000
|
||||
vn -1.0000 -0.0000 -0.0000
|
||||
vn -0.0000 -0.0000 -1.0000
|
||||
vn -0.0000 -0.0000 1.0000
|
||||
vt 0.046875 0.984375
|
||||
vt 0.625000 0.500000
|
||||
vt 0.281250 0.140625
|
||||
vt 0.078125 0.640625
|
||||
vt 0.734375 0.625000
|
||||
vt 0.484375 0.390625
|
||||
vt 0.046875 1.000000
|
||||
vt 0.058594 0.972656
|
||||
vt 0.078125 0.515625
|
||||
vt 0.750000 0.500000
|
||||
vt 0.734375 0.484375
|
||||
vt 0.234375 0.640625
|
||||
vt 0.078125 0.796875
|
||||
vt 0.625000 0.484375
|
||||
vt 0.609375 0.500000
|
||||
vt 0.734375 0.640625
|
||||
vt 0.078125 0.359375
|
||||
vt 0.750000 0.625000
|
||||
vt 0.234375 0.515625
|
||||
vt 0.625000 0.640625
|
||||
vt 0.609375 0.625000
|
||||
vt 0.019531 0.632812
|
||||
vt 0.019531 0.648438
|
||||
vt 0.277344 0.484375
|
||||
vt 0.027344 0.515625
|
||||
vt 0.679688 0.484375
|
||||
vt 0.562500 0.500000
|
||||
vt 0.027344 0.796875
|
||||
vt 0.679688 0.640625
|
||||
vt 0.027344 0.359375
|
||||
vt 0.562500 0.625000
|
||||
vt 0.019531 0.796875
|
||||
vt 0.277344 0.109375
|
||||
vt 0.277344 0.640625
|
||||
vt 0.027344 0.640625
|
||||
vt 0.019531 0.507812
|
||||
vt 0.019531 0.523438
|
||||
vt 0.277344 0.375000
|
||||
vt 0.019531 0.359375
|
||||
vt 0.277344 0.218750
|
||||
vt 0.234375 0.484375
|
||||
vt 0.085938 0.484375
|
||||
vt 0.234375 0.640625
|
||||
vt 0.234375 0.109375
|
||||
vt 0.234375 0.375000
|
||||
vt 0.085938 0.375000
|
||||
vt 0.234375 0.218750
|
||||
vt 0.484375 0.140625
|
||||
vt 0.734375 0.500000
|
||||
vt 0.046875 0.992188
|
||||
vt 0.625000 0.625000
|
||||
vt 0.281250 0.390625
|
||||
vt 0.046875 0.976562
|
||||
vt 0.058594 0.980469
|
||||
vt 0.109375 0.976562
|
||||
vt 0.097656 0.980469
|
||||
vt 0.109375 0.992188
|
||||
vt 0.097656 0.972656
|
||||
vt 0.109375 1.000000
|
||||
vt 0.109375 0.984375
|
||||
vt 0.101562 0.976562
|
||||
vt 0.093750 0.984375
|
||||
vt 0.101562 1.000000
|
||||
vt 0.093750 0.992188
|
||||
vt 0.093750 0.968750
|
||||
vt 0.101562 0.992188
|
||||
vt 0.101562 0.984375
|
||||
vt 0.054688 0.984375
|
||||
vt 0.054688 0.992188
|
||||
vt 0.054688 1.000000
|
||||
vt 0.062500 0.992188
|
||||
vt 0.062500 0.968750
|
||||
vt 0.054688 0.976562
|
||||
vt 0.062500 0.984375
|
||||
vt 0.062500 0.972656
|
||||
vt 0.062500 0.980469
|
||||
vt 0.093750 0.972656
|
||||
vt 0.093750 0.980469
|
||||
s 0
|
||||
f 81/150/13 95/181/13 79/142/13
|
||||
f 80/147/14 97/183/14 82/153/14
|
||||
f 78/141/13 79/144/13 75/136/13
|
||||
f 86/162/14 89/168/14 90/171/14
|
||||
f 82/152/15 97/183/15 86/161/15
|
||||
f 76/137/15 86/161/15 97/183/15
|
||||
f 81/148/15 86/161/15 76/137/15
|
||||
f 95/181/16 85/158/16 79/143/16
|
||||
f 74/134/16 85/158/16 95/181/16
|
||||
f 80/146/16 85/158/16 74/134/16
|
||||
f 78/141/15 86/162/15 81/149/15
|
||||
f 84/157/17 75/136/17 88/167/17
|
||||
f 75/136/16 85/160/16 88/167/16
|
||||
f 88/167/14 89/169/14 84/157/14
|
||||
f 82/153/17 85/159/17 80/147/17
|
||||
f 83/155/14 85/160/14 87/164/14
|
||||
f 89/170/16 94/179/16 90/172/16
|
||||
f 94/178/14 91/173/14 92/174/14
|
||||
f 87/166/15 91/173/15 83/156/15
|
||||
f 90/172/17 92/176/17 87/165/17
|
||||
f 83/156/18 93/177/18 89/170/18
|
||||
f 105/198/18 103/194/18 106/199/18
|
||||
f 102/192/13 103/193/13 99/187/13
|
||||
f 100/189/15 106/199/15 102/192/15
|
||||
f 101/191/14 105/198/14 100/189/14
|
||||
f 113/209/15 99/188/15 101/190/15
|
||||
f 109/203/18 107/200/18 110/206/18
|
||||
f 73/133/16 108/201/16 96/182/16
|
||||
f 110/205/13 73/133/13 98/185/13
|
||||
f 108/201/14 77/139/14 96/182/14
|
||||
f 112/208/16 77/140/16 98/186/16
|
||||
f 112/208/18 113/209/18 111/207/18
|
||||
f 110/206/14 114/210/14 112/208/14
|
||||
f 104/196/18 110/206/18 103/194/18
|
||||
f 111/207/14 104/197/14 113/209/14
|
||||
f 76/138/18 74/135/18 95/180/18
|
||||
f 81/150/13 76/137/13 95/181/13
|
||||
f 80/147/14 74/134/14 97/183/14
|
||||
f 78/141/13 81/151/13 79/144/13
|
||||
f 86/162/14 84/157/14 89/168/14
|
||||
f 78/141/15 84/157/15 86/162/15
|
||||
f 84/157/17 78/141/17 75/136/17
|
||||
f 75/136/16 79/145/16 85/160/16
|
||||
f 88/167/14 83/154/14 89/169/14
|
||||
f 82/153/17 86/163/17 85/159/17
|
||||
f 83/155/14 88/167/14 85/160/14
|
||||
f 89/170/16 93/177/16 94/179/16
|
||||
f 94/178/14 93/177/14 91/173/14
|
||||
f 87/166/15 92/175/15 91/173/15
|
||||
f 90/172/17 94/179/17 92/176/17
|
||||
f 83/156/18 91/173/18 93/177/18
|
||||
f 105/198/18 104/196/18 103/194/18
|
||||
f 102/192/13 106/199/13 103/193/13
|
||||
f 100/189/15 105/198/15 106/199/15
|
||||
f 101/191/14 104/195/14 105/198/14
|
||||
f 113/209/15 114/210/15 99/188/15
|
||||
f 109/203/18 108/201/18 107/200/18
|
||||
f 73/133/16 107/200/16 108/201/16
|
||||
f 110/205/13 107/200/13 73/133/13
|
||||
f 108/201/14 109/202/14 77/139/14
|
||||
f 112/208/16 111/207/16 77/140/16
|
||||
f 112/208/18 114/210/18 113/209/18
|
||||
f 110/206/14 103/194/14 114/210/14
|
||||
f 104/196/18 109/203/18 110/206/18
|
||||
f 111/207/14 109/204/14 104/197/14
|
||||
f 76/138/18 97/184/18 74/135/18
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 850 B |
BIN
src/main/resources/assets/hbm/textures/models/file_cabinet.png
Normal file
BIN
src/main/resources/assets/hbm/textures/models/file_cabinet.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.2 KiB |
Loading…
x
Reference in New Issue
Block a user