Merge branch 'HbmMods:master' into master
10
changelog
@ -1,4 +1,5 @@
|
||||
## Changed
|
||||
* Updated russian and chinese localization
|
||||
* Updated the trinitite ore textures
|
||||
* The ore spots are now smaller and more shard-like
|
||||
* Each trinitite ore block now has four randomized texture variants
|
||||
@ -9,7 +10,14 @@
|
||||
* This is a straight downgrade but people for some reason wanted it so sure why not
|
||||
* Cable diodes now have a GUI for configuration instead of requiring tools
|
||||
* The throughput can now be configured more precisely instead of increments of powers of 10
|
||||
* The magnetic storage barrel now uses BSCCO and has a new texture
|
||||
|
||||
## Fixed
|
||||
* Fixed burner press GUI offsets being incorrect
|
||||
* Potentially fixed an issue with journey map where slaked sellafite would sometimes get the wrong color in the minimap
|
||||
* Potentially fixed an issue with journey map where slaked sellafite would sometimes get the wrong color in the minimap
|
||||
* Finally fixed an issue making electric armor way worse than it should be, as well as preventing the vanilla armor points from working almost entirely
|
||||
* Fixed pneumatic storage exporter duping filter items when broken
|
||||
* Re-enabled the GTNH-NEI filter slot integration
|
||||
* Fixed various GUI title offsets
|
||||
* Fixed mask man announcement being sent 20 minutes before spawn (therefore never being sent at all) instead of one minute as intended
|
||||
* Fixed old BAT9000 recycling
|
||||
@ -1,6 +1,6 @@
|
||||
mod_version=1.0.27
|
||||
# Empty build number makes a release type
|
||||
mod_build_number=5751
|
||||
mod_build_number=5758
|
||||
|
||||
credits=HbMinecraft,\
|
||||
\ rodolphito (explosion algorithms),\
|
||||
|
||||
@ -73,9 +73,9 @@ public class BlockPile extends BlockContainer implements IBlockCT, IToolable {
|
||||
|
||||
this.rec = IBlockCT.primeReceiver(reg, this.blockIcon.getIconName(), this.blockIcon);
|
||||
this.recTop = IBlockCT.primeReceiver(reg, this.iconTop.getIconName(), this.iconTop);
|
||||
this.recChanIn = IBlockCT.primeReceiver(reg, "pile_block_input", this.blockIcon);
|
||||
this.recChanOut = IBlockCT.primeReceiver(reg, "pile_block_output", this.blockIcon);
|
||||
this.recCon = IBlockCT.primeReceiver(reg, "pile_block_control_top", this.iconTop);
|
||||
this.recChanIn = IBlockCT.primeReceiver(reg, RefStrings.MODID + ":pile_block_input", this.blockIcon);
|
||||
this.recChanOut = IBlockCT.primeReceiver(reg, RefStrings.MODID + ":pile_block_output", this.blockIcon);
|
||||
this.recCon = IBlockCT.primeReceiver(reg, RefStrings.MODID + ":pile_block_control_top", this.iconTop);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -129,7 +129,11 @@ public class BlockPileBrick extends Block implements IToolable {
|
||||
core.orientation = PileOrientation.getOrientation(dir);
|
||||
core.setupSize(posHeight + negHeight + 1, left + right + 1, depth + 1);
|
||||
} else {
|
||||
boolean isEdge = h == -negHeight || h == posHeight || v == -left || v == right || d == 0 || d == depth;
|
||||
int edgeCount = 0;
|
||||
if(h == -negHeight || h == posHeight) edgeCount++;
|
||||
if(v == -left || v == right) edgeCount++;
|
||||
if(d == 0 || d == depth) edgeCount++;
|
||||
boolean isEdge = edgeCount > 1;
|
||||
world.setBlock(iX, iY, iZ, ModBlocks.pile_block, isEdge ? BlockPile.META_EDGE : BlockPile.META_DUMMY, 3);
|
||||
TileEntityPileBaseMK2 pile = (TileEntityPileBaseMK2) world.getTileEntity(iX, iY, iZ);
|
||||
pile.setCore(x, y, z);
|
||||
|
||||
@ -1,16 +1,24 @@
|
||||
package com.hbm.blocks.machine.pile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.IBlockMulti;
|
||||
import com.hbm.tileentity.machine.pile.TileEntityPileControl;
|
||||
import com.hbm.tileentity.machine.pile.TileEntityPileLoader;
|
||||
import com.hbm.tileentity.machine.pile.TileEntityPileVent;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockPileDevice extends BlockContainer {
|
||||
public class BlockPileDevice extends BlockContainer implements IBlockMulti {
|
||||
|
||||
public static final int ITEM_META_LOADER = 0;
|
||||
public static final int ITEM_META_VENT = 1;
|
||||
@ -24,8 +32,22 @@ public class BlockPileDevice extends BlockContainer {
|
||||
super(Material.iron);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSubCount() {
|
||||
return 3;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void getSubBlocks(Item item, CreativeTabs tab, List list) {
|
||||
for(int i = 0; i < getSubCount(); ++i) {
|
||||
list.add(new ItemStack(item, 1, i));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
meta -= meta % 4;
|
||||
if(meta == BLOCK_META_LOADER) return new TileEntityPileLoader();
|
||||
if(meta == BLOCK_META_VENT) return new TileEntityPileVent();
|
||||
if(meta == BLOCK_META_CONTROL) return new TileEntityPileControl();
|
||||
|
||||
@ -32,7 +32,6 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
||||
@ -215,8 +214,10 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock,
|
||||
|
||||
@Override
|
||||
public void receiveControl(NBTTagCompound data) {
|
||||
if(data.hasKey("capacity")) this.limit = MathHelper.clamp_int(data.getInteger("limit"), 0, 1_000_000_000);
|
||||
if(data.hasKey("limit")) this.limit = data.getLong("limit");
|
||||
if(data.hasKey("priority")) this.priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, data.getByte("priority"));
|
||||
if(limit < 0) limit = 0;
|
||||
if(limit > 10_000_000_000L) limit = 10_000_000_000L;
|
||||
this.markDirty();
|
||||
}
|
||||
|
||||
|
||||
@ -3,7 +3,12 @@ package com.hbm.blocks.network.pneumatic;
|
||||
import com.hbm.blocks.machine.BlockMachineBase;
|
||||
import com.hbm.tileentity.network.pneumatic.TileEntityPneumoStorageExporter;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.inventory.ISidedInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
@ -17,4 +22,51 @@ public class PneumoStorageExporter extends BlockMachineBase {
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityPneumoStorageExporter();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
|
||||
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
|
||||
if(!(te instanceof ISidedInventory)) return;
|
||||
|
||||
ISidedInventory tileentityfurnace = (ISidedInventory) te;
|
||||
|
||||
if(tileentityfurnace != null) {
|
||||
|
||||
for(int i = 9; i < tileentityfurnace.getSizeInventory(); ++i) {
|
||||
|
||||
ItemStack itemstack = tileentityfurnace.getStackInSlot(i);
|
||||
|
||||
if(itemstack != null) {
|
||||
|
||||
float mX = world.rand.nextFloat() * 0.8F + 0.1F;
|
||||
float mY = world.rand.nextFloat() * 0.8F + 0.1F;
|
||||
float mZ = world.rand.nextFloat() * 0.8F + 0.1F;
|
||||
|
||||
while(itemstack.stackSize > 0) {
|
||||
|
||||
int amount = world.rand.nextInt(21) + 10;
|
||||
if(amount > itemstack.stackSize) amount = itemstack.stackSize;
|
||||
|
||||
itemstack.stackSize -= amount;
|
||||
EntityItem entityitem = new EntityItem(world, x + mX, y + mY, z + mZ, new ItemStack(itemstack.getItem(), amount, itemstack.getItemDamage()));
|
||||
|
||||
if(itemstack.hasTagCompound())
|
||||
entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy());
|
||||
|
||||
float motion = 0.05F;
|
||||
entityitem.motionX = (float) world.rand.nextGaussian() * motion;
|
||||
entityitem.motionY = (float) world.rand.nextGaussian() * motion + 0.2F;
|
||||
entityitem.motionZ = (float) world.rand.nextGaussian() * motion;
|
||||
world.spawnEntityInWorld(entityitem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
world.func_147453_f(x, y, z, block);
|
||||
}
|
||||
|
||||
super.breakBlock(world, x, y, z, block, meta);
|
||||
}
|
||||
}
|
||||
|
||||
@ -46,7 +46,7 @@ public class BossSpawnHandler {
|
||||
public static void rollTheDice(World world) {
|
||||
|
||||
/*
|
||||
* Spawns every 3 hours with a 33% chance if
|
||||
* Spawns every 20 minutes if
|
||||
* - the player is 3 blocks below the surface
|
||||
* - the player has at least 50 RAD
|
||||
* - the player has either crafted or placed an ore acidizer before
|
||||
@ -70,7 +70,7 @@ public class BossSpawnHandler {
|
||||
|
||||
data.maskManTimer++;
|
||||
|
||||
if(data.maskManTimer == MobConfig.maskmanDelay - 20 * 60) {
|
||||
if(data.maskManTimer == MobConfig.maskmanDelay - 60) {
|
||||
player.addChatComponentMessage(new ChatComponentText("The mask man draws near.").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED)));
|
||||
}
|
||||
|
||||
|
||||
@ -44,7 +44,7 @@ public class GUICrystallizer extends GuiInfoContainer {
|
||||
protected void drawGuiContainerForegroundLayer(int i, int j) {
|
||||
String name = this.acidomatic.hasCustomInventoryName() ? this.acidomatic.getInventoryName() : I18n.format(this.acidomatic.getInventoryName());
|
||||
|
||||
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
|
||||
}
|
||||
|
||||
|
||||
@ -37,9 +37,9 @@ public class GUIDiode extends GuiScreen {
|
||||
|
||||
textThroughput = new GuiTextField(fontRendererObj, this.width / 2 - 150, 100, 90, 20);
|
||||
textThroughput.setText("" + diode.limit);
|
||||
textThroughput.setMaxStringLength(10);
|
||||
textThroughput.setMaxStringLength(11);
|
||||
|
||||
buttonPriority = new GuiButton(0, this.width / 2 + 50, 100, 90, 20, diode.priority.name());
|
||||
buttonPriority = new GuiButton(0, this.width / 2 + 20, 100, 90, 20, diode.priority.name());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -47,10 +47,10 @@ public class GUIDiode extends GuiScreen {
|
||||
drawDefaultBackground();
|
||||
|
||||
drawString(fontRendererObj, "Throughput:", this.width / 2 - 150, 80, 0xA0A0A0);
|
||||
drawString(fontRendererObj, "(max. 1,000,000,000 HE)", this.width / 2 - 150, 90, 0xA0A0A0);
|
||||
drawString(fontRendererObj, "(max. 10,000,000,000 HE)", this.width / 2 - 150, 90, 0xA0A0A0);
|
||||
textThroughput.drawTextBox();
|
||||
|
||||
drawString(fontRendererObj, "Priority:", this.width / 2 + 50, 80, 0xA0A0A0);
|
||||
drawString(fontRendererObj, "Priority:", this.width / 2 + 20, 80, 0xA0A0A0);
|
||||
buttonPriority.drawButton(mc, mouseX, mouseY);
|
||||
|
||||
super.drawScreen(mouseX, mouseY, partialTicks);
|
||||
@ -63,7 +63,7 @@ public class GUIDiode extends GuiScreen {
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setByte("priority", (byte) priority);
|
||||
|
||||
try { data.setInteger("limit", Integer.parseInt(textThroughput.getText())); } catch(Exception ex) {}
|
||||
try { data.setLong("limit", Long.parseLong(textThroughput.getText())); } catch(Exception ex) {}
|
||||
|
||||
PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, diode.xCoord, diode.yCoord, diode.zCoord));
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ public class GUIMachineCyclotron extends GuiInfoContainer {
|
||||
protected void drawGuiContainerForegroundLayer(int i, int j) {
|
||||
String name = this.cyclotron.hasCustomInventoryName() ? this.cyclotron.getInventoryName() : I18n.format(this.cyclotron.getInventoryName());
|
||||
|
||||
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
this.fontRendererObj.drawString(name, 79 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
this.fontRendererObj.drawString(I18n.format("container.inventory"), 15, this.ySize - 96 + 2, 4210752);
|
||||
}
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@ import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class GUIMachineEPress extends GuiInfoContainer {
|
||||
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_epress.png");
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_electric_press.png");
|
||||
private TileEntityMachineEPress press;
|
||||
|
||||
public GUIMachineEPress(InventoryPlayer invPlayer, TileEntityMachineEPress tedf) {
|
||||
@ -34,7 +34,7 @@ public class GUIMachineEPress extends GuiInfoContainer {
|
||||
protected void drawGuiContainerForegroundLayer( int i, int j) {
|
||||
String name = this.press.hasCustomInventoryName() ? this.press.getInventoryName() : I18n.format(this.press.getInventoryName());
|
||||
|
||||
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
this.fontRendererObj.drawString(name, 89 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
|
||||
}
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ import com.hbm.util.i18n.I18nUtil;
|
||||
|
||||
public class GUIMachineElectricFurnace extends GuiInfoContainer {
|
||||
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/GUIElectricFurnace.png");
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_electric_furnace.png");
|
||||
private TileEntityMachineElectricFurnace furnace;
|
||||
|
||||
public GUIMachineElectricFurnace(InventoryPlayer invPlayer, TileEntityMachineElectricFurnace furnace) {
|
||||
@ -43,7 +43,7 @@ public class GUIMachineElectricFurnace extends GuiInfoContainer {
|
||||
protected void drawGuiContainerForegroundLayer(int i, int j) {
|
||||
String name = this.furnace.hasCustomInventoryName() ? this.furnace.getInventoryName() : I18n.format(this.furnace.getInventoryName());
|
||||
|
||||
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
|
||||
}
|
||||
|
||||
@ -74,7 +74,7 @@ public class GUIMachineElectricFurnace extends GuiInfoContainer {
|
||||
int p = furnace.getProgressScaled(28);
|
||||
drawTexturedModalRect(guiLeft + 43, guiTop + 36, 176, 0, p, 12);
|
||||
|
||||
this.drawInfoPanel(guiLeft + 116, guiTop + 20, 8, 8, 8);
|
||||
this.drawInfoPanel(guiLeft + 115, guiTop + 19, 8, 8, 8);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -14,7 +14,7 @@ import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class GUIMachinePress extends GuiInfoContainer {
|
||||
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_press.png");
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_press.png");
|
||||
private TileEntityMachinePress press;
|
||||
|
||||
public GUIMachinePress(InventoryPlayer invPlayer, TileEntityMachinePress tedf) {
|
||||
@ -48,7 +48,7 @@ public class GUIMachinePress extends GuiInfoContainer {
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
|
||||
if(press.burnTime >= 20) {
|
||||
this.drawTexturedModalRect(guiLeft + 27, guiTop + 36, 0, 214, 14, 14);
|
||||
this.drawTexturedModalRect(guiLeft + 26, guiTop + 36, 0, 214, 14, 14);
|
||||
}
|
||||
|
||||
int k = (int) (press.renderPress * 16 / press.maxPress);
|
||||
|
||||
@ -52,7 +52,7 @@ public class GUIMachineRTG extends GuiInfoContainer {
|
||||
protected void drawGuiContainerForegroundLayer( int i, int j) {
|
||||
String name = this.rtg.hasCustomInventoryName() ? this.rtg.getInventoryName() : I18n.format(this.rtg.getInventoryName());
|
||||
|
||||
this.fontRendererObj.drawString(name, 13 ,7, 10925486);
|
||||
this.fontRendererObj.drawString(name, 60 - this.fontRendererObj.getStringWidth(name) / 2, 7, 10925486);
|
||||
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
|
||||
}
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class GUIMachineShredder extends GuiInfoContainer {
|
||||
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_shredder.png");
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_shredder.png");
|
||||
private TileEntityMachineShredder diFurnace;
|
||||
|
||||
public GUIMachineShredder(InventoryPlayer invPlayer, TileEntityMachineShredder tedf) {
|
||||
@ -45,7 +45,7 @@ public class GUIMachineShredder extends GuiInfoContainer {
|
||||
protected void drawGuiContainerForegroundLayer(int i, int j) {
|
||||
String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName());
|
||||
|
||||
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
this.fontRendererObj.drawString(name, 106 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
|
||||
}
|
||||
|
||||
|
||||
@ -731,7 +731,7 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
}
|
||||
).setTier(2));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new ComparableStack(ModBlocks.machine_bat9000, 1, 1),
|
||||
new ComparableStack(ModBlocks.machine_bat9000, 1),
|
||||
new AnvilOutput[] {
|
||||
new AnvilOutput(new ItemStack(ModItems.plate_welded, 4, Mats.MAT_TCALLOY.id)),
|
||||
new AnvilOutput(new ItemStack(ModItems.plate_steel, 16))
|
||||
|
||||
@ -26,7 +26,6 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem {
|
||||
this.chargeRate = chargeRate;
|
||||
this.consumption = consumption;
|
||||
this.drain = drain;
|
||||
this.setMaxDamage(1);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
|
||||
@ -3,7 +3,7 @@ package com.hbm.lib;
|
||||
public class RefStrings {
|
||||
public static final String MODID = "hbm";
|
||||
public static final String NAME = "Hbm's Nuclear Tech Mod";
|
||||
public static final String VERSION = "1.0.27 BETA (5751)";
|
||||
public static final String VERSION = "1.0.27 BETA (5758)";
|
||||
//HBM's Beta Naming Convention:
|
||||
//V T (X)
|
||||
//V -> next release version
|
||||
|
||||
@ -80,6 +80,7 @@ import com.hbm.tileentity.machine.*;
|
||||
import com.hbm.tileentity.machine.albion.*;
|
||||
import com.hbm.tileentity.machine.fusion.*;
|
||||
import com.hbm.tileentity.machine.oil.*;
|
||||
import com.hbm.tileentity.machine.pile.*;
|
||||
import com.hbm.tileentity.machine.rbmk.*;
|
||||
import com.hbm.tileentity.machine.storage.*;
|
||||
import com.hbm.tileentity.network.*;
|
||||
@ -375,6 +376,10 @@ public class ClientProxy extends ServerProxy {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryBasin.class, new RenderFoundry());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryMold.class, new RenderFoundry());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineStrandCaster.class, new RenderStrandCaster());
|
||||
//CHICAGO PILE
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPileLoader.class, new RenderPileLoader());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPileVent.class, new RenderPileVent());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPileControl.class, new RenderPileControl());
|
||||
//ZIRNOX
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReactorZirnox.class, new RenderZirnox());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityZirnoxDestroyed.class, new RenderZirnoxDestroyed());
|
||||
|
||||
@ -394,6 +394,11 @@ public class ResourceManager {
|
||||
public static final IModelCustom siege_ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/siege_ufo.obj"));
|
||||
public static final IModelCustom glyphid = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/glyphid.obj"));
|
||||
public static final IModelCustom drone = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mobs/quadcopter.obj"));
|
||||
|
||||
//PILE
|
||||
public static final IModelCustom pile_loader = new HFRWavefrontObject("models/pile/pile_loader.obj").asVBO();
|
||||
public static final IModelCustom pile_vent = new HFRWavefrontObject("models/pile/pile_vent.obj").asVBO();
|
||||
public static final IModelCustom pile_control = new HFRWavefrontObject("models/pile/pile_control.obj").asVBO();
|
||||
|
||||
//ZIRNOX
|
||||
public static final IModelCustom zirnox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/zirnox.obj")).asVBO();
|
||||
@ -841,6 +846,11 @@ public class ResourceManager {
|
||||
public static final ResourceLocation glyphid_scout_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_scout.png");
|
||||
public static final ResourceLocation glyphid_nuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_nuclear.png");
|
||||
public static final ResourceLocation glyphid_digger_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_digger.png");
|
||||
|
||||
//PILE
|
||||
public static final ResourceLocation pile_loader_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pile/pile_loader.png");
|
||||
public static final ResourceLocation pile_vent_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pile/pile_vent.png");
|
||||
public static final ResourceLocation pile_control_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pile/pile_control.png");
|
||||
|
||||
//ZIRNOX
|
||||
public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png");
|
||||
|
||||
@ -0,0 +1,34 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public class RenderPileControl extends TileEntitySpecialRenderer {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity te, 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.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
switch(te.getBlockMetadata() % 4) {
|
||||
case 0: GL11.glRotated(90, 0, 1, 0); break;
|
||||
case 1: GL11.glRotated(270, 0, 1, 0); break;
|
||||
case 2: GL11.glRotated(180, 0, 1, 0); break;
|
||||
case 3: GL11.glRotated(0, 0, 1, 0); break;
|
||||
}
|
||||
|
||||
bindTexture(ResourceManager.pile_control_tex);
|
||||
ResourceManager.pile_control.renderPart("Base");
|
||||
GL11.glTranslated(0, 0.5, 0);
|
||||
ResourceManager.pile_control.renderPart("Rod");
|
||||
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.machine.pile.BlockPileDevice;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.item.ItemRenderBase;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class RenderPileLoader extends TileEntitySpecialRenderer implements IItemRendererProvider {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity te, 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.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
switch(te.getBlockMetadata() % 4) {
|
||||
case 0: GL11.glRotated(90, 0, 1, 0); break;
|
||||
case 1: GL11.glRotated(270, 0, 1, 0); break;
|
||||
case 2: GL11.glRotated(180, 0, 1, 0); break;
|
||||
case 3: GL11.glRotated(0, 0, 1, 0); break;
|
||||
}
|
||||
|
||||
bindTexture(ResourceManager.pile_loader_tex);
|
||||
ResourceManager.pile_loader.renderPart("Loader");
|
||||
GL11.glPushMatrix(); {
|
||||
GL11.glTranslated(-0.1875, 0.5, 0);
|
||||
GL11.glRotated(90, 0, 0, 1);
|
||||
GL11.glTranslated(0.1875, -0.5, 0);
|
||||
ResourceManager.pile_loader.renderPart("Lever");
|
||||
} GL11.glPopMatrix();
|
||||
ResourceManager.pile_loader.renderPart("Slider");
|
||||
ResourceManager.pile_loader.renderPart("Rod");
|
||||
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemForRenderer() {
|
||||
return Item.getItemFromBlock(ModBlocks.pile_device);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemRenderer getRenderer() {
|
||||
return new ItemRenderBase() {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, -3.5, 0);
|
||||
double scale = 10;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
}
|
||||
public void renderCommonWithStack(ItemStack item) {
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
if(item.getItemDamage() == BlockPileDevice.ITEM_META_LOADER) {
|
||||
bindTexture(ResourceManager.pile_loader_tex);
|
||||
ResourceManager.pile_loader.renderAll();
|
||||
}
|
||||
if(item.getItemDamage() == BlockPileDevice.ITEM_META_VENT) {
|
||||
bindTexture(ResourceManager.pile_vent_tex);
|
||||
ResourceManager.pile_vent.renderAll();
|
||||
}
|
||||
if(item.getItemDamage() == BlockPileDevice.ITEM_META_CONTROL) {
|
||||
bindTexture(ResourceManager.pile_control_tex);
|
||||
ResourceManager.pile_control.renderAll();
|
||||
}
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}};
|
||||
}
|
||||
}
|
||||
34
src/main/java/com/hbm/render/tileentity/RenderPileVent.java
Normal file
@ -0,0 +1,34 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public class RenderPileVent extends TileEntitySpecialRenderer {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity te, 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.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
switch(te.getBlockMetadata() % 4) {
|
||||
case 0: GL11.glRotated(90, 0, 1, 0); break;
|
||||
case 1: GL11.glRotated(270, 0, 1, 0); break;
|
||||
case 2: GL11.glRotated(180, 0, 1, 0); break;
|
||||
case 3: GL11.glRotated(0, 0, 1, 0); break;
|
||||
}
|
||||
|
||||
bindTexture(ResourceManager.pile_vent_tex);
|
||||
ResourceManager.pile_vent.renderPart("Pipe");
|
||||
GL11.glRotated((te.getWorldObj().getTotalWorldTime() % 360 + interp) * 45, 0, -1, 0);
|
||||
ResourceManager.pile_vent.renderPart("Fan");
|
||||
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
@ -2,14 +2,18 @@ package com.hbm.tileentity.machine.pile;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.machine.MachinePWRController;
|
||||
import com.hbm.blocks.machine.pile.BlockPile;
|
||||
import com.hbm.interfaces.NotableComments;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||
import com.hbm.tileentity.TileEntityTickingBase;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
@ -111,27 +115,47 @@ public class TileEntityPileCore extends TileEntityTickingBase {
|
||||
}
|
||||
|
||||
public boolean drillChannel(int x, int y, int z, ForgeDirection dir, EntityPlayer player) {
|
||||
int startMeta = worldObj.getBlockMetadata(x, y, z);
|
||||
PileChannelType type = PileChannelType.getChannelType(dir, orientation);
|
||||
|
||||
int size =
|
||||
type == PileChannelType.CONTROL ? height :
|
||||
type == PileChannelType.FUEL ? depth : width;
|
||||
|
||||
List<PileChannel> list = getChannelList(type);
|
||||
|
||||
if(startMeta == BlockPile.META_FUEL_IN || startMeta == BlockPile.META_AIR_IN || startMeta == BlockPile.META_CONTROL) {
|
||||
for(int i = 0; i < list.size(); i++) {
|
||||
PileChannel chan = list.get(i);
|
||||
if(chan.entry.compare(x, y, z) && chan.entry.getDir() == dir) {
|
||||
list.remove(i);
|
||||
for(int j = 0; j < size; j++) {
|
||||
int iX = x + dir.offsetX * j;
|
||||
int iY = y + dir.offsetY * j;
|
||||
int iZ = z + dir.offsetZ * j;
|
||||
worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_DUMMY, 3);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean error = false;
|
||||
for(int i = 0; i <= size; i++) {
|
||||
for(int i = 0; i < size; i++) {
|
||||
int iX = x + dir.offsetX * i;
|
||||
int iY = y + dir.offsetY * i;
|
||||
int iZ = z + dir.offsetZ * i;
|
||||
if(worldObj.getBlock(iX, iY, iZ) != ModBlocks.pile_block) { MachinePWRController.sendError(worldObj, iX, iY, iZ, "Foreign block in reactor", player); error = true; }
|
||||
int meta = worldObj.getBlockMetadata(iX, iY, iZ);
|
||||
if(meta == BlockPile.META_EDGE) { MachinePWRController.sendError(worldObj, iX, iY, iZ, "Cannot drill along edge", player); error = true; }
|
||||
if(meta == BlockPile.META_CORE) { MachinePWRController.sendError(worldObj, iX, iY, iZ, "Cannot intersect core", player); error = true; }
|
||||
if(meta == BlockPile.META_CHANNEL) { MachinePWRController.sendError(worldObj, iX, iY, iZ, "Cannot intersect channel", player); error = true; }
|
||||
if(meta != BlockPile.META_DUMMY) { MachinePWRController.sendError(worldObj, iX, iY, iZ, "Cannot intersect channel IO", player); error = true; }
|
||||
else if(meta == BlockPile.META_CORE) { MachinePWRController.sendError(worldObj, iX, iY, iZ, "Cannot intersect core", player); error = true; }
|
||||
else if(meta == BlockPile.META_CHANNEL) { MachinePWRController.sendError(worldObj, iX, iY, iZ, "Cannot intersect channel", player); error = true; }
|
||||
else if(meta != BlockPile.META_DUMMY) { MachinePWRController.sendError(worldObj, iX, iY, iZ, "Cannot intersect channel IO", player); error = true; }
|
||||
}
|
||||
|
||||
if(error) return false;
|
||||
|
||||
for(int i = 0; i <= size; i++) {
|
||||
for(int i = 0; i < size; i++) {
|
||||
int iX = x + dir.offsetX * i;
|
||||
int iY = y + dir.offsetY * i;
|
||||
int iZ = z + dir.offsetZ * i;
|
||||
@ -139,16 +163,15 @@ public class TileEntityPileCore extends TileEntityTickingBase {
|
||||
if(type == PileChannelType.FUEL) worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_FUEL_IN, 3);
|
||||
if(type == PileChannelType.VENTILATION) worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_AIR_IN, 3);
|
||||
if(type == PileChannelType.CONTROL) worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_CONTROL, 3);
|
||||
} else if(i == size) {
|
||||
} else if(i == size - 1) {
|
||||
if(type == PileChannelType.FUEL) worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_FUEL_OUT, 3);
|
||||
if(type == PileChannelType.VENTILATION) worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_AIR_OUT, 3);
|
||||
if(type == PileChannelType.CONTROL) worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_CONTROL, 3);
|
||||
} else {
|
||||
worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_DUMMY, 3);
|
||||
worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_CHANNEL, 3);
|
||||
}
|
||||
}
|
||||
|
||||
List<PileChannel> list = getChannelList(type);
|
||||
list.add(new PileChannel(x, y, z, dir, size, type));
|
||||
|
||||
this.markChanged();
|
||||
@ -159,6 +182,27 @@ public class TileEntityPileCore extends TileEntityTickingBase {
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
if(worldObj.getTotalWorldTime() % 3 == 0) for(PileChannel chan : this.ventilationChannels) {
|
||||
|
||||
double x = chan.entry.getX() + 0.5 + chan.entry.getDir().offsetX * (this.width - 0.375);
|
||||
double y = chan.entry.getY() + 0.5;
|
||||
double z = chan.entry.getZ() + 0.5 + chan.entry.getDir().offsetZ * (this.width - 0.375);
|
||||
Random rand = worldObj.rand;
|
||||
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setString("type", "tower");
|
||||
data.setFloat("lift", 1F);
|
||||
data.setFloat("base", 0.125F + rand.nextFloat() * 0.125F);
|
||||
data.setFloat("max", 1F);
|
||||
data.setFloat("strafe", 0.0025F);
|
||||
data.setBoolean("noWind", true);
|
||||
data.setInteger("life", 20 + worldObj.rand.nextInt(30));
|
||||
data.setInteger("color", 0xa0a0a0);
|
||||
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void destroy() {
|
||||
|
||||
318
src/main/resources/assets/hbm/models/pile/pile_control.obj
Normal file
@ -0,0 +1,318 @@
|
||||
# Blender v2.79 (sub 0) OBJ File: 'pile_control.blend'
|
||||
# www.blender.org
|
||||
o Rod
|
||||
v 0.187500 0.750000 -0.250000
|
||||
v 0.250000 0.750000 -0.187500
|
||||
v -0.250000 0.750000 -0.187500
|
||||
v -0.187500 0.750000 -0.250000
|
||||
v -0.187500 0.750000 0.250000
|
||||
v -0.250000 0.750000 0.187500
|
||||
v 0.250000 0.750000 0.187500
|
||||
v 0.187500 0.750000 0.250000
|
||||
v 0.250000 1.000000 -0.187500
|
||||
v 0.187500 1.000000 -0.250000
|
||||
v -0.187500 1.000000 -0.250000
|
||||
v -0.250000 1.000000 -0.187500
|
||||
v -0.250000 1.000000 0.187500
|
||||
v -0.187500 1.000000 0.250000
|
||||
v 0.187500 1.000000 0.250000
|
||||
v 0.250000 1.000000 0.187500
|
||||
v 0.187500 0.750000 -0.125000
|
||||
v 0.125000 0.750000 -0.187500
|
||||
v -0.125000 0.750000 -0.187500
|
||||
v -0.187500 0.750000 -0.125000
|
||||
v -0.187500 0.750000 0.125000
|
||||
v -0.125000 0.750000 0.187500
|
||||
v 0.125000 0.750000 0.187500
|
||||
v 0.187500 0.750000 0.125000
|
||||
v 0.125000 0.000000 -0.187500
|
||||
v 0.187500 0.000000 -0.125000
|
||||
v -0.187500 0.000000 -0.125000
|
||||
v -0.125000 0.000000 -0.187500
|
||||
v -0.125000 0.000000 0.187500
|
||||
v -0.187500 0.000000 0.125000
|
||||
v 0.187500 0.000000 0.125000
|
||||
v 0.125000 0.000000 0.187500
|
||||
vt 0.618182 0.600000
|
||||
vt 0.509091 0.700000
|
||||
vt 0.509091 0.600000
|
||||
vt 0.872727 0.600000
|
||||
vt 0.763636 0.700000
|
||||
vt 0.763636 0.600000
|
||||
vt 0.490909 0.600000
|
||||
vt 0.381818 0.700000
|
||||
vt 0.381818 0.600000
|
||||
vt 0.618182 0.700000
|
||||
vt 0.636364 0.725000
|
||||
vt 0.490909 0.875000
|
||||
vt 0.490909 0.575000
|
||||
vt 0.509091 0.400000
|
||||
vt 0.745455 1.000000
|
||||
vt 0.818182 0.700000
|
||||
vt 0.818182 1.000000
|
||||
vt 0.927273 1.000000
|
||||
vt 1.000000 0.700000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.654545 1.000000
|
||||
vt 0.727273 0.700000
|
||||
vt 0.727273 1.000000
|
||||
vt 0.636364 0.700000
|
||||
vt 0.636364 0.600000
|
||||
vt 0.490909 0.700000
|
||||
vt 0.363636 0.600000
|
||||
vt 0.745455 0.600000
|
||||
vt 0.745455 0.700000
|
||||
vt 0.745455 0.700000
|
||||
vt 0.636364 0.700000
|
||||
vt 0.636364 1.000000
|
||||
vt 0.909091 0.700000
|
||||
vt 0.927273 0.700000
|
||||
vt 0.836364 1.000000
|
||||
vt 0.909091 1.000000
|
||||
vt 0.872727 0.700000
|
||||
vt 0.636364 0.875000
|
||||
vt 0.618182 0.900000
|
||||
vt 0.509091 0.900000
|
||||
vt 0.490909 0.725000
|
||||
vt 0.618182 0.400000
|
||||
vt 0.636364 0.425000
|
||||
vt 0.636364 0.575000
|
||||
vt 0.490909 0.425000
|
||||
vt 0.654545 0.700000
|
||||
vt 0.363636 0.700000
|
||||
vt 0.836364 0.700000
|
||||
vn 1.0000 0.0000 0.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
|
||||
vn 0.7071 0.0000 -0.7071
|
||||
vn 0.7071 0.0000 0.7071
|
||||
vn -0.7071 0.0000 0.7071
|
||||
vn -0.7071 0.0000 -0.7071
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
s off
|
||||
f 2/1/1 16/2/1 7/3/1
|
||||
f 6/4/2 12/5/2 3/6/2
|
||||
f 8/7/3 14/8/3 5/9/3
|
||||
f 9/10/4 10/11/4 14/12/4
|
||||
f 2/1/5 8/13/5 6/14/5
|
||||
f 24/15/1 26/16/1 17/17/1
|
||||
f 20/18/2 30/19/2 21/20/2
|
||||
f 22/21/3 32/22/3 23/23/3
|
||||
f 10/24/6 2/1/6 1/25/6
|
||||
f 8/7/7 16/2/7 15/26/7
|
||||
f 14/8/8 6/27/8 5/9/8
|
||||
f 4/28/9 12/5/9 11/29/9
|
||||
f 4/28/10 10/24/10 1/25/10
|
||||
f 24/15/7 32/22/7 31/30/7
|
||||
f 30/31/8 22/21/8 21/32/8
|
||||
f 20/18/9 28/33/9 27/34/9
|
||||
f 26/16/6 18/35/6 17/17/6
|
||||
f 18/35/10 28/33/10 19/36/10
|
||||
f 2/1/1 9/10/1 16/2/1
|
||||
f 6/4/2 13/37/2 12/5/2
|
||||
f 8/7/3 15/26/3 14/8/3
|
||||
f 10/11/4 11/38/4 12/39/4
|
||||
f 12/39/4 13/40/4 10/11/4
|
||||
f 13/40/4 14/12/4 10/11/4
|
||||
f 14/12/4 15/41/4 16/2/4
|
||||
f 16/2/4 9/10/4 14/12/4
|
||||
f 6/14/5 3/42/5 4/43/5
|
||||
f 4/43/5 1/44/5 2/1/5
|
||||
f 2/1/5 7/3/5 8/13/5
|
||||
f 8/13/5 5/45/5 6/14/5
|
||||
f 6/14/5 4/43/5 2/1/5
|
||||
f 24/15/1 31/30/1 26/16/1
|
||||
f 20/18/2 27/34/2 30/19/2
|
||||
f 22/21/3 29/46/3 32/22/3
|
||||
f 10/24/6 9/10/6 2/1/6
|
||||
f 8/7/7 7/3/7 16/2/7
|
||||
f 14/8/8 13/47/8 6/27/8
|
||||
f 4/28/9 3/6/9 12/5/9
|
||||
f 4/28/10 11/29/10 10/24/10
|
||||
f 24/15/7 23/23/7 32/22/7
|
||||
f 30/31/8 29/46/8 22/21/8
|
||||
f 20/18/9 19/36/9 28/33/9
|
||||
f 26/16/6 25/48/6 18/35/6
|
||||
f 18/35/10 25/48/10 28/33/10
|
||||
o Base
|
||||
v -0.375000 0.000000 -0.375000
|
||||
v -0.375000 0.000000 0.375000
|
||||
v 0.375000 0.000000 -0.375000
|
||||
v 0.375000 0.000000 0.375000
|
||||
v -0.375000 0.250000 -0.375000
|
||||
v -0.375000 0.250000 0.375000
|
||||
v 0.375000 0.250000 -0.375000
|
||||
v 0.375000 0.250000 0.375000
|
||||
v 0.500000 0.375000 0.125000
|
||||
v 0.500000 0.375000 -0.125000
|
||||
v 0.500000 0.625000 -0.125000
|
||||
v 0.500000 0.625000 0.125000
|
||||
v 0.375000 0.625000 0.125000
|
||||
v 0.375000 0.625000 -0.125000
|
||||
v 0.375000 0.375000 0.125000
|
||||
v 0.375000 0.375000 -0.125000
|
||||
v -0.250000 0.250000 -0.187500
|
||||
v -0.187500 0.250000 -0.250000
|
||||
v -0.187500 0.250000 0.250000
|
||||
v -0.250000 0.250000 0.187500
|
||||
v 0.187500 0.250000 -0.250000
|
||||
v 0.250000 0.250000 -0.187500
|
||||
v 0.250000 0.250000 0.187500
|
||||
v 0.187500 0.250000 0.250000
|
||||
v 0.250000 0.750000 -0.187500
|
||||
v 0.187500 0.750000 -0.250000
|
||||
v -0.187500 0.750000 -0.250000
|
||||
v -0.250000 0.750000 -0.187500
|
||||
v -0.250000 0.750000 0.187500
|
||||
v -0.187500 0.750000 0.250000
|
||||
v 0.187500 0.750000 0.250000
|
||||
v 0.250000 0.750000 0.187500
|
||||
v 0.312500 0.687500 0.187500
|
||||
v 0.312500 0.687500 -0.187500
|
||||
v 0.312500 0.312500 0.187500
|
||||
v 0.312500 0.312500 -0.187500
|
||||
v 0.250000 0.687500 0.187500
|
||||
v 0.250000 0.687500 -0.187500
|
||||
v 0.250000 0.312500 0.187500
|
||||
v 0.250000 0.312500 -0.187500
|
||||
vt 0.290909 0.800000
|
||||
vt 0.072727 0.500000
|
||||
vt 0.290909 0.500000
|
||||
vt 0.072727 0.400000
|
||||
vt 0.290909 0.100000
|
||||
vt 0.290909 0.400000
|
||||
vt 0.290909 -0.000000
|
||||
vt 0.072727 0.100000
|
||||
vt 0.072727 -0.000000
|
||||
vt 0.000000 0.100000
|
||||
vt 0.000000 0.400000
|
||||
vt 0.363636 0.400000
|
||||
vt 0.363636 0.100000
|
||||
vt 0.618182 0.000000
|
||||
vt 0.509091 0.200000
|
||||
vt 0.509091 -0.000000
|
||||
vt 0.872727 0.000000
|
||||
vt 0.763636 0.200000
|
||||
vt 0.763636 0.000000
|
||||
vt 0.618182 0.200000
|
||||
vt 0.636364 0.225000
|
||||
vt 0.490909 0.375000
|
||||
vt 0.490909 -0.000000
|
||||
vt 0.381818 0.200000
|
||||
vt 0.381818 0.000000
|
||||
vt 0.909091 0.325000
|
||||
vt 0.927273 0.450000
|
||||
vt 0.909091 0.425000
|
||||
vt 0.363636 0.000000
|
||||
vt 0.363636 0.200000
|
||||
vt 0.745455 0.000000
|
||||
vt 0.636364 0.200000
|
||||
vt 0.636364 0.000000
|
||||
vt 0.872727 0.325000
|
||||
vt 0.800000 0.425000
|
||||
vt 0.800000 0.325000
|
||||
vt 0.909091 0.575000
|
||||
vt 0.872727 0.475000
|
||||
vt 0.909091 0.475000
|
||||
vt 0.909091 0.125000
|
||||
vt 0.872727 0.025000
|
||||
vt 0.909091 0.025000
|
||||
vt 0.909091 0.275000
|
||||
vt 0.872727 0.175000
|
||||
vt 0.909091 0.175000
|
||||
vt 0.927273 0.600000
|
||||
vt 0.927273 0.150000
|
||||
vt 0.927273 0.300000
|
||||
vt 0.945455 0.300000
|
||||
vt 0.945455 0.450000
|
||||
vt 0.945455 0.600000
|
||||
vt 0.927273 -0.000000
|
||||
vt 0.945455 0.150000
|
||||
vt 0.072727 0.800000
|
||||
vt 0.872727 0.200000
|
||||
vt 0.636364 0.375000
|
||||
vt 0.618182 0.400000
|
||||
vt 0.509091 0.400000
|
||||
vt 0.490909 0.225000
|
||||
vt 0.490909 0.200000
|
||||
vt 0.745455 0.200000
|
||||
vt 0.872727 0.425000
|
||||
vt 0.872727 0.575000
|
||||
vt 0.872727 0.125000
|
||||
vt 0.872727 0.275000
|
||||
vt 0.945455 -0.000000
|
||||
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
|
||||
vn 0.7071 0.7071 0.0000
|
||||
vn 0.7071 0.0000 0.7071
|
||||
vn -0.7071 0.0000 0.7071
|
||||
vn -0.7071 0.0000 -0.7071
|
||||
vn 0.7071 0.0000 -0.7071
|
||||
vn 0.7071 -0.7071 0.0000
|
||||
s off
|
||||
f 35/49/11 34/50/11 33/51/11
|
||||
f 38/52/12 39/53/12 37/54/12
|
||||
f 35/55/13 40/56/13 36/57/13
|
||||
f 34/50/14 37/54/14 33/51/14
|
||||
f 36/58/15 38/52/15 34/59/15
|
||||
f 33/60/16 39/53/16 35/61/16
|
||||
f 54/62/13 64/63/13 55/64/13
|
||||
f 52/65/14 60/66/14 49/67/14
|
||||
f 57/68/12 58/69/12 62/70/12
|
||||
f 56/71/15 62/72/15 51/73/15
|
||||
f 46/74/17 65/75/17 45/76/17
|
||||
f 64/63/18 56/71/18 55/64/18
|
||||
f 52/77/19 62/72/19 61/78/19
|
||||
f 60/66/20 50/79/20 49/67/20
|
||||
f 54/62/21 58/80/21 57/68/21
|
||||
f 50/79/16 58/80/16 53/81/16
|
||||
f 43/82/13 41/83/13 42/84/13
|
||||
f 45/76/12 43/82/12 46/74/12
|
||||
f 47/85/15 44/86/15 45/87/15
|
||||
f 48/88/11 41/89/11 47/90/11
|
||||
f 46/91/16 42/92/16 48/93/16
|
||||
f 45/87/18 67/94/18 47/85/18
|
||||
f 47/90/22 68/95/22 48/88/22
|
||||
f 46/91/21 68/95/21 66/96/21
|
||||
f 68/95/16 70/97/16 66/96/16
|
||||
f 66/96/12 69/98/12 65/75/12
|
||||
f 65/75/15 71/99/15 67/94/15
|
||||
f 67/100/11 72/101/11 68/95/11
|
||||
f 35/49/11 36/102/11 34/50/11
|
||||
f 38/52/12 40/56/12 39/53/12
|
||||
f 35/55/13 39/53/13 40/56/13
|
||||
f 34/50/14 38/52/14 37/54/14
|
||||
f 36/58/15 40/56/15 38/52/15
|
||||
f 33/60/16 37/54/16 39/53/16
|
||||
f 54/62/13 57/68/13 64/63/13
|
||||
f 52/65/14 61/103/14 60/66/14
|
||||
f 58/69/12 59/104/12 60/105/12
|
||||
f 60/105/12 61/106/12 58/69/12
|
||||
f 61/106/12 62/70/12 58/69/12
|
||||
f 62/70/12 63/107/12 64/63/12
|
||||
f 64/63/12 57/68/12 62/70/12
|
||||
f 56/71/15 63/108/15 62/72/15
|
||||
f 46/74/17 66/96/17 65/75/17
|
||||
f 64/63/18 63/108/18 56/71/18
|
||||
f 52/77/19 51/73/19 62/72/19
|
||||
f 60/66/20 59/109/20 50/79/20
|
||||
f 54/62/21 53/81/21 58/80/21
|
||||
f 50/79/16 59/109/16 58/80/16
|
||||
f 43/82/13 44/110/13 41/83/13
|
||||
f 45/76/12 44/110/12 43/82/12
|
||||
f 47/85/15 41/111/15 44/86/15
|
||||
f 48/88/11 42/112/11 41/89/11
|
||||
f 46/91/16 43/113/16 42/92/16
|
||||
f 45/87/18 65/75/18 67/94/18
|
||||
f 47/90/22 67/100/22 68/95/22
|
||||
f 46/91/21 48/93/21 68/95/21
|
||||
f 68/95/16 72/101/16 70/97/16
|
||||
f 66/96/12 70/97/12 69/98/12
|
||||
f 65/75/15 69/98/15 71/99/15
|
||||
f 67/100/11 71/114/11 72/101/11
|
||||
325
src/main/resources/assets/hbm/models/pile/pile_loader.obj
Normal file
@ -0,0 +1,325 @@
|
||||
# Blender v2.79 (sub 0) OBJ File: 'pile_loader.blend'
|
||||
# www.blender.org
|
||||
o Rod
|
||||
v 0.312500 0.500000 0.125000
|
||||
v 0.312500 0.437500 0.062500
|
||||
v 0.312500 0.437500 -0.062500
|
||||
v 0.312500 0.500000 -0.125000
|
||||
v 0.312500 0.687500 0.062500
|
||||
v 0.312500 0.625000 0.125000
|
||||
v 0.312500 0.625000 -0.125000
|
||||
v 0.312500 0.687500 -0.062500
|
||||
v -0.187500 0.625000 0.125000
|
||||
v -0.187500 0.687500 0.062500
|
||||
v -0.187500 0.687500 -0.062500
|
||||
v -0.187500 0.625000 -0.125000
|
||||
v -0.187500 0.437500 0.062500
|
||||
v -0.187500 0.500000 0.125000
|
||||
v -0.187500 0.500000 -0.125000
|
||||
v -0.187500 0.437500 -0.062500
|
||||
vt 0.833333 0.071429
|
||||
vt 1.000000 0.119048
|
||||
vt 0.833333 0.119048
|
||||
vt 0.833333 0.214286
|
||||
vt 1.000000 0.261905
|
||||
vt 0.833333 0.261905
|
||||
vt 0.833333 0.142857
|
||||
vt 1.000000 0.190476
|
||||
vt 0.833333 0.190476
|
||||
vt 0.833333 -0.000000
|
||||
vt 1.000000 0.047619
|
||||
vt 0.833333 0.047619
|
||||
vt 0.833333 0.285714
|
||||
vt 1.000000 0.071429
|
||||
vt 1.000000 0.142857
|
||||
vt 1.000000 0.214286
|
||||
vt 1.000000 -0.000000
|
||||
vt 1.000000 0.285714
|
||||
vn 0.0000 -0.3827 -0.9239
|
||||
vn 0.0000 0.3827 -0.9239
|
||||
vn 0.0000 0.3827 0.9239
|
||||
vn 0.0000 -0.3827 0.9239
|
||||
vn 0.0000 0.9239 -0.3827
|
||||
vn 0.0000 0.9239 0.3827
|
||||
vn 0.0000 -0.9239 0.3827
|
||||
vn 0.0000 -0.9239 -0.3827
|
||||
s 1
|
||||
f 4/1/1 12/2/2 7/3/2
|
||||
f 6/4/3 14/5/4 1/6/4
|
||||
f 8/7/5 10/8/6 5/9/6
|
||||
f 2/10/7 16/11/8 3/12/8
|
||||
f 14/5/4 2/13/7 1/6/4
|
||||
f 4/1/1 16/11/8 15/14/1
|
||||
f 8/7/5 12/2/2 11/15/5
|
||||
f 6/4/3 10/8/6 9/16/3
|
||||
f 4/1/1 15/14/1 12/2/2
|
||||
f 6/4/3 9/16/3 14/5/4
|
||||
f 8/7/5 11/15/5 10/8/6
|
||||
f 2/10/7 13/17/7 16/11/8
|
||||
f 14/5/4 13/18/7 2/13/7
|
||||
f 4/1/1 3/12/8 16/11/8
|
||||
f 8/7/5 7/3/2 12/2/2
|
||||
f 6/4/3 5/9/6 10/8/6
|
||||
o Lever
|
||||
v -0.093750 0.468750 -0.312500
|
||||
v -0.093750 0.468750 -0.375000
|
||||
v -0.093750 0.531250 -0.375000
|
||||
v -0.093750 0.531250 -0.312500
|
||||
v -0.218750 0.531250 -0.375000
|
||||
v -0.218750 0.468750 -0.375000
|
||||
v -0.156250 0.531250 -0.312500
|
||||
v -0.156250 0.468750 -0.312500
|
||||
v -0.156250 0.468750 -0.250000
|
||||
v -0.156250 0.531250 -0.250000
|
||||
v -0.218750 0.468750 -0.250000
|
||||
v -0.218750 0.531250 -0.250000
|
||||
v -0.093750 0.562500 -0.406250
|
||||
v -0.093750 0.437500 -0.406250
|
||||
v -0.093750 0.562500 -0.281250
|
||||
v -0.093750 0.437500 -0.281250
|
||||
v 0.531250 0.562500 -0.281250
|
||||
v 0.531250 0.562500 -0.406250
|
||||
v 0.531250 0.437500 -0.406250
|
||||
v 0.531250 0.437500 -0.281250
|
||||
vt 0.979167 0.642857
|
||||
vt 0.958333 0.666667
|
||||
vt 0.958333 0.619048
|
||||
vt 0.937500 0.666667
|
||||
vt 0.937500 0.619048
|
||||
vt 0.937500 0.571429
|
||||
vt 0.916667 0.595238
|
||||
vt 0.916667 0.571429
|
||||
vt 0.958333 0.571429
|
||||
vt 0.979167 0.595238
|
||||
vt 1.000000 0.571429
|
||||
vt 0.979167 0.571429
|
||||
vt 0.916667 0.642857
|
||||
vt 0.916667 0.666667
|
||||
vt 1.000000 0.642857
|
||||
vt 0.979167 0.666667
|
||||
vt 0.958333 0.571429
|
||||
vt 0.916667 0.333333
|
||||
vt 0.958333 0.333333
|
||||
vt 0.833333 0.333333
|
||||
vt 0.875000 0.285714
|
||||
vt 0.875000 0.333333
|
||||
vt 0.875000 0.619048
|
||||
vt 0.833333 0.571429
|
||||
vt 0.875000 0.571429
|
||||
vt 1.000000 0.571429
|
||||
vt 1.000000 0.333333
|
||||
vt 0.916667 0.571429
|
||||
vt 1.000000 0.595238
|
||||
vt 1.000000 0.666667
|
||||
vt 0.833333 0.285714
|
||||
vt 0.833333 0.619048
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.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
|
||||
s off
|
||||
f 23/19/9 19/20/9 21/21/9
|
||||
f 21/21/10 18/22/10 22/23/10
|
||||
f 27/24/11 24/25/11 25/26/11
|
||||
f 28/27/9 23/28/9 21/21/9
|
||||
f 25/29/12 23/28/12 26/30/12
|
||||
f 28/27/13 22/23/13 27/24/13
|
||||
f 24/31/11 18/22/11 17/32/11
|
||||
f 24/33/14 20/34/14 23/19/14
|
||||
f 32/35/11 35/36/11 36/37/11
|
||||
f 33/38/12 35/39/12 34/40/12
|
||||
f 30/41/13 31/42/13 29/43/13
|
||||
f 31/44/14 36/37/14 33/45/14
|
||||
f 29/43/9 33/38/9 34/40/9
|
||||
f 29/43/10 35/36/10 30/46/10
|
||||
f 23/19/9 20/34/9 19/20/9
|
||||
f 21/21/10 19/20/10 18/22/10
|
||||
f 27/24/11 22/23/11 24/25/11
|
||||
f 28/27/9 26/30/9 23/28/9
|
||||
f 25/29/12 24/47/12 23/28/12
|
||||
f 28/27/13 21/21/13 22/23/13
|
||||
f 24/31/11 22/23/11 18/22/11
|
||||
f 24/33/14 17/48/14 20/34/14
|
||||
f 32/35/11 30/46/11 35/36/11
|
||||
f 33/38/12 36/49/12 35/39/12
|
||||
f 30/41/13 32/50/13 31/42/13
|
||||
f 31/44/14 32/35/14 36/37/14
|
||||
f 29/43/9 31/42/9 33/38/9
|
||||
f 29/43/10 34/40/10 35/36/10
|
||||
o Slider
|
||||
v 0.437500 0.437500 0.125000
|
||||
v 0.437500 0.437500 -0.125000
|
||||
v 0.312500 0.437500 0.125000
|
||||
v 0.312500 0.437500 -0.125000
|
||||
v 0.437500 0.687500 0.125000
|
||||
v 0.437500 0.687500 -0.125000
|
||||
v 0.312500 0.687500 0.125000
|
||||
v 0.312500 0.687500 -0.125000
|
||||
vt 0.625000 0.761905
|
||||
vt 0.583333 0.857143
|
||||
vt 0.583333 0.761905
|
||||
vt 0.500000 0.761905
|
||||
vt 0.500000 0.857143
|
||||
vt 0.708333 0.857143
|
||||
vt 0.708333 0.761905
|
||||
vt 0.625000 0.857143
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
s off
|
||||
f 44/51/15 41/52/15 42/53/15
|
||||
f 38/54/16 41/52/16 37/55/16
|
||||
f 39/56/17 44/51/17 40/57/17
|
||||
f 44/51/15 43/58/15 41/52/15
|
||||
f 38/54/16 42/53/16 41/52/16
|
||||
f 39/56/17 43/58/17 44/51/17
|
||||
o Loader
|
||||
v -0.500000 0.875000 0.375000
|
||||
v -0.500000 0.125000 0.375000
|
||||
v -0.500000 0.875000 -0.375000
|
||||
v -0.500000 0.125000 -0.375000
|
||||
v -0.250000 0.875000 -0.375000
|
||||
v -0.250000 0.875000 0.375000
|
||||
v -0.250000 0.125000 0.375000
|
||||
v -0.250000 0.125000 -0.375000
|
||||
v -0.250000 0.687500 0.250000
|
||||
v -0.250000 0.750000 0.187500
|
||||
v -0.250000 0.250000 0.187500
|
||||
v -0.250000 0.312500 0.250000
|
||||
v -0.250000 0.750000 -0.187500
|
||||
v -0.250000 0.687500 -0.250000
|
||||
v -0.250000 0.312500 -0.250000
|
||||
v -0.250000 0.250000 -0.187500
|
||||
v 0.500000 0.687500 -0.250000
|
||||
v 0.437500 0.750000 -0.125000
|
||||
v 0.437500 0.750000 0.125000
|
||||
v 0.500000 0.687500 0.250000
|
||||
v 0.500000 0.312500 0.250000
|
||||
v 0.500000 0.250000 0.187500
|
||||
v 0.500000 0.250000 -0.187500
|
||||
v 0.500000 0.312500 -0.250000
|
||||
v 0.500000 0.750000 0.187500
|
||||
v 0.500000 0.750000 -0.187500
|
||||
v -0.187500 0.750000 0.125000
|
||||
v -0.187500 0.750000 -0.125000
|
||||
v -0.187500 0.437500 -0.125000
|
||||
v -0.187500 0.437500 0.125000
|
||||
v 0.437500 0.437500 0.125000
|
||||
v 0.437500 0.437500 -0.125000
|
||||
vt 0.750000 0.476190
|
||||
vt 0.500000 0.761905
|
||||
vt 0.500000 0.476190
|
||||
vt 0.500000 0.095238
|
||||
vt 0.750000 0.380952
|
||||
vt 0.500000 0.380952
|
||||
vt 0.750000 -0.000000
|
||||
vt 0.500000 -0.000000
|
||||
vt 0.833333 0.380952
|
||||
vt 0.750000 0.095238
|
||||
vt 0.833333 0.095238
|
||||
vt 0.416667 0.095238
|
||||
vt 0.416667 0.380952
|
||||
vt 0.416667 0.642857
|
||||
vt 0.166667 0.500000
|
||||
vt 0.416667 0.500000
|
||||
vt 0.416667 0.142857
|
||||
vt 0.166667 0.000000
|
||||
vt 0.416667 0.000000
|
||||
vt 0.416667 0.309524
|
||||
vt 0.166667 0.166667
|
||||
vt 0.416667 0.166667
|
||||
vt -0.000000 0.476190
|
||||
vt 0.020833 0.309524
|
||||
vt 0.166667 0.333333
|
||||
vt 0.166667 0.666667
|
||||
vt 0.416667 0.666667
|
||||
vt 0.416667 0.476190
|
||||
vt 0.166667 0.476190
|
||||
vt 0.166667 0.309524
|
||||
vt 0.187500 1.000000
|
||||
vt 0.395833 0.880952
|
||||
vt 0.395833 1.000000
|
||||
vt 0.395833 0.452381
|
||||
vt 0.187500 0.452381
|
||||
vt 0.187500 0.357143
|
||||
vt 0.416667 0.333333
|
||||
vt 0.395833 0.357143
|
||||
vt 0.187500 0.785714
|
||||
vt 0.395833 0.785714
|
||||
vt 0.500000 0.880952
|
||||
vt 0.500000 0.785714
|
||||
vt 0.083333 0.785714
|
||||
vt 0.187500 0.880952
|
||||
vt 0.083333 0.880952
|
||||
vt 0.395833 0.666667
|
||||
vt 0.187500 0.666667
|
||||
vt 0.750000 0.761905
|
||||
vt 0.166667 0.642857
|
||||
vt 0.166667 0.142857
|
||||
vt 0.145833 0.500000
|
||||
vt 0.020833 0.500000
|
||||
vt -0.000000 0.333333
|
||||
vt 0.145833 0.309524
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
vn 0.0000 -0.7071 0.7071
|
||||
vn 0.0000 0.7071 0.7071
|
||||
vn 0.0000 -0.7071 -0.7071
|
||||
vn 0.0000 0.7071 -0.7071
|
||||
s off
|
||||
f 47/59/18 46/60/18 45/61/18
|
||||
f 51/62/19 49/63/19 50/64/19
|
||||
f 48/65/20 51/62/20 46/66/20
|
||||
f 45/61/21 49/63/21 47/59/21
|
||||
f 47/67/22 52/68/22 48/69/22
|
||||
f 46/70/23 50/64/23 45/71/23
|
||||
f 56/72/23 64/73/23 53/74/23
|
||||
f 60/75/20 66/76/20 55/77/20
|
||||
f 58/78/22 68/79/22 59/80/22
|
||||
f 66/81/19 68/82/19 70/83/19
|
||||
f 66/84/24 56/72/24 55/85/24
|
||||
f 54/86/25 64/73/25 69/87/25
|
||||
f 68/79/26 60/75/26 59/80/26
|
||||
f 58/78/27 70/83/27 61/88/27
|
||||
f 63/89/22 74/90/22 71/91/22
|
||||
f 71/92/21 69/87/21 63/93/21
|
||||
f 62/94/21 57/95/21 72/96/21
|
||||
f 72/96/21 54/86/21 71/92/21
|
||||
f 63/93/21 70/83/21 62/94/21
|
||||
f 74/90/21 76/97/21 73/98/21
|
||||
f 71/99/19 73/98/19 72/100/19
|
||||
f 62/101/18 75/102/18 63/103/18
|
||||
f 72/104/23 76/97/23 62/105/23
|
||||
f 47/59/18 48/106/18 46/60/18
|
||||
f 51/62/19 52/68/19 49/63/19
|
||||
f 48/65/20 52/68/20 51/62/20
|
||||
f 45/61/21 50/64/21 49/63/21
|
||||
f 47/67/22 49/63/22 52/68/22
|
||||
f 46/70/23 51/62/23 50/64/23
|
||||
f 56/72/23 65/107/23 64/73/23
|
||||
f 60/75/20 67/108/20 66/76/20
|
||||
f 58/78/22 61/88/22 68/79/22
|
||||
f 70/83/19 69/87/19 64/109/19
|
||||
f 64/109/19 65/110/19 66/81/19
|
||||
f 66/81/19 67/111/19 68/82/19
|
||||
f 68/82/19 61/112/19 70/83/19
|
||||
f 70/83/19 64/109/19 66/81/19
|
||||
f 66/84/24 65/107/24 56/72/24
|
||||
f 54/86/25 53/74/25 64/73/25
|
||||
f 68/79/26 67/108/26 60/75/26
|
||||
f 58/78/27 57/95/27 70/83/27
|
||||
f 63/89/22 75/102/22 74/90/22
|
||||
f 71/92/21 54/86/21 69/87/21
|
||||
f 62/94/21 70/83/21 57/95/21
|
||||
f 72/96/21 57/95/21 54/86/21
|
||||
f 63/93/21 69/87/21 70/83/21
|
||||
f 74/90/21 75/102/21 76/97/21
|
||||
f 71/99/19 74/90/19 73/98/19
|
||||
f 62/101/18 76/97/18 75/102/18
|
||||
f 72/104/23 73/98/23 76/97/23
|
||||
378
src/main/resources/assets/hbm/models/pile/pile_vent.obj
Normal file
@ -0,0 +1,378 @@
|
||||
# Blender v2.79 (sub 0) OBJ File: 'pile_vent.blend'
|
||||
# www.blender.org
|
||||
o Fan
|
||||
v 0.000000 0.812500 -0.031250
|
||||
v -0.022097 0.812500 -0.022097
|
||||
v -0.031250 0.812500 0.000000
|
||||
v -0.022097 0.812500 0.022097
|
||||
v 0.000000 0.812500 0.031250
|
||||
v 0.022097 0.812500 0.022097
|
||||
v 0.031250 0.812500 -0.000000
|
||||
v 0.022097 0.812500 -0.022097
|
||||
v -0.022097 0.875000 -0.022097
|
||||
v -0.000000 0.875000 -0.031250
|
||||
v -0.031250 0.875000 0.000000
|
||||
v -0.022097 0.875000 0.022097
|
||||
v -0.000000 0.875000 0.031250
|
||||
v 0.022097 0.875000 0.022097
|
||||
v 0.031250 0.875000 -0.000000
|
||||
v 0.022097 0.875000 -0.022097
|
||||
v -0.027063 0.859375 0.109375
|
||||
v 0.027063 0.828125 0.109375
|
||||
v -0.027063 0.859375 0.000000
|
||||
v 0.027063 0.828125 0.000000
|
||||
v -0.027063 0.828125 0.000000
|
||||
v 0.027063 0.859375 0.000000
|
||||
v -0.027063 0.828125 -0.109375
|
||||
v 0.027063 0.859375 -0.109375
|
||||
v 0.109375 0.859375 0.027063
|
||||
v 0.109375 0.828125 -0.027063
|
||||
v -0.000000 0.859375 0.027063
|
||||
v -0.000000 0.828125 -0.027063
|
||||
v -0.000000 0.828125 0.027063
|
||||
v -0.000000 0.859375 -0.027063
|
||||
v -0.109375 0.828125 0.027063
|
||||
v -0.109375 0.859375 -0.027063
|
||||
vt 0.048780 0.775000
|
||||
vt 0.146341 0.825000
|
||||
vt 0.048780 0.825000
|
||||
vt 0.012195 0.775314
|
||||
vt 0.020602 0.778883
|
||||
vt 0.024084 0.787500
|
||||
vt 0.146341 0.825000
|
||||
vt 0.048780 0.775000
|
||||
vt 0.146341 0.775000
|
||||
vt 0.048780 0.775000
|
||||
vt 0.146341 0.825000
|
||||
vt 0.048780 0.825000
|
||||
vt 0.146341 0.825000
|
||||
vt 0.048780 0.775000
|
||||
vt 0.146341 0.775000
|
||||
vt 0.146341 0.775000
|
||||
vt 0.020602 0.796117
|
||||
vt 0.012195 0.799686
|
||||
vt 0.003788 0.796117
|
||||
vt 0.000306 0.787500
|
||||
vt 0.003788 0.778883
|
||||
vt 0.048780 0.825000
|
||||
vt 0.146341 0.775000
|
||||
vt 0.048780 0.825000
|
||||
vt 0.146341 0.750000
|
||||
vt 0.121951 0.775000
|
||||
vt 0.121951 0.750000
|
||||
vt 0.073171 0.750000
|
||||
vt 0.097561 0.775000
|
||||
vt 0.073171 0.775000
|
||||
vt 0.024390 0.750000
|
||||
vt 0.048780 0.775000
|
||||
vt 0.024390 0.775000
|
||||
vt 0.195122 0.750000
|
||||
vt 0.170732 0.775000
|
||||
vt 0.170732 0.750000
|
||||
vt 0.097561 0.750000
|
||||
vt 0.048780 0.750000
|
||||
vt 0.000000 0.750000
|
||||
vt 0.000000 0.775000
|
||||
vt 0.146341 0.775000
|
||||
vt 0.195122 0.775000
|
||||
vn 0.5000 0.8660 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn -0.5000 0.8660 0.0000
|
||||
vn -0.0000 0.8660 -0.5000
|
||||
vn 0.0000 0.8660 0.5000
|
||||
vn 0.0000 -0.0000 -1.0000
|
||||
vn 0.7071 0.0000 -0.7071
|
||||
vn 0.7071 0.0000 0.7071
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn -0.7071 -0.0000 0.7071
|
||||
vn -0.0000 0.0000 1.0000
|
||||
vn -1.0000 -0.0000 0.0000
|
||||
vn -0.7071 -0.0000 -0.7071
|
||||
s off
|
||||
f 18/1/1 19/2/1 17/3/1
|
||||
f 15/4/2 16/5/2 10/6/2
|
||||
f 22/7/3 23/8/3 21/9/3
|
||||
f 26/10/4 27/11/4 25/12/4
|
||||
f 30/13/5 31/14/5 29/15/5
|
||||
f 18/1/1 20/16/1 19/2/1
|
||||
f 10/6/2 9/17/2 11/18/2
|
||||
f 11/18/2 12/19/2 10/6/2
|
||||
f 12/19/2 13/20/2 10/6/2
|
||||
f 13/20/2 14/21/2 10/6/2
|
||||
f 14/21/2 15/4/2 10/6/2
|
||||
f 22/7/3 24/22/3 23/8/3
|
||||
f 26/10/4 28/23/4 27/11/4
|
||||
f 30/13/5 32/24/5 31/14/5
|
||||
s 1
|
||||
f 1/25/6 16/26/7 8/27/7
|
||||
f 6/28/8 15/29/9 14/30/8
|
||||
f 4/31/10 13/32/11 12/33/10
|
||||
f 3/34/12 9/35/13 2/36/13
|
||||
f 8/27/7 15/29/9 7/37/9
|
||||
f 5/38/11 14/30/8 13/32/11
|
||||
f 3/39/12 12/33/10 11/40/12
|
||||
f 2/36/13 10/41/6 1/25/6
|
||||
f 1/25/6 10/41/6 16/26/7
|
||||
f 6/28/8 7/37/9 15/29/9
|
||||
f 4/31/10 5/38/11 13/32/11
|
||||
f 3/34/12 11/42/12 9/35/13
|
||||
f 8/27/7 16/26/7 15/29/9
|
||||
f 5/38/11 6/28/8 14/30/8
|
||||
f 3/39/12 4/31/10 12/33/10
|
||||
f 2/36/13 9/35/13 10/41/6
|
||||
o Pipe
|
||||
v -0.500000 0.875000 0.375000
|
||||
v -0.500000 0.125000 0.375000
|
||||
v -0.500000 0.875000 -0.375000
|
||||
v -0.500000 0.125000 -0.375000
|
||||
v -0.375000 0.875000 -0.375000
|
||||
v -0.375000 0.875000 0.375000
|
||||
v -0.375000 0.125000 0.375000
|
||||
v -0.375000 0.125000 -0.375000
|
||||
v 0.500000 0.750000 0.250000
|
||||
v 0.500000 0.250000 0.250000
|
||||
v 0.500000 0.750000 -0.250000
|
||||
v 0.500000 0.250000 -0.250000
|
||||
v 0.375000 0.750000 -0.250000
|
||||
v 0.375000 0.750000 0.250000
|
||||
v 0.375000 0.250000 0.250000
|
||||
v 0.375000 0.250000 -0.250000
|
||||
v 0.375000 0.687500 0.187500
|
||||
v 0.375000 0.312500 0.187500
|
||||
v 0.375000 0.687500 -0.187500
|
||||
v 0.375000 0.312500 -0.187500
|
||||
v 0.125000 0.687500 -0.187500
|
||||
v 0.125000 0.687500 0.187500
|
||||
v 0.125000 0.312500 0.187500
|
||||
v 0.125000 0.312500 -0.187500
|
||||
v 0.125000 0.750000 0.250000
|
||||
v 0.125000 0.250000 0.250000
|
||||
v 0.125000 0.750000 -0.250000
|
||||
v 0.125000 0.250000 -0.250000
|
||||
v -0.125000 0.750000 -0.250000
|
||||
v -0.125000 0.750000 0.250000
|
||||
v -0.125000 0.250000 0.250000
|
||||
v -0.125000 0.250000 -0.250000
|
||||
v -0.125000 0.687500 0.187500
|
||||
v -0.125000 0.312500 0.187500
|
||||
v -0.125000 0.687500 -0.187500
|
||||
v -0.125000 0.312500 -0.187500
|
||||
v -0.375000 0.687500 -0.187500
|
||||
v -0.375000 0.687500 0.187500
|
||||
v -0.375000 0.312500 0.187500
|
||||
v -0.375000 0.312500 -0.187500
|
||||
v -0.187500 0.687500 0.187500
|
||||
v 0.187500 0.687500 0.187500
|
||||
v -0.187500 0.687500 -0.187500
|
||||
v 0.187500 0.687500 -0.187500
|
||||
v -0.125000 0.875000 -0.125000
|
||||
v -0.125000 0.875000 0.125000
|
||||
v 0.125000 0.875000 0.125000
|
||||
v 0.125000 0.875000 -0.125000
|
||||
v -0.187500 0.875000 -0.187500
|
||||
v -0.187500 0.875000 0.187500
|
||||
v 0.187500 0.875000 0.187500
|
||||
v 0.187500 0.875000 -0.187500
|
||||
v -0.125000 0.812500 -0.125000
|
||||
v -0.125000 0.812500 0.125000
|
||||
v 0.125000 0.812500 0.125000
|
||||
v 0.125000 0.812500 -0.125000
|
||||
vt 0.487805 0.600000
|
||||
vt 0.512195 0.425000
|
||||
vt 0.512195 0.575000
|
||||
vt 0.951219 0.400000
|
||||
vt 0.658537 0.700000
|
||||
vt 0.658537 0.400000
|
||||
vt 0.658537 0.050000
|
||||
vt 0.951219 0.350000
|
||||
vt 0.658537 0.350000
|
||||
vt 1.000000 0.350000
|
||||
vt 0.951219 0.050000
|
||||
vt 1.000000 0.050000
|
||||
vt 0.609756 0.050000
|
||||
vt 0.609756 0.350000
|
||||
vt 0.951219 -0.000000
|
||||
vt 0.658537 0.000000
|
||||
vt 0.000000 0.600000
|
||||
vt 0.195122 0.400000
|
||||
vt 0.195122 0.600000
|
||||
vt 0.512195 0.775000
|
||||
vt 0.512195 0.625000
|
||||
vt 0.195122 -0.000000
|
||||
vt 0.243902 0.200000
|
||||
vt 0.195122 0.200000
|
||||
vt 0.243902 0.600000
|
||||
vt 0.243902 0.400000
|
||||
vt 0.243902 0.800000
|
||||
vt 0.195122 0.800000
|
||||
vt 0.512195 0.175000
|
||||
vt 0.487805 -0.000000
|
||||
vt 0.512195 0.025000
|
||||
vt 0.487805 0.400000
|
||||
vt 0.512195 0.225000
|
||||
vt 0.512195 0.375000
|
||||
vt 0.365854 0.625000
|
||||
vt 0.268293 0.775000
|
||||
vt 0.268293 0.625000
|
||||
vt 0.365854 0.025000
|
||||
vt 0.268293 0.175000
|
||||
vt 0.268293 0.025000
|
||||
vt 0.365854 0.425000
|
||||
vt 0.268293 0.575000
|
||||
vt 0.268293 0.425000
|
||||
vt 0.365854 0.225000
|
||||
vt 0.268293 0.375000
|
||||
vt 0.268293 0.225000
|
||||
vt 0.390244 -0.000000
|
||||
vt 0.487805 0.200000
|
||||
vt 0.390244 0.200000
|
||||
vt 0.390244 0.400000
|
||||
vt 0.390244 0.600000
|
||||
vt 0.487805 0.800000
|
||||
vt 0.390244 0.800000
|
||||
vt 0.609756 0.625000
|
||||
vt 0.609756 0.025000
|
||||
vt 0.609756 0.425000
|
||||
vt 0.609756 0.225000
|
||||
vt 0.024390 0.750000
|
||||
vt 0.121951 0.725000
|
||||
vt 0.121951 0.750000
|
||||
vt 0.829268 0.700000
|
||||
vt 0.682927 0.775000
|
||||
vt 0.682927 0.700000
|
||||
vt 0.682927 1.000000
|
||||
vt 0.829268 0.925000
|
||||
vt 0.829268 1.000000
|
||||
vt 0.609756 0.775000
|
||||
vt 0.682927 0.925000
|
||||
vt 0.609756 0.925000
|
||||
vt 0.902439 0.925000
|
||||
vt 0.829268 0.775000
|
||||
vt 0.902439 0.775000
|
||||
vt 0.804878 0.800000
|
||||
vt 0.804878 0.900000
|
||||
vt 0.707317 0.900000
|
||||
vt 0.707317 0.800000
|
||||
vt 0.024390 0.725000
|
||||
vt 0.121951 0.625000
|
||||
vt 0.000000 0.625000
|
||||
vt 0.000000 0.725000
|
||||
vt 0.146341 0.725000
|
||||
vt 0.146341 0.625000
|
||||
vt 0.121951 0.600000
|
||||
vt 0.024390 0.625000
|
||||
vt 0.024390 0.600000
|
||||
vt 0.365854 0.375000
|
||||
vt 0.365854 0.575000
|
||||
vt 0.365854 0.775000
|
||||
vt 0.365854 0.175000
|
||||
vt 0.951219 0.700000
|
||||
vt -0.000000 0.400000
|
||||
vt 0.243902 0.000000
|
||||
vt 0.609756 0.775000
|
||||
vt 0.609756 0.175000
|
||||
vt 0.609756 0.575000
|
||||
vt 0.609756 0.375000
|
||||
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
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
s off
|
||||
f 62/43/14 67/44/14 65/45/14
|
||||
f 35/46/14 34/47/14 33/48/14
|
||||
f 39/49/15 37/50/15 38/51/15
|
||||
f 35/52/16 40/53/16 36/54/16
|
||||
f 34/55/17 38/51/17 33/56/17
|
||||
f 36/57/18 39/49/18 34/58/18
|
||||
f 33/48/19 37/50/19 35/46/19
|
||||
f 42/59/15 43/60/15 41/61/15
|
||||
f 66/62/14 62/43/14 65/63/14
|
||||
f 42/64/18 48/65/18 44/66/18
|
||||
f 43/60/19 46/67/19 41/61/19
|
||||
f 44/66/16 45/68/16 43/60/16
|
||||
f 41/61/17 47/69/17 42/70/17
|
||||
f 68/71/14 63/72/14 66/73/14
|
||||
f 61/74/14 68/75/14 67/76/14
|
||||
f 54/77/17 50/78/17 49/79/17
|
||||
f 55/80/18 52/81/18 50/82/18
|
||||
f 53/83/19 49/84/19 51/85/19
|
||||
f 56/86/16 51/87/16 52/88/16
|
||||
f 58/89/18 64/90/18 60/91/18
|
||||
f 59/92/19 62/43/19 57/93/19
|
||||
f 60/91/16 61/74/16 59/92/16
|
||||
f 57/93/17 63/94/17 58/95/17
|
||||
f 70/96/17 66/62/17 65/63/17
|
||||
f 71/97/18 68/71/18 66/73/18
|
||||
f 69/98/19 65/45/19 67/44/19
|
||||
f 72/99/16 67/76/16 68/75/16
|
||||
f 79/100/16 86/101/16 78/102/16
|
||||
f 75/103/16 84/104/16 76/105/16
|
||||
f 74/106/17 82/107/17 73/108/17
|
||||
f 76/109/15 83/110/15 74/111/15
|
||||
f 73/112/14 81/113/14 75/114/14
|
||||
f 77/115/19 82/107/19 78/116/19
|
||||
f 78/116/19 83/110/19 79/117/19
|
||||
f 79/117/19 84/104/19 80/118/19
|
||||
f 80/118/19 81/113/19 77/115/19
|
||||
f 87/119/19 85/120/19 86/101/19
|
||||
f 80/121/14 87/119/14 79/122/14
|
||||
f 78/123/15 85/120/15 77/124/15
|
||||
f 77/125/17 88/126/17 80/127/17
|
||||
f 56/86/15 59/92/15 53/128/15
|
||||
f 53/83/15 57/93/15 54/129/15
|
||||
f 54/77/15 58/95/15 55/130/15
|
||||
f 55/80/15 60/91/15 56/131/15
|
||||
f 48/65/14 51/87/14 45/68/14
|
||||
f 46/67/14 51/85/14 49/84/14
|
||||
f 46/67/14 50/78/14 47/69/14
|
||||
f 48/65/14 50/82/14 52/81/14
|
||||
f 62/43/14 61/74/14 67/44/14
|
||||
f 35/46/14 36/132/14 34/47/14
|
||||
f 39/49/15 40/53/15 37/50/15
|
||||
f 35/52/16 37/50/16 40/53/16
|
||||
f 34/55/17 39/49/17 38/51/17
|
||||
f 36/57/18 40/53/18 39/49/18
|
||||
f 33/48/19 38/51/19 37/50/19
|
||||
f 42/59/15 44/133/15 43/60/15
|
||||
f 66/62/14 63/94/14 62/43/14
|
||||
f 42/64/18 47/134/18 48/65/18
|
||||
f 43/60/19 45/68/19 46/67/19
|
||||
f 44/66/16 48/65/16 45/68/16
|
||||
f 41/61/17 46/67/17 47/69/17
|
||||
f 68/71/14 64/90/14 63/72/14
|
||||
f 61/74/14 64/90/14 68/75/14
|
||||
f 54/77/17 55/130/17 50/78/17
|
||||
f 55/80/18 56/131/18 52/81/18
|
||||
f 53/83/19 54/129/19 49/84/19
|
||||
f 56/86/16 53/128/16 51/87/16
|
||||
f 58/89/18 63/72/18 64/90/18
|
||||
f 59/92/19 61/74/19 62/43/19
|
||||
f 60/91/16 64/90/16 61/74/16
|
||||
f 57/93/17 62/43/17 63/94/17
|
||||
f 70/96/17 71/135/17 66/62/17
|
||||
f 71/97/18 72/136/18 68/71/18
|
||||
f 69/98/19 70/137/19 65/45/19
|
||||
f 72/99/16 69/138/16 67/76/16
|
||||
f 79/100/16 87/119/16 86/101/16
|
||||
f 75/103/16 81/113/16 84/104/16
|
||||
f 74/106/17 83/110/17 82/107/17
|
||||
f 76/109/15 84/104/15 83/110/15
|
||||
f 73/112/14 82/107/14 81/113/14
|
||||
f 77/115/19 81/113/19 82/107/19
|
||||
f 78/116/19 82/107/19 83/110/19
|
||||
f 79/117/19 83/110/19 84/104/19
|
||||
f 80/118/19 84/104/19 81/113/19
|
||||
f 87/119/19 88/126/19 85/120/19
|
||||
f 80/121/14 88/126/14 87/119/14
|
||||
f 78/123/15 86/101/15 85/120/15
|
||||
f 77/125/17 85/120/17 88/126/17
|
||||
f 56/86/15 60/91/15 59/92/15
|
||||
f 53/83/15 59/92/15 57/93/15
|
||||
f 54/77/15 57/93/15 58/95/15
|
||||
f 55/80/15 58/89/15 60/91/15
|
||||
f 48/65/14 52/88/14 51/87/14
|
||||
f 46/67/14 45/68/14 51/85/14
|
||||
f 46/67/14 49/79/14 50/78/14
|
||||
f 48/65/14 47/134/14 50/82/14
|
||||
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 408 B After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 465 B After Width: | Height: | Size: 922 B |
|
Before Width: | Height: | Size: 469 B After Width: | Height: | Size: 832 B |