mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
iron furnace, but it's made from steel and works completely different
This commit is contained in:
parent
461101dd72
commit
0c0ca15dbf
@ -7,6 +7,7 @@ import java.util.Random;
|
||||
import com.hbm.handler.MultiblockHandlerXR;
|
||||
import com.hbm.handler.ThreeInts;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.Block;
|
||||
@ -41,8 +42,36 @@ public abstract class BlockDummyable extends BlockContainer {
|
||||
public static final int offset = 10;
|
||||
// meta offset from dummy to extra rotation
|
||||
public static final int extra = 6;
|
||||
|
||||
/*
|
||||
* An extra integer that can be set before block set operations (such as makeExtra) and intercepted in createNewTileEntity.
|
||||
* This way we can inelegantly add variation to the tiles created even if the metadata would be the same.
|
||||
* Why createNewTileEntity only takes two args or why it is used by the chunk's setBlock implementation is beyond me but any
|
||||
* other solution feels like putting in way too much effort to achieve the same thing, really.
|
||||
*/
|
||||
public static int overrideTileMeta = 0;
|
||||
/*
|
||||
* Set as the meta for the core is decided, before any of the dummies are placed. This way we can somewhat easily add variation
|
||||
* to our tile entities in createNewTileEntity using the relative position to the core, as well as pull information from the core
|
||||
* block itself, if required.
|
||||
*/
|
||||
public static BlockPos lastCore = new BlockPos(0, 0, 0);
|
||||
/*
|
||||
* Because createNewTileEntity has no knowledge of where the tile ends up being beforehand, we just set a reference beforehand when
|
||||
* the block was initially placed. Why does this have to be such a pain in the ass.
|
||||
* BEWARE: This information is server-side only! Keep that in mind when expecting any of this affecting the client as well.
|
||||
*/
|
||||
public static BlockPos lastBlockSet = new BlockPos(0, 0, 0);
|
||||
|
||||
public static boolean safeRem = false;
|
||||
|
||||
public static void setOverride(int i) {
|
||||
overrideTileMeta = i;
|
||||
}
|
||||
|
||||
public static void resetOverride() {
|
||||
overrideTileMeta = 0;
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {
|
||||
|
||||
@ -62,8 +91,6 @@ public abstract class BlockDummyable extends BlockContainer {
|
||||
|
||||
if(b != this) {
|
||||
world.setBlockToAir(x, y, z);
|
||||
// world.setBlock(x, y, z, ModBlocks.dfc_injector, dir.ordinal(),
|
||||
// 3);
|
||||
}
|
||||
}
|
||||
|
||||
@ -182,6 +209,7 @@ public abstract class BlockDummyable extends BlockContainer {
|
||||
if(!world.isRemote) {
|
||||
//this is separate because the multiblock rotation and the final meta might not be the same
|
||||
int meta = getMetaForCore(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, (EntityPlayer) player, dir.ordinal() + offset);
|
||||
lastCore = new BlockPos(x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o);
|
||||
world.setBlock(x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, this, meta, 3);
|
||||
fillSpace(world, x, y, z, dir, o);
|
||||
}
|
||||
@ -191,6 +219,12 @@ public abstract class BlockDummyable extends BlockContainer {
|
||||
|
||||
super.onBlockPlacedBy(world, x, y, z, player, itemStack);
|
||||
}
|
||||
|
||||
// this fucking sucks, why are you making me do this
|
||||
@Override
|
||||
public void onBlockAdded(World world, int x, int y, int z) {
|
||||
lastBlockSet = new BlockPos(x, y, z);
|
||||
}
|
||||
|
||||
/**
|
||||
* A bit more advanced than the dir modifier, but it is important that the resulting direction meta is in the core range.
|
||||
|
||||
@ -627,6 +627,7 @@ public class ModBlocks {
|
||||
public static Block heater_firebox;
|
||||
|
||||
public static Block furnace_iron;
|
||||
public static Block furnace_steel;
|
||||
|
||||
public static Block machine_difurnace_off;
|
||||
public static Block machine_difurnace_on;
|
||||
@ -1793,6 +1794,7 @@ public class ModBlocks {
|
||||
heater_firebox = new HeaterFirebox().setBlockName("heater_firebox").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
|
||||
furnace_iron = new FurnaceIron().setBlockName("furnace_iron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_aluminium");
|
||||
furnace_steel = new FurnaceSteel().setBlockName("furnace_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
|
||||
machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F);
|
||||
@ -2965,6 +2967,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(machine_epress, machine_epress.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(heater_firebox, heater_firebox.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(furnace_iron, furnace_iron.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(furnace_steel, furnace_steel.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_difurnace_off, machine_difurnace_off.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_difurnace_on, machine_difurnace_on.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_difurnace_rtg_off, machine_difurnace_rtg_off.getUnlocalizedName());
|
||||
|
||||
38
src/main/java/com/hbm/blocks/machine/FurnaceSteel.java
Normal file
38
src/main/java/com/hbm/blocks/machine/FurnaceSteel.java
Normal file
@ -0,0 +1,38 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.TileEntityFurnaceSteel;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class FurnaceSteel extends BlockDummyable {
|
||||
|
||||
public FurnaceSteel() {
|
||||
super(Material.iron);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
if(meta >= 12) return new TileEntityFurnaceSteel();
|
||||
return new TileEntityProxyCombo(true, false, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
return this.standardOpenBehavior(world, x, y, z, player, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getDimensions() {
|
||||
return new int[] {1, 0, 1, 1, 1, 1};
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOffset() {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@ -20,6 +20,11 @@ public class HeaterFirebox extends BlockDummyable {
|
||||
|
||||
if(meta >= 12)
|
||||
return new TileEntityHeaterFirebox();
|
||||
|
||||
//the firebox is only 1 block tall, why did i write this?
|
||||
/*if(lastCore.getX() == lastBlockSet.getX() && lastCore.getY() + 1 == lastBlockSet.getY() && lastCore.getZ() == lastBlockSet.getZ())
|
||||
return new TileEntityProxyCombo().inventory().heatSource();*/
|
||||
|
||||
return new TileEntityProxyCombo(true, false, false);
|
||||
}
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@ import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.oil.TileEntityMachineLiquefactor;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@ -68,10 +69,8 @@ public class MachineLiquefactor extends BlockDummyable implements ITooltipProvid
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
|
||||
if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { //TODO: just slap some fuckin I18n support in there idfk
|
||||
list.add(EnumChatFormatting.YELLOW + "Powerful universal machine to turn items into fluids.");
|
||||
list.add(EnumChatFormatting.YELLOW + "Comes with versatile catalytic components, heating elements");
|
||||
list.add(EnumChatFormatting.YELLOW + "and a built-in hydrator for petrochemical liquefaction.");
|
||||
if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) {
|
||||
for(String s : I18nUtil.resolveKeyArray(this.getUnlocalizedName() + ".desc")) list.add(EnumChatFormatting.YELLOW + s);
|
||||
} else {
|
||||
list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" +
|
||||
EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" +
|
||||
|
||||
@ -8,6 +8,7 @@ import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.oil.TileEntityMachineSolidifier;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@ -69,9 +70,7 @@ public class MachineSolidifier extends BlockDummyable implements ITooltipProvide
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
|
||||
if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) {
|
||||
list.add(EnumChatFormatting.YELLOW + "A universal machine fitted with cooling systems and other");
|
||||
list.add(EnumChatFormatting.YELLOW + "versatile tools for turning fluids solid using various");
|
||||
list.add(EnumChatFormatting.YELLOW + "processes such as freezing and petrochemical polymerization.");
|
||||
for(String s : I18nUtil.resolveKeyArray(this.getUnlocalizedName() + ".desc")) list.add(EnumChatFormatting.YELLOW + s);
|
||||
} else {
|
||||
list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" +
|
||||
EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" +
|
||||
|
||||
@ -315,7 +315,7 @@ public class EntityBulletBase extends Entity implements IProjectile {
|
||||
|
||||
boolean headshot = false;
|
||||
|
||||
if(victim instanceof EntityLivingBase) {
|
||||
if(victim instanceof EntityLivingBase && this.config.headshotMult > 1F) {
|
||||
EntityLivingBase living = (EntityLivingBase) victim;
|
||||
double head = living.height - living.getEyeHeight();
|
||||
|
||||
|
||||
@ -0,0 +1,73 @@
|
||||
package com.hbm.inventory.container;
|
||||
|
||||
import com.hbm.inventory.SlotSmelting;
|
||||
import com.hbm.tileentity.machine.TileEntityFurnaceSteel;
|
||||
|
||||
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 ContainerFurnaceSteel extends Container {
|
||||
|
||||
protected TileEntityFurnaceSteel furnace;
|
||||
|
||||
public ContainerFurnaceSteel(InventoryPlayer invPlayer, TileEntityFurnaceSteel furnace) {
|
||||
this.furnace = furnace;
|
||||
|
||||
//input
|
||||
this.addSlotToContainer(new Slot(furnace, 0, 35, 17));
|
||||
this.addSlotToContainer(new Slot(furnace, 1, 35, 35));
|
||||
this.addSlotToContainer(new Slot(furnace, 2, 35, 53));
|
||||
//output
|
||||
this.addSlotToContainer(new SlotSmelting(invPlayer.player, furnace, 3, 125, 17));
|
||||
this.addSlotToContainer(new SlotSmelting(invPlayer.player, furnace, 4, 125, 35));
|
||||
this.addSlotToContainer(new SlotSmelting(invPlayer.player, furnace, 5, 125, 53));
|
||||
|
||||
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, 84 + i * 18));
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0; i < 9; i++) {
|
||||
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
|
||||
ItemStack stack = null;
|
||||
Slot slot = (Slot) this.inventorySlots.get(index);
|
||||
|
||||
if(slot != null && slot.getHasStack()) {
|
||||
ItemStack originalStack = slot.getStack();
|
||||
stack = originalStack.copy();
|
||||
|
||||
if(index <= 5) {
|
||||
if(!this.mergeItemStack(originalStack, 6, this.inventorySlots.size(), true)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
slot.onSlotChange(originalStack, stack);
|
||||
|
||||
} else if(!this.mergeItemStack(originalStack, 0, 3, false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if(originalStack.stackSize == 0) {
|
||||
slot.putStack((ItemStack) null);
|
||||
} else {
|
||||
slot.onSlotChanged();
|
||||
}
|
||||
}
|
||||
|
||||
return stack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInteractWith(EntityPlayer player) {
|
||||
return furnace.isUseableByPlayer(player);
|
||||
}
|
||||
}
|
||||
@ -17,11 +17,11 @@ import net.minecraft.util.ResourceLocation;
|
||||
public class GUIFurnaceIron extends GuiInfoContainer {
|
||||
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_furnace_iron.png");
|
||||
private TileEntityFurnaceIron diFurnace;
|
||||
private TileEntityFurnaceIron furnace;
|
||||
|
||||
public GUIFurnaceIron(InventoryPlayer invPlayer, TileEntityFurnaceIron tedf) {
|
||||
super(new ContainerFurnaceIron(invPlayer, tedf));
|
||||
diFurnace = tedf;
|
||||
furnace = tedf;
|
||||
|
||||
this.xSize = 176;
|
||||
this.ySize = 166;
|
||||
@ -38,7 +38,7 @@ public class GUIFurnaceIron extends GuiInfoContainer {
|
||||
|
||||
if(this.isMouseOverSlot(slot, x, y) && !slot.getHasStack()) {
|
||||
|
||||
List<String> bonuses = this.diFurnace.burnModule.getTimeDesc();
|
||||
List<String> bonuses = this.furnace.burnModule.getTimeDesc();
|
||||
|
||||
if(!bonuses.isEmpty()) {
|
||||
this.func_146283_a(bonuses, x, y);
|
||||
@ -47,13 +47,13 @@ public class GUIFurnaceIron extends GuiInfoContainer {
|
||||
}
|
||||
}
|
||||
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 35, 71, 7, x, y, new String[] { (diFurnace.progress * 100 / Math.max(diFurnace.processingTime, 1)) + "%" });
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 44, 71, 7, x, y, new String[] { (diFurnace.burnTime / 20) + "s" });
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 35, 71, 7, x, y, new String[] { (furnace.progress * 100 / Math.max(furnace.processingTime, 1)) + "%" });
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 44, 71, 7, x, y, new String[] { (furnace.burnTime / 20) + "s" });
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(int i, int j) {
|
||||
String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName());
|
||||
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(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
|
||||
@ -65,13 +65,13 @@ public class GUIFurnaceIron extends GuiInfoContainer {
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
|
||||
int i = diFurnace.progress * 70 / Math.max(diFurnace.processingTime, 1);
|
||||
int i = furnace.progress * 70 / Math.max(furnace.processingTime, 1);
|
||||
drawTexturedModalRect(guiLeft + 53, guiTop + 36, 176, 18, i, 5);
|
||||
|
||||
int j = diFurnace.burnTime * 70 / Math.max(diFurnace.maxBurnTime, 1);
|
||||
int j = furnace.burnTime * 70 / Math.max(furnace.maxBurnTime, 1);
|
||||
drawTexturedModalRect(guiLeft + 53, guiTop + 45, 176, 23, j, 5);
|
||||
|
||||
if(diFurnace.canSmelt())
|
||||
if(furnace.canSmelt())
|
||||
drawTexturedModalRect(guiLeft + 70, guiTop + 16, 176, 0, 18, 18);
|
||||
}
|
||||
}
|
||||
|
||||
67
src/main/java/com/hbm/inventory/gui/GUIFurnaceSteel.java
Normal file
67
src/main/java/com/hbm/inventory/gui/GUIFurnaceSteel.java
Normal file
@ -0,0 +1,67 @@
|
||||
package com.hbm.inventory.gui;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.inventory.container.ContainerFurnaceSteel;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.tileentity.machine.TileEntityFurnaceSteel;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class GUIFurnaceSteel extends GuiInfoContainer {
|
||||
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_furnace_steel.png");
|
||||
private TileEntityFurnaceSteel furnace;
|
||||
|
||||
public GUIFurnaceSteel(InventoryPlayer invPlayer, TileEntityFurnaceSteel tedf) {
|
||||
super(new ContainerFurnaceSteel(invPlayer, tedf));
|
||||
furnace = tedf;
|
||||
|
||||
this.xSize = 176;
|
||||
this.ySize = 166;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawScreen(int x, int y, float interp) {
|
||||
super.drawScreen(x, y, interp);
|
||||
|
||||
for(int i = 0; i < 3; i++) {
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 53, guiTop + 17 + 18 * i, 70, 7, x, y, new String[] { String.format("%,d", furnace.progress[i]) + " / " + String.format("%,d", furnace.processTime) + "TU" });
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 53, guiTop + 26 + 18 * i, 70, 7, x, y, new String[] { "Bonus: " + furnace.bonus[i] + "%" });
|
||||
}
|
||||
//this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 44, 71, 7, x, y, new String[] { (furnace.burnTime / 20) + "s" });
|
||||
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 18, 9, 50, x, y, new String[] { String.format("%,d", furnace.heat) + " / " + String.format("%,d", furnace.maxHeat) + "TU" });
|
||||
}
|
||||
|
||||
@Override
|
||||
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(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);
|
||||
|
||||
int h = furnace.heat * 48 / furnace.maxHeat;
|
||||
drawTexturedModalRect(guiLeft + 152, guiTop + 67 - h, 176, 76 - h, 7, h);
|
||||
|
||||
for(int i = 0; i < 3; i++) {
|
||||
int p = furnace.progress[i] * 69 / furnace.processTime;
|
||||
drawTexturedModalRect(guiLeft + 54, guiTop + 18 + 18 * i, 176, 18, p, 5);
|
||||
int b = furnace.bonus[i] * 69 / 100;
|
||||
drawTexturedModalRect(guiLeft + 54, guiTop + 27 + 18 * i, 176, 23, b, 5);
|
||||
|
||||
if(furnace.wasOn)
|
||||
drawTexturedModalRect(guiLeft + 16, guiTop + 16 + 18 * i, 176, 0, 18, 18);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -251,14 +251,14 @@ public class SILEXRecipes {
|
||||
|
||||
// HEAUS //
|
||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_heaus, 1, i), new SILEXRecipe(600, 100, 2)
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 90 - i * 20))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_greater), 90 - i * 20))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 5 + 10 * i))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(Items.gold_nugget), 3 + 6 * i))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 2 + 4 * i)) );
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_heaus, 1, i + 5), new SILEXRecipe(600, 100, 2)
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 89 - i * 20))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_greater), 89 - i * 20))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 5 + 10 * i))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(Items.gold_nugget), 3 + 6 * i))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 2 + 4 * i)) );
|
||||
|
||||
@ -14,6 +14,8 @@ import net.minecraft.client.particle.EntityReddustFX;
|
||||
import net.minecraft.client.renderer.entity.RenderMinecart;
|
||||
import net.minecraft.client.renderer.entity.RenderSnowball;
|
||||
import net.minecraft.client.renderer.texture.TextureManager;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@ -254,6 +256,7 @@ public class ClientProxy extends ServerProxy {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadiolysis.class, new RenderRadiolysis());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityElectrolyser.class, new RenderElectrolyser());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFurnaceIron.class, new RenderFurnaceIron());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFurnaceSteel.class, new RenderFurnaceSteel());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterFirebox.class, new RenderFirebox());
|
||||
//AMS
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSBase.class, new RenderAMSBase());
|
||||
@ -326,6 +329,15 @@ public class ClientProxy extends ServerProxy {
|
||||
for(Entry<Item, ItemRenderBase> entry : ItemRenderLibrary.renderers.entrySet())
|
||||
MinecraftForgeClient.registerItemRenderer(entry.getKey(), entry.getValue());
|
||||
|
||||
Iterator iterator = TileEntityRendererDispatcher.instance.mapSpecialRenderers.values().iterator();
|
||||
while(iterator.hasNext()) {
|
||||
Object renderer = iterator.next();
|
||||
if(renderer instanceof IItemRendererProvider) {
|
||||
IItemRendererProvider prov = (IItemRendererProvider) renderer;
|
||||
MinecraftForgeClient.registerItemRenderer(prov.getItemForRenderer(), prov.getRenderer());
|
||||
}
|
||||
}
|
||||
|
||||
//universal JSON translated items
|
||||
double[] rtp = new double[] {0, 180, -90};
|
||||
double[] ttp_high = new double[] {0.125, 0.625, 0};
|
||||
|
||||
@ -51,7 +51,7 @@ public class ResourceManager {
|
||||
public static final IModelCustom turret_maxwell = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_microwave.obj"));
|
||||
public static final IModelCustom turret_fritz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_fritz.obj"));
|
||||
public static final IModelCustom turret_brandon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_brandon.obj"));
|
||||
public static final IModelCustom turret_arty = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_arty.obj"));
|
||||
public static final IModelCustom turret_arty = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_arty.obj")).asDisplayList(); // test!
|
||||
|
||||
public static final IModelCustom turret_howard_damaged = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard_damaged.obj"));
|
||||
|
||||
@ -60,6 +60,7 @@ public class ResourceManager {
|
||||
|
||||
//Furnaces
|
||||
public static final IModelCustom furnace_iron = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/furnace_iron.obj"));
|
||||
public static final IModelCustom furnace_steel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/furnace_steel.obj"));
|
||||
|
||||
//Landmines
|
||||
public static final IModelCustom mine_ap = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_ap.obj"));
|
||||
@ -370,6 +371,7 @@ public class ResourceManager {
|
||||
|
||||
//Furnaces
|
||||
public static final ResourceLocation furnace_iron_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/furnace_iron.png");
|
||||
public static final ResourceLocation furnace_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/furnace_steel.png");
|
||||
|
||||
//Oil Pumps
|
||||
public static final ResourceLocation derrick_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/derrick.png");
|
||||
|
||||
@ -16,6 +16,7 @@ import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
@Deprecated // implement IItemRendererProvider for TESRs instead!
|
||||
public class ItemRenderLibrary {
|
||||
|
||||
public static HashMap<Item, ItemRenderBase> renderers = new HashMap();
|
||||
@ -1339,6 +1340,17 @@ public class ItemRenderLibrary {
|
||||
ResourceManager.turret_arty.renderPart("Barrel");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}});
|
||||
|
||||
renderers.put(Item.getItemFromBlock(ModBlocks.heater_firebox), new ItemRenderBase( ) {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, -1, 0);
|
||||
GL11.glScaled(3.25, 3.25, 3.25);
|
||||
}
|
||||
public void renderCommon() {
|
||||
bindTexture(ResourceManager.heater_firebox_tex);
|
||||
ResourceManager.heater_firebox.renderPart("Main");
|
||||
ResourceManager.heater_firebox.renderPart("Door");
|
||||
}});
|
||||
}
|
||||
|
||||
private static void bindTexture(ResourceLocation res) {
|
||||
|
||||
@ -8,6 +8,8 @@ package com.hbm.render.model;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.interfaces.IHoldableWeapon;
|
||||
|
||||
import net.minecraft.client.model.ModelBiped;
|
||||
import net.minecraft.client.model.ModelRenderer;
|
||||
import net.minecraft.entity.Entity;
|
||||
@ -224,6 +226,9 @@ public class ModelT45Chest extends ModelBiped {
|
||||
this.aimedBow = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(itemstack != null && player.getHeldItem().getItem() instanceof IHoldableWeapon)
|
||||
this.aimedBow = true;
|
||||
}
|
||||
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
|
||||
this.chest.rotationPointX = this.bipedBody.rotationPointX;
|
||||
|
||||
@ -0,0 +1,10 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public interface IItemRendererProvider {
|
||||
|
||||
public Item getItemForRenderer();
|
||||
public IItemRenderer getRenderer();
|
||||
}
|
||||
@ -0,0 +1,57 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
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.tileentity.TileEntity;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class RenderFurnaceSteel extends TileEntitySpecialRenderer implements IItemRendererProvider {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
|
||||
switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) {
|
||||
case 3: GL11.glRotatef(0, 0F, 1F, 0F); break;
|
||||
case 5: GL11.glRotatef(90, 0F, 1F, 0F); break;
|
||||
case 2: GL11.glRotatef(180, 0F, 1F, 0F); break;
|
||||
case 4: GL11.glRotatef(270, 0F, 1F, 0F); break;
|
||||
}
|
||||
|
||||
GL11.glRotatef(-90, 0F, 1F, 0F);
|
||||
|
||||
bindTexture(ResourceManager.furnace_steel_tex);
|
||||
ResourceManager.furnace_steel.renderAll();
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemForRenderer() {
|
||||
return Item.getItemFromBlock(ModBlocks.furnace_steel);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemRenderer getRenderer() {
|
||||
return new ItemRenderBase( ) {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, -1.5, 0);
|
||||
GL11.glScaled(3.25, 3.25, 3.25);
|
||||
}
|
||||
public void renderCommon() {
|
||||
bindTexture(ResourceManager.furnace_steel_tex);
|
||||
ResourceManager.furnace_steel.renderAll();
|
||||
}};
|
||||
}
|
||||
|
||||
}
|
||||
@ -8,6 +8,7 @@ import com.hbm.inventory.fluid.FluidType;
|
||||
import api.hbm.energy.IEnergyConnector;
|
||||
import api.hbm.energy.IEnergyUser;
|
||||
import api.hbm.fluid.IFluidConnector;
|
||||
import api.hbm.tile.IHeatSource;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.ISidedInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@ -15,12 +16,13 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyUser, IFluidAcceptor, ISidedInventory, IFluidConnector {
|
||||
public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyUser, IFluidAcceptor, ISidedInventory, IFluidConnector, IHeatSource {
|
||||
|
||||
TileEntity tile;
|
||||
boolean inventory;
|
||||
boolean power;
|
||||
boolean fluid;
|
||||
boolean heat;
|
||||
|
||||
public TileEntityProxyCombo() { }
|
||||
|
||||
@ -30,6 +32,26 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy
|
||||
this.fluid = fluid;
|
||||
}
|
||||
|
||||
public TileEntityProxyCombo inventory() {
|
||||
this.inventory = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TileEntityProxyCombo power() {
|
||||
this.power = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TileEntityProxyCombo fluid() {
|
||||
this.fluid = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TileEntityProxyCombo heatSource() {
|
||||
this.heat = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
//fewer messy recursive operations
|
||||
public TileEntity getTile() {
|
||||
|
||||
@ -437,4 +459,28 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getHeatStored() {
|
||||
|
||||
if(!this.heat)
|
||||
return 0;
|
||||
|
||||
if(getTile() instanceof IHeatSource) {
|
||||
return ((IHeatSource)getTile()).getHeatStored();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void useUpHeat(int heat) {
|
||||
|
||||
if(!this.heat)
|
||||
return;
|
||||
|
||||
if(getTile() instanceof IHeatSource) {
|
||||
((IHeatSource)getTile()).useUpHeat(heat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -249,6 +249,7 @@ public class TileMappings {
|
||||
private static void putMachines() {
|
||||
put(TileEntityHeaterFirebox.class, "tileentity_firebox");
|
||||
put(TileEntityFurnaceIron.class, "tileentity_furnace_iron");
|
||||
put(TileEntityFurnaceSteel.class, "tileentity_furnace_steel");
|
||||
put(TileEntityMachineAutocrafter.class, "tileentity_autocrafter");
|
||||
put(TileEntityDiFurnaceRTG.class, "tileentity_rtg_difurnace");
|
||||
put(TileEntityMachineRadiolysis.class, "tileentity_radiolysis");
|
||||
|
||||
@ -0,0 +1,268 @@
|
||||
package com.hbm.tileentity.machine;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.inventory.container.ContainerFurnaceSteel;
|
||||
import com.hbm.inventory.gui.GUIFurnaceSteel;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
import com.hbm.util.ItemStackUtil;
|
||||
|
||||
import api.hbm.tile.IHeatSource;
|
||||
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.item.crafting.FurnaceRecipes;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityFurnaceSteel extends TileEntityMachineBase implements IGUIProvider {
|
||||
|
||||
public int[] progress = new int[3];
|
||||
public int[] bonus = new int[3];
|
||||
public static final int processTime = 40_000; // assuming vanilla furnace rules with 200 ticks of coal fire burning at 200HU/t
|
||||
|
||||
public int heat;
|
||||
public static final int maxHeat = 100_000;
|
||||
public static final double diffusion = 0.05D;
|
||||
|
||||
private ItemStack[] lastItems = new ItemStack[3];
|
||||
|
||||
public boolean wasOn = false;
|
||||
|
||||
public TileEntityFurnaceSteel() {
|
||||
super(6);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "container.furnaceSteel";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
tryPullHeat();
|
||||
|
||||
this.wasOn = false;
|
||||
|
||||
int burn = (heat - this.maxHeat / 3) / 10;
|
||||
|
||||
for(int i = 0; i < 3; i++) {
|
||||
|
||||
if(slots[i] == null || lastItems[i] == null || !slots[i].isItemEqual(lastItems[i])) {
|
||||
progress[i] = 0;
|
||||
bonus[i] = 0;
|
||||
}
|
||||
|
||||
if(canSmelt(i)) {
|
||||
progress[i] += burn;
|
||||
this.heat -= burn;
|
||||
this.wasOn = true;
|
||||
}
|
||||
|
||||
lastItems[i] = slots[i];
|
||||
|
||||
if(progress[i] >= processTime) {
|
||||
ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(slots[i]);
|
||||
|
||||
if(slots[i + 3] == null) {
|
||||
slots[i + 3] = result.copy();
|
||||
} else {
|
||||
slots[i + 3].stackSize += result.stackSize;
|
||||
}
|
||||
|
||||
this.addBonus(slots[i], i);
|
||||
|
||||
while(bonus[i] >= 100) {
|
||||
slots[i + 3].stackSize = Math.min(slots[i + 3].getMaxStackSize(), slots[i + 3].stackSize + result.stackSize);
|
||||
bonus[i] -= 100;
|
||||
}
|
||||
|
||||
this.decrStackSize(i, 1);
|
||||
|
||||
progress[i] = 0;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setIntArray("progress", progress);
|
||||
data.setIntArray("bonus", bonus);
|
||||
data.setInteger("heat", heat);
|
||||
data.setBoolean("wasOn", wasOn);
|
||||
this.networkPack(data, 50);
|
||||
} else {
|
||||
|
||||
if(this.wasOn) {
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
||||
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
|
||||
|
||||
worldObj.spawnParticle("smoke", xCoord + 0.5 - dir.offsetX * 1.125 - rot.offsetX * 0.75, yCoord + 2.625, zCoord + 0.5 - dir.offsetZ * 1.125 - rot.offsetZ * 0.75, 0.0, 0.05, 0.0);
|
||||
|
||||
if(worldObj.rand.nextInt(20) == 0)
|
||||
worldObj.spawnParticle("cloud", xCoord + 0.5 + dir.offsetX * 0.75, yCoord + 2, zCoord + 0.5 + dir.offsetZ * 0.75, 0.0, 0.05, 0.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void networkUnpack(NBTTagCompound nbt) {
|
||||
this.progress = nbt.getIntArray("progress");
|
||||
this.bonus = nbt.getIntArray("bonus");
|
||||
this.heat = nbt.getInteger("heat");
|
||||
this.wasOn = nbt.getBoolean("wasOn");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
|
||||
this.progress = nbt.getIntArray("progress");
|
||||
this.bonus = nbt.getIntArray("bonus");
|
||||
this.heat = nbt.getInteger("heat");
|
||||
|
||||
NBTTagList list = nbt.getTagList("lastItems", 10);
|
||||
for(int i = 0; i < list.tagCount(); i++) {
|
||||
NBTTagCompound nbt1 = list.getCompoundTagAt(i);
|
||||
byte b0 = nbt1.getByte("lastItem");
|
||||
if(b0 >= 0 && b0 < lastItems.length) {
|
||||
lastItems[b0] = ItemStack.loadItemStackFromNBT(nbt1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
|
||||
nbt.setIntArray("progress", progress);
|
||||
nbt.setIntArray("bonus", bonus);
|
||||
nbt.setInteger("heat", heat);
|
||||
|
||||
NBTTagList list = new NBTTagList();
|
||||
for(int i = 0; i < lastItems.length; i++) {
|
||||
if(lastItems[i] != null) {
|
||||
NBTTagCompound nbt1 = new NBTTagCompound();
|
||||
nbt1.setByte("lastItem", (byte) i);
|
||||
lastItems[i].writeToNBT(nbt1);
|
||||
list.appendTag(nbt1);
|
||||
}
|
||||
}
|
||||
nbt.setTag("lastItems", list);
|
||||
}
|
||||
|
||||
protected void addBonus(ItemStack stack, int index) {
|
||||
|
||||
List<String> names = ItemStackUtil.getOreDictNames(stack);
|
||||
|
||||
for(String name : names) {
|
||||
if(name.startsWith("ore")) { this.bonus[index] += 25; return; }
|
||||
if(name.startsWith("log")) { this.bonus[index] += 50; return; }
|
||||
if(name.equals("anyTar")) { this.bonus[index] += 50; return; }
|
||||
}
|
||||
}
|
||||
|
||||
protected void tryPullHeat() {
|
||||
TileEntity con = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord);
|
||||
|
||||
if(con instanceof IHeatSource) {
|
||||
IHeatSource source = (IHeatSource) con;
|
||||
int diff = source.getHeatStored() - this.heat;
|
||||
|
||||
if(diff == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(diff > 0) {
|
||||
diff = (int) Math.ceil(diff * diffusion);
|
||||
source.useUpHeat(diff);
|
||||
this.heat += diff;
|
||||
if(this.heat > this.maxHeat)
|
||||
this.heat = this.maxHeat;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
this.heat = Math.max(this.heat - Math.max(this.heat / 1000, 1), 0);
|
||||
}
|
||||
|
||||
public boolean canSmelt(int index) {
|
||||
|
||||
if(this.heat < this.maxHeat / 3) return false;
|
||||
if(slots[index] == null) return false;
|
||||
|
||||
ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(slots[index]);
|
||||
|
||||
if(result == null) return false;
|
||||
if(slots[index + 3] == null) return true;
|
||||
|
||||
if(!result.isItemEqual(slots[index + 3])) return false;
|
||||
if(result.stackSize + slots[index + 3].stackSize > slots[index + 3].getMaxStackSize()) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getAccessibleSlotsFromSide(int meta) {
|
||||
return new int[] { 0, 1, 2, 3, 4, 5 };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemValidForSlot(int i, ItemStack itemStack) {
|
||||
|
||||
if(i < 3)
|
||||
return FurnaceRecipes.smelting().getSmeltingResult(itemStack) != null;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExtractItem(int i, ItemStack itemStack, int j) {
|
||||
return i > 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new ContainerFurnaceSteel(player.inventory, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new GUIFurnaceSteel(player.inventory, this);
|
||||
}
|
||||
|
||||
AxisAlignedBB bb = null;
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
|
||||
if(bb == null) {
|
||||
bb = AxisAlignedBB.getBoundingBox(
|
||||
xCoord - 1,
|
||||
yCoord,
|
||||
zCoord - 1,
|
||||
xCoord + 2,
|
||||
yCoord + 3,
|
||||
zCoord + 2
|
||||
);
|
||||
}
|
||||
|
||||
return bb;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double getMaxRenderDistanceSquared() {
|
||||
return 65536.0D;
|
||||
}
|
||||
}
|
||||
@ -96,8 +96,15 @@ public class TileEntityHeaterFirebox extends TileEntityMachineBase implements IG
|
||||
}
|
||||
}
|
||||
} else {
|
||||
burnTime--;
|
||||
|
||||
if(this.heatEnergy < this.maxHeatEnergy) {
|
||||
burnTime--;
|
||||
}
|
||||
this.wasOn = true;
|
||||
|
||||
if(worldObj.rand.nextInt(15) == 0) {
|
||||
worldObj.playSoundEffect(xCoord, yCoord, zCoord, "fire.fire", 1.0F, 0.5F + worldObj.rand.nextFloat() * 0.5F);
|
||||
}
|
||||
}
|
||||
|
||||
if(burnTime > 0) {
|
||||
|
||||
@ -88,7 +88,7 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl
|
||||
}
|
||||
|
||||
public boolean hasPower() {
|
||||
return power > 0;
|
||||
return power >= consumption;
|
||||
}
|
||||
|
||||
public boolean isProcessing() {
|
||||
@ -145,7 +145,6 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
this.hasPower();
|
||||
boolean flag1 = false;
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
@ -3833,6 +3833,7 @@ tile.machine_industrial_generator.name=Industrial Generator
|
||||
tile.machine_keyforge.name=Locksmith Table
|
||||
tile.machine_large_turbine.name=Industrial Steam Turbine
|
||||
tile.machine_liquefactor.name=Industrial Liquefaction Machine
|
||||
tile.machine_liquefactor.desc=Powerful universal machine to turn items into fluids.$Comes with versatile catalytic components, heating elements$and a built-in hydrator for petrochemical liquefaction.
|
||||
tile.machine_lithium_battery.name=Li-Ion Energy Storage Block
|
||||
tile.machine_microwave.name=Microwave
|
||||
tile.machine_mining_laser.name=Mining Laser
|
||||
@ -3871,6 +3872,7 @@ tile.machine_silex.name=Laser Isotope Separation Chamber (SILEX)
|
||||
tile.machine_siren.name=Siren
|
||||
tile.machine_solar_boiler.name=Solar Tower Boiler
|
||||
tile.machine_solidifier.name=Industrial Solidification Machine
|
||||
tile.machine_solidifier.desc=A universal machine fitted with cooling systems and other$versatile tools for turning fluids solid using various$processes such as freezing and petrochemical polymerization.
|
||||
tile.machine_spp_bottom.name=ZPE Potential Generator (Bottom)
|
||||
tile.machine_spp_top.name=ZPE Potential Generator (Top)
|
||||
tile.machine_storage_drum.name=Nuclear Waste Disposal Drum
|
||||
|
||||
788
src/main/resources/assets/hbm/models/machines/furnace_steel.obj
Normal file
788
src/main/resources/assets/hbm/models/machines/furnace_steel.obj
Normal file
@ -0,0 +1,788 @@
|
||||
# Blender v2.79 (sub 0) OBJ File: 'furnace_steel.blend'
|
||||
# www.blender.org
|
||||
o Plane
|
||||
v -1.500000 0.000000 1.500000
|
||||
v 1.500000 0.000000 1.500000
|
||||
v -1.500000 0.000000 -1.500000
|
||||
v 1.500000 0.000000 -1.500000
|
||||
v -1.500000 0.125000 1.500000
|
||||
v 1.500000 0.125000 1.500000
|
||||
v -1.500000 0.125000 -1.500000
|
||||
v 1.500000 0.125000 -1.500000
|
||||
v -1.125000 0.125000 -1.375000
|
||||
v -1.125000 0.125000 1.375000
|
||||
v 1.375000 0.125000 1.375000
|
||||
v 1.375000 0.125000 -1.375000
|
||||
v -1.125000 1.125000 -1.375000
|
||||
v -1.125000 1.125000 1.375000
|
||||
v 1.375000 1.125000 1.375000
|
||||
v 1.375000 1.125000 -1.375000
|
||||
v -1.125000 1.625000 -0.625000
|
||||
v -1.125000 1.625000 0.625000
|
||||
v 1.375000 1.625000 0.625000
|
||||
v 1.375000 1.625000 -0.625000
|
||||
v -1.375000 0.125000 0.125000
|
||||
v -1.125000 0.125000 0.125000
|
||||
v -1.375000 0.125000 -0.125000
|
||||
v -1.125000 0.125000 -0.125000
|
||||
v -1.375000 1.750000 -0.125000
|
||||
v -1.375000 1.750000 0.125000
|
||||
v -1.125000 1.750000 0.125000
|
||||
v -1.125000 1.750000 -0.125000
|
||||
v -0.125000 1.750000 0.125000
|
||||
v -0.125000 1.750000 -0.125000
|
||||
v -1.125000 2.000000 0.125000
|
||||
v -1.125000 2.000000 -0.125000
|
||||
v -0.125000 2.000000 0.125000
|
||||
v -0.125000 2.000000 -0.125000
|
||||
v 0.125000 1.750000 0.125000
|
||||
v 0.125000 1.750000 -0.125000
|
||||
v -0.125000 1.625000 0.125000
|
||||
v -0.125000 1.625000 -0.125000
|
||||
v 0.125000 1.625000 0.125000
|
||||
v 0.125000 1.625000 -0.125000
|
||||
v 0.125000 1.625000 0.375000
|
||||
v 0.125000 1.625000 0.625000
|
||||
v -0.125000 1.625000 0.375000
|
||||
v -0.125000 1.625000 0.625000
|
||||
v 0.125000 1.750000 0.375000
|
||||
v 0.125000 1.750000 0.625000
|
||||
v -0.125000 2.000000 0.375000
|
||||
v -0.125000 2.000000 0.625000
|
||||
v -1.125000 2.000000 0.375000
|
||||
v -1.125000 2.000000 0.625000
|
||||
v -0.125000 1.750000 0.375000
|
||||
v -0.125000 1.750000 0.625000
|
||||
v -1.125000 1.750000 0.375000
|
||||
v -1.125000 1.750000 0.625000
|
||||
v -1.375000 1.750000 0.625000
|
||||
v -1.375000 1.750000 0.375000
|
||||
v -1.125000 0.125000 0.375000
|
||||
v -1.375000 0.125000 0.375000
|
||||
v -1.125000 0.125000 0.625000
|
||||
v -1.375000 0.125000 0.625000
|
||||
v -1.375000 0.125000 1.125000
|
||||
v -1.125000 0.125000 1.125000
|
||||
v -1.375000 0.125000 0.875000
|
||||
v -1.125000 0.125000 0.875000
|
||||
v -1.375000 1.750000 0.875000
|
||||
v -1.375000 1.750000 1.125000
|
||||
v -1.125000 1.750000 1.125000
|
||||
v -1.125000 1.750000 0.875000
|
||||
v 0.875000 1.750000 1.125000
|
||||
v 0.875000 1.750000 0.875000
|
||||
v -1.125000 2.000000 1.125000
|
||||
v -1.125000 2.000000 0.875000
|
||||
v 0.875000 2.000000 1.125000
|
||||
v 0.875000 2.000000 0.875000
|
||||
v 1.125000 1.750000 1.125000
|
||||
v 1.125000 1.750000 0.875000
|
||||
v 0.875000 1.250000 1.125000
|
||||
v 0.875000 1.250000 0.875000
|
||||
v 1.125000 1.250000 1.125000
|
||||
v 1.125000 1.250000 0.875000
|
||||
v -1.375000 0.125000 -0.500000
|
||||
v -0.875000 0.125000 -0.500000
|
||||
v -1.375000 0.125000 -1.000000
|
||||
v -0.875000 0.125000 -1.000000
|
||||
v -1.375000 2.625000 -0.500000
|
||||
v -0.875000 2.625000 -0.500000
|
||||
v -1.375000 2.625000 -1.000000
|
||||
v -0.875000 2.625000 -1.000000
|
||||
v 0.375000 1.625000 0.375000
|
||||
v 1.125000 1.625000 0.375000
|
||||
v 0.375000 1.625000 -0.375000
|
||||
v 1.125000 1.625000 -0.375000
|
||||
v 0.375000 1.875000 -0.375000
|
||||
v 0.375000 1.875000 0.375000
|
||||
v 1.125000 1.875000 0.375000
|
||||
v 1.125000 1.875000 -0.375000
|
||||
v 0.500000 1.875000 -0.250000
|
||||
v 0.500000 1.875000 0.250000
|
||||
v 1.000000 1.875000 0.250000
|
||||
v 1.000000 1.875000 -0.250000
|
||||
v 0.500000 1.750000 -0.250000
|
||||
v 0.500000 1.750000 0.250000
|
||||
v 1.000000 1.750000 0.250000
|
||||
v 1.000000 1.750000 -0.250000
|
||||
v 0.500000 1.812500 -0.250000
|
||||
v 0.500000 1.812500 0.250000
|
||||
v 1.000000 1.812500 0.250000
|
||||
v 1.000000 1.812500 -0.250000
|
||||
v 0.000000 1.125000 -0.750000
|
||||
v 0.500000 1.125000 -0.750000
|
||||
v 0.000000 1.125000 -1.250000
|
||||
v 0.500000 1.125000 -1.250000
|
||||
v 0.000000 1.625000 -1.250000
|
||||
v 0.000000 1.625000 -0.750000
|
||||
v 0.500000 1.625000 -0.750000
|
||||
v 0.500000 1.625000 -1.250000
|
||||
v 0.125000 1.875000 -1.125000
|
||||
v 0.125000 1.875000 -0.875000
|
||||
v 0.375000 1.875000 -0.875000
|
||||
v 0.375000 1.875000 -1.125000
|
||||
v 0.750000 1.125000 -0.750000
|
||||
v 1.250000 1.125000 -0.750000
|
||||
v 0.750000 1.125000 -1.250000
|
||||
v 1.250000 1.125000 -1.250000
|
||||
v 0.750000 1.625000 -1.250000
|
||||
v 0.750000 1.625000 -0.750000
|
||||
v 1.250000 1.625000 -0.750000
|
||||
v 1.250000 1.625000 -1.250000
|
||||
v 0.875000 1.875000 -1.125000
|
||||
v 0.875000 1.875000 -0.875000
|
||||
v 1.125000 1.875000 -0.875000
|
||||
v 1.125000 1.875000 -1.125000
|
||||
v -0.750000 1.125000 -0.750000
|
||||
v -0.250000 1.125000 -0.750000
|
||||
v -0.750000 1.125000 -1.250000
|
||||
v -0.250000 1.125000 -1.250000
|
||||
v -0.750000 1.625000 -1.250000
|
||||
v -0.750000 1.625000 -0.750000
|
||||
v -0.250000 1.625000 -0.750000
|
||||
v -0.250000 1.625000 -1.250000
|
||||
v -0.625000 1.875000 -1.125000
|
||||
v -0.625000 1.875000 -0.875000
|
||||
v -0.375000 1.875000 -0.875000
|
||||
v -0.375000 1.875000 -1.125000
|
||||
v 1.375000 0.812500 0.750000
|
||||
v 1.375000 0.562500 0.750000
|
||||
v 1.375000 0.812500 -0.750000
|
||||
v 1.375000 0.562500 -0.750000
|
||||
v 1.375000 0.937500 0.625000
|
||||
v 1.375000 0.937500 -0.625000
|
||||
v 0.875000 0.812500 0.750000
|
||||
v 0.875000 0.562500 0.750000
|
||||
v 0.875000 0.562500 -0.750000
|
||||
v 0.875000 0.812500 -0.750000
|
||||
v 0.875000 0.937500 -0.625000
|
||||
v 0.875000 0.937500 0.625000
|
||||
v 1.250000 0.812500 0.750000
|
||||
v 1.250000 0.562500 0.750000
|
||||
v 1.250000 0.562500 -0.750000
|
||||
v 1.250000 0.812500 -0.750000
|
||||
v 1.250000 0.937500 -0.625000
|
||||
v 1.250000 0.937500 0.625000
|
||||
v -0.500000 0.000000 0.500000
|
||||
v 0.500000 0.000000 0.500000
|
||||
v -0.500000 0.000000 -0.500000
|
||||
v 0.500000 0.000000 -0.500000
|
||||
v 0.437500 0.000000 -0.437500
|
||||
v -0.437500 0.000000 -0.437500
|
||||
v 0.437500 0.000000 0.437500
|
||||
v -0.437500 0.000000 0.437500
|
||||
v -0.500000 0.062500 -0.500000
|
||||
v -0.500000 0.062500 0.500000
|
||||
v 0.500000 0.062500 0.500000
|
||||
v 0.500000 0.062500 -0.500000
|
||||
v 0.437500 0.062500 -0.437500
|
||||
v -0.437500 0.062500 -0.437500
|
||||
v 0.437500 0.062500 0.437500
|
||||
v -0.437500 0.062500 0.437500
|
||||
vt 0.087156 0.690000
|
||||
vt 0.151376 0.550000
|
||||
vt 0.151376 0.690000
|
||||
vt 0.229358 0.500000
|
||||
vt 0.220183 0.920000
|
||||
vt 0.220183 0.520000
|
||||
vt 0.238532 0.980000
|
||||
vt 0.238532 0.500000
|
||||
vt 0.000000 0.500000
|
||||
vt 0.009174 0.980000
|
||||
vt 0.000000 0.980000
|
||||
vt 0.229358 0.480000
|
||||
vt 0.009174 0.500000
|
||||
vt 0.009174 0.480000
|
||||
vt 0.009174 1.000000
|
||||
vt 0.229358 0.980000
|
||||
vt 0.229358 1.000000
|
||||
vt 0.018349 0.920000
|
||||
vt 0.018349 0.520000
|
||||
vt 0.614679 0.000000
|
||||
vt 0.458716 0.070000
|
||||
vt 0.412844 0.000000
|
||||
vt 0.798165 0.000000
|
||||
vt 0.614679 0.160000
|
||||
vt 0.229358 0.160000
|
||||
vt 0.229358 0.000000
|
||||
vt 0.467890 0.240000
|
||||
vt 0.559633 0.640000
|
||||
vt 0.467890 0.640000
|
||||
vt 0.614679 0.640000
|
||||
vt 0.559633 0.240000
|
||||
vt 0.614679 0.240000
|
||||
vt 0.412844 0.240000
|
||||
vt 0.412844 0.640000
|
||||
vt 1.000000 0.000000
|
||||
vt 0.944954 0.240000
|
||||
vt 0.733945 0.800000
|
||||
vt 0.807339 0.760000
|
||||
vt 0.807339 0.800000
|
||||
vt 0.733945 0.640000
|
||||
vt 0.807339 0.680000
|
||||
vt 0.733945 0.680000
|
||||
vt 0.596330 0.640000
|
||||
vt 0.715596 0.680000
|
||||
vt 0.596330 0.680000
|
||||
vt 0.596330 0.720000
|
||||
vt 0.715596 0.760000
|
||||
vt 0.596330 0.760000
|
||||
vt 0.715596 0.800000
|
||||
vt 0.596330 0.800000
|
||||
vt 0.715596 0.720000
|
||||
vt 0.733945 0.720000
|
||||
vt 0.807339 0.720000
|
||||
vt 0.733945 0.760000
|
||||
vt 0.715596 0.800000
|
||||
vt 0.715596 0.680000
|
||||
vt 0.825688 0.680000
|
||||
vt 0.834862 0.720000
|
||||
vt 0.825688 0.720000
|
||||
vt 0.825688 0.680000
|
||||
vt 0.825688 0.760000
|
||||
vt 0.825688 0.800000
|
||||
vt 0.825688 0.640000
|
||||
vt 0.834862 0.680000
|
||||
vt 0.825688 0.680000
|
||||
vt 0.834862 0.800000
|
||||
vt 0.825688 0.800000
|
||||
vt 0.834862 0.760000
|
||||
vt 0.825688 0.640000
|
||||
vt 0.834862 0.680000
|
||||
vt 0.825688 0.720000
|
||||
vt 0.834862 0.760000
|
||||
vt 0.825688 0.760000
|
||||
vt 0.834862 0.800000
|
||||
vt 0.825688 0.800000
|
||||
vt 0.807339 0.800000
|
||||
vt 0.807339 0.760000
|
||||
vt 0.825688 0.800000
|
||||
vt 0.807339 0.720000
|
||||
vt 0.807339 0.680000
|
||||
vt 0.825688 0.680000
|
||||
vt 0.834862 0.720000
|
||||
vt 0.733945 0.680000
|
||||
vt 0.733945 0.720000
|
||||
vt 0.715596 0.680000
|
||||
vt 0.715596 0.800000
|
||||
vt 0.733945 0.760000
|
||||
vt 0.733945 0.800000
|
||||
vt 0.715596 0.720000
|
||||
vt 0.715596 0.760000
|
||||
vt 0.596330 0.680000
|
||||
vt 0.596330 0.720000
|
||||
vt 0.596330 0.760000
|
||||
vt 0.715596 0.800000
|
||||
vt 0.596330 0.800000
|
||||
vt 0.596330 0.640000
|
||||
vt 0.715596 0.680000
|
||||
vt 0.733945 0.640000
|
||||
vt 0.376147 0.800000
|
||||
vt 0.522936 0.760000
|
||||
vt 0.522936 0.800000
|
||||
vt 0.376147 0.640000
|
||||
vt 0.522936 0.680000
|
||||
vt 0.376147 0.680000
|
||||
vt 0.238532 0.640000
|
||||
vt 0.357798 0.680000
|
||||
vt 0.238532 0.680000
|
||||
vt 0.238532 0.720000
|
||||
vt 0.357798 0.760000
|
||||
vt 0.238532 0.760000
|
||||
vt 0.357798 0.800000
|
||||
vt 0.238532 0.800000
|
||||
vt 0.357798 0.720000
|
||||
vt 0.376147 0.720000
|
||||
vt 0.522936 0.720000
|
||||
vt 0.376147 0.760000
|
||||
vt 0.357798 0.800000
|
||||
vt 0.357798 0.680000
|
||||
vt 0.541284 0.680000
|
||||
vt 0.577982 0.720000
|
||||
vt 0.541284 0.720000
|
||||
vt 0.541284 0.680000
|
||||
vt 0.541284 0.760000
|
||||
vt 0.541284 0.800000
|
||||
vt 0.577982 0.800000
|
||||
vt 0.541284 0.800000
|
||||
vt 0.577982 0.760000
|
||||
vt 0.541284 0.640000
|
||||
vt 0.577982 0.680000
|
||||
vt 0.871560 0.640000
|
||||
vt 0.834862 0.240000
|
||||
vt 0.871560 0.240000
|
||||
vt 0.944954 0.640000
|
||||
vt 0.908257 0.240000
|
||||
vt 0.944954 0.240000
|
||||
vt 0.908257 0.640000
|
||||
vt 0.981651 0.640000
|
||||
vt 0.981651 0.240000
|
||||
vt 0.834862 0.720000
|
||||
vt 0.871560 0.720000
|
||||
vt 0.467890 0.130000
|
||||
vt 0.669725 0.280000
|
||||
vt 0.623853 0.300000
|
||||
vt 0.614679 0.280000
|
||||
vt 0.834862 0.240000
|
||||
vt 0.779817 0.280000
|
||||
vt 0.779817 0.240000
|
||||
vt 0.669725 0.240000
|
||||
vt 0.614679 0.240000
|
||||
vt 0.724771 0.280000
|
||||
vt 0.724771 0.240000
|
||||
vt 0.678899 0.400000
|
||||
vt 0.715596 0.380000
|
||||
vt 0.715596 0.400000
|
||||
vt 0.614679 0.400000
|
||||
vt 0.660550 0.380000
|
||||
vt 0.669725 0.400000
|
||||
vt 0.660550 0.300000
|
||||
vt 0.623853 0.380000
|
||||
vt 0.678899 0.300000
|
||||
vt 0.678899 0.380000
|
||||
vt 0.724771 0.380000
|
||||
vt 0.715596 0.300000
|
||||
vt 0.724771 0.300000
|
||||
vt 0.669725 0.300000
|
||||
vt 0.669725 0.380000
|
||||
vt 0.715596 0.280000
|
||||
vt 0.678899 0.280000
|
||||
vt 0.623853 0.300000
|
||||
vt 0.660550 0.380000
|
||||
vt 0.623853 0.380000
|
||||
vt 0.688073 0.480000
|
||||
vt 0.660550 0.520000
|
||||
vt 0.651376 0.480000
|
||||
vt 0.688073 0.480000
|
||||
vt 0.660550 0.520000
|
||||
vt 0.651376 0.480000
|
||||
vt 0.651376 0.400000
|
||||
vt 0.614679 0.480000
|
||||
vt 0.614679 0.400000
|
||||
vt 0.724771 0.400000
|
||||
vt 0.688073 0.400000
|
||||
vt 0.761468 0.400000
|
||||
vt 0.724771 0.480000
|
||||
vt 0.623853 0.520000
|
||||
vt 0.642202 0.560000
|
||||
vt 0.623853 0.560000
|
||||
vt 0.761468 0.480000
|
||||
vt 0.733945 0.520000
|
||||
vt 0.697248 0.520000
|
||||
vt 0.651376 0.400000
|
||||
vt 0.614679 0.480000
|
||||
vt 0.614679 0.400000
|
||||
vt 0.724771 0.400000
|
||||
vt 0.688073 0.400000
|
||||
vt 0.761468 0.400000
|
||||
vt 0.724771 0.480000
|
||||
vt 0.623853 0.520000
|
||||
vt 0.642202 0.560000
|
||||
vt 0.623853 0.560000
|
||||
vt 0.761468 0.480000
|
||||
vt 0.733945 0.520000
|
||||
vt 0.697248 0.520000
|
||||
vt 0.688073 0.480000
|
||||
vt 0.660550 0.520000
|
||||
vt 0.651376 0.480000
|
||||
vt 0.651376 0.400000
|
||||
vt 0.614679 0.480000
|
||||
vt 0.614679 0.400000
|
||||
vt 0.724771 0.400000
|
||||
vt 0.688073 0.400000
|
||||
vt 0.761468 0.400000
|
||||
vt 0.724771 0.480000
|
||||
vt 0.623853 0.520000
|
||||
vt 0.642202 0.560000
|
||||
vt 0.623853 0.560000
|
||||
vt 0.761468 0.480000
|
||||
vt 0.733945 0.520000
|
||||
vt 0.697248 0.520000
|
||||
vt 0.412844 0.160000
|
||||
vt 0.568807 0.070000
|
||||
vt 0.559633 0.130000
|
||||
vt 0.412844 0.300000
|
||||
vt 0.376147 0.280000
|
||||
vt 0.412844 0.280000
|
||||
vt 0.275229 0.300000
|
||||
vt 0.376147 0.240000
|
||||
vt 0.366972 0.300000
|
||||
vt 0.275229 0.380000
|
||||
vt 0.366972 0.380000
|
||||
vt 0.376147 0.160000
|
||||
vt 0.266055 0.240000
|
||||
vt 0.266055 0.160000
|
||||
vt 0.229358 0.280000
|
||||
vt 0.266055 0.300000
|
||||
vt 0.229358 0.300000
|
||||
vt 0.412844 0.240000
|
||||
vt 0.229358 0.240000
|
||||
vt 0.266055 0.280000
|
||||
vt 0.275229 0.440000
|
||||
vt 0.376147 0.380000
|
||||
vt 0.366972 0.440000
|
||||
vt 0.087156 0.700000
|
||||
vt 0.087156 0.550000
|
||||
vt 0.151376 0.540000
|
||||
vt 0.155963 0.520000
|
||||
vt 0.082569 0.530000
|
||||
vt 0.082569 0.520000
|
||||
vt 0.082569 0.720000
|
||||
vt 0.155963 0.710000
|
||||
vt 0.155963 0.720000
|
||||
vt 0.155963 0.320000
|
||||
vt 0.155963 0.160000
|
||||
vt 0.229358 0.000000
|
||||
vt 0.082569 0.160000
|
||||
vt 0.009174 0.000000
|
||||
vt 0.082569 0.320000
|
||||
vt 0.077982 0.540000
|
||||
vt 0.082569 0.690000
|
||||
vt 0.077982 0.700000
|
||||
vt 0.155963 0.530000
|
||||
vt 0.087156 0.540000
|
||||
vt 0.160550 0.700000
|
||||
vt 0.155963 0.550000
|
||||
vt 0.160550 0.540000
|
||||
vt 0.082569 0.710000
|
||||
vt 0.151376 0.700000
|
||||
vt 0.165138 0.700000
|
||||
vt 0.165138 0.540000
|
||||
vt 0.073394 0.540000
|
||||
vt 0.073394 0.700000
|
||||
vt 0.082569 0.550000
|
||||
vt 0.155963 0.690000
|
||||
vt 0.798165 0.160000
|
||||
vt 1.000000 0.160000
|
||||
vt 0.853211 0.240000
|
||||
vt 0.807339 0.640000
|
||||
vt 0.715596 0.640000
|
||||
vt 0.834862 0.640000
|
||||
vt 0.834862 0.640000
|
||||
vt 0.715596 0.640000
|
||||
vt 0.807339 0.640000
|
||||
vt 0.522936 0.640000
|
||||
vt 0.357798 0.640000
|
||||
vt 0.577982 0.640000
|
||||
vt 0.834862 0.640000
|
||||
vt 0.834862 0.280000
|
||||
vt 0.660550 0.300000
|
||||
vt 0.678899 0.520000
|
||||
vt 0.678899 0.520000
|
||||
vt 0.642202 0.520000
|
||||
vt 0.752294 0.520000
|
||||
vt 0.715596 0.520000
|
||||
vt 0.642202 0.520000
|
||||
vt 0.752294 0.520000
|
||||
vt 0.715596 0.520000
|
||||
vt 0.678899 0.520000
|
||||
vt 0.642202 0.520000
|
||||
vt 0.752294 0.520000
|
||||
vt 0.715596 0.520000
|
||||
vt 0.458716 0.110000
|
||||
vt 0.568807 0.110000
|
||||
vt 0.376147 0.300000
|
||||
vt 0.266055 0.420000
|
||||
vt 0.266055 0.380000
|
||||
vt 0.376147 0.420000
|
||||
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 1.0000 0.0000 0.0000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.8321 -0.5547
|
||||
vn 0.0000 0.8321 0.5547
|
||||
vn -0.7071 0.7071 0.0000
|
||||
vn 0.7071 0.7071 0.0000
|
||||
vn 0.0000 0.4472 -0.8944
|
||||
vn 0.0000 0.4472 0.8944
|
||||
vn 0.8944 0.4472 0.0000
|
||||
vn -0.8944 0.4472 0.0000
|
||||
vn 0.0000 -0.7071 0.7071
|
||||
vn 0.0000 -0.7071 -0.7071
|
||||
s off
|
||||
f 169/1/1 168/2/1 167/3/1
|
||||
f 8/4/2 9/5/2 12/6/2
|
||||
f 3/7/3 8/4/3 4/8/3
|
||||
f 2/9/4 5/10/4 1/11/4
|
||||
f 4/12/5 6/13/5 2/14/5
|
||||
f 1/15/6 7/16/6 3/17/6
|
||||
f 6/13/2 10/18/2 5/10/2
|
||||
f 8/4/2 11/19/2 6/13/2
|
||||
f 5/10/2 9/5/2 7/16/2
|
||||
f 12/20/5 146/21/5 11/22/5
|
||||
f 9/23/3 16/24/3 12/20/3
|
||||
f 11/22/4 14/25/4 10/26/4
|
||||
f 19/27/2 17/28/2 18/29/2
|
||||
f 13/30/7 20/31/7 16/32/7
|
||||
f 15/33/8 18/29/8 14/34/8
|
||||
f 9/23/6 10/35/6 18/36/6
|
||||
f 28/37/3 34/38/3 30/39/3
|
||||
f 28/40/1 29/41/1 27/42/1
|
||||
f 24/43/5 27/44/5 22/45/5
|
||||
f 21/46/6 25/47/6 23/48/6
|
||||
f 23/48/3 28/49/3 24/50/3
|
||||
f 22/45/4 26/51/4 21/46/4
|
||||
f 29/41/4 31/52/4 27/42/4
|
||||
f 34/38/2 31/52/2 33/53/2
|
||||
f 26/51/9 32/54/9 25/47/9
|
||||
f 25/55/3 32/54/3 28/37/3
|
||||
f 27/42/4 31/52/4 26/56/4
|
||||
f 29/57/4 39/58/4 35/59/4
|
||||
f 29/41/4 35/60/4 33/53/4
|
||||
f 33/53/10 36/61/10 34/38/10
|
||||
f 30/39/3 34/38/3 36/62/3
|
||||
f 51/63/6 44/64/6 52/65/6
|
||||
f 36/61/3 38/66/3 30/67/3
|
||||
f 35/59/5 40/68/5 36/61/5
|
||||
f 30/69/6 37/70/6 29/57/6
|
||||
f 46/71/5 41/72/5 45/73/5
|
||||
f 45/73/3 43/74/3 51/75/3
|
||||
f 51/76/3 47/77/3 45/78/3
|
||||
f 48/79/10 45/73/10 47/77/10
|
||||
f 52/80/4 46/81/4 48/79/4
|
||||
f 52/65/4 42/82/4 46/71/4
|
||||
f 54/83/4 50/84/4 55/85/4
|
||||
f 56/86/3 49/87/3 53/88/3
|
||||
f 55/89/9 49/87/9 56/90/9
|
||||
f 47/77/2 50/84/2 48/79/2
|
||||
f 52/80/4 50/84/4 54/83/4
|
||||
f 59/91/4 55/89/4 60/92/4
|
||||
f 58/93/3 53/94/3 57/95/3
|
||||
f 60/92/6 56/90/6 58/93/6
|
||||
f 57/96/5 54/97/5 59/91/5
|
||||
f 53/98/1 52/80/1 54/83/1
|
||||
f 53/88/3 47/77/3 51/76/3
|
||||
f 68/99/3 74/100/3 70/101/3
|
||||
f 68/102/1 69/103/1 67/104/1
|
||||
f 64/105/5 67/106/5 62/107/5
|
||||
f 61/108/6 65/109/6 63/110/6
|
||||
f 63/110/3 68/111/3 64/112/3
|
||||
f 62/107/4 66/113/4 61/108/4
|
||||
f 69/103/4 71/114/4 67/104/4
|
||||
f 74/100/2 71/114/2 73/115/2
|
||||
f 66/113/9 72/116/9 65/109/9
|
||||
f 65/117/3 72/116/3 68/99/3
|
||||
f 67/104/4 71/114/4 66/118/4
|
||||
f 69/119/4 79/120/4 75/121/4
|
||||
f 69/103/4 75/122/4 73/115/4
|
||||
f 73/115/10 76/123/10 74/100/10
|
||||
f 70/101/3 74/100/3 76/124/3
|
||||
f 76/123/3 78/125/3 70/126/3
|
||||
f 75/121/5 80/127/5 76/123/5
|
||||
f 70/128/6 77/129/6 69/119/6
|
||||
f 88/130/5 82/131/5 84/132/5
|
||||
f 85/133/6 83/134/6 81/135/6
|
||||
f 87/136/3 84/132/3 83/134/3
|
||||
f 86/137/4 81/135/4 82/138/4
|
||||
f 85/139/2 88/130/2 87/140/2
|
||||
f 149/141/5 20/31/5 19/27/5
|
||||
f 96/142/2 99/143/2 95/144/2
|
||||
f 90/145/4 94/146/4 89/147/4
|
||||
f 92/148/5 95/144/5 90/149/5
|
||||
f 89/147/6 93/150/6 91/151/6
|
||||
f 91/151/3 96/142/3 92/148/3
|
||||
f 98/152/5 101/153/5 97/154/5
|
||||
f 94/155/2 97/156/2 93/157/2
|
||||
f 93/157/2 100/158/2 96/142/2
|
||||
f 95/144/2 98/159/2 94/155/2
|
||||
f 103/160/2 101/153/2 102/161/2
|
||||
f 97/162/4 104/163/4 100/164/4
|
||||
f 99/165/3 102/161/3 98/166/3
|
||||
f 100/167/6 103/160/6 99/168/6
|
||||
f 107/169/2 105/170/2 106/171/2
|
||||
f 125/172/11 132/173/11 128/174/11
|
||||
f 113/175/11 120/176/11 116/177/11
|
||||
f 112/178/5 115/179/5 110/180/5
|
||||
f 109/181/6 113/175/6 111/182/6
|
||||
f 111/182/3 116/177/3 112/178/3
|
||||
f 110/183/4 114/184/4 109/181/4
|
||||
f 119/185/2 117/186/2 118/187/2
|
||||
f 115/188/12 118/189/12 114/184/12
|
||||
f 116/177/13 119/185/13 115/179/13
|
||||
f 114/184/14 117/190/14 113/175/14
|
||||
f 124/191/5 127/192/5 122/193/5
|
||||
f 121/194/6 125/172/6 123/195/6
|
||||
f 123/195/3 128/174/3 124/191/3
|
||||
f 122/196/4 126/197/4 121/194/4
|
||||
f 131/198/2 129/199/2 130/200/2
|
||||
f 127/201/12 130/202/12 126/197/12
|
||||
f 128/174/13 131/198/13 127/192/13
|
||||
f 126/197/14 129/203/14 125/172/14
|
||||
f 137/204/11 144/205/11 140/206/11
|
||||
f 136/207/5 139/208/5 134/209/5
|
||||
f 133/210/6 137/204/6 135/211/6
|
||||
f 135/211/3 140/206/3 136/207/3
|
||||
f 134/212/4 138/213/4 133/210/4
|
||||
f 143/214/2 141/215/2 142/216/2
|
||||
f 139/217/12 142/218/12 138/213/12
|
||||
f 140/206/13 143/214/13 139/208/13
|
||||
f 138/213/14 141/219/14 137/204/14
|
||||
f 146/21/5 15/220/5 11/22/5
|
||||
f 16/24/5 148/221/5 12/20/5
|
||||
f 150/222/5 16/24/5 20/31/5
|
||||
f 15/220/5 149/141/5 19/27/5
|
||||
f 150/223/15 154/224/15 147/225/15
|
||||
f 156/226/5 153/227/5 155/228/5
|
||||
f 149/229/1 155/228/1 150/230/1
|
||||
f 148/231/2 152/232/2 146/233/2
|
||||
f 145/234/16 156/235/16 149/236/16
|
||||
f 147/225/4 153/227/4 148/237/4
|
||||
f 146/238/3 151/239/3 145/234/3
|
||||
f 162/240/5 159/241/5 161/242/5
|
||||
f 167/3/5 177/243/5 169/1/5
|
||||
f 170/244/6 176/245/6 168/2/6
|
||||
f 165/246/5 172/247/5 163/248/5
|
||||
f 164/249/6 174/250/6 166/251/6
|
||||
f 2/14/1 166/252/1 4/12/1
|
||||
f 4/12/1 165/253/1 3/254/1
|
||||
f 3/254/1 163/255/1 1/256/1
|
||||
f 1/256/1 164/257/1 2/14/1
|
||||
f 172/258/1 177/259/1 173/260/1
|
||||
f 171/261/1 178/262/1 172/247/1
|
||||
f 174/263/1 176/264/1 171/265/1
|
||||
f 173/266/1 175/267/1 174/250/1
|
||||
f 166/268/4 171/265/4 165/269/4
|
||||
f 163/270/3 173/260/3 164/271/3
|
||||
f 169/1/4 178/272/4 170/244/4
|
||||
f 168/2/3 175/273/3 167/3/3
|
||||
f 169/1/1 170/244/1 168/2/1
|
||||
f 8/4/2 7/16/2 9/5/2
|
||||
f 3/7/3 7/16/3 8/4/3
|
||||
f 2/9/4 6/13/4 5/10/4
|
||||
f 4/12/5 8/4/5 6/13/5
|
||||
f 1/15/6 5/10/6 7/16/6
|
||||
f 6/13/2 11/19/2 10/18/2
|
||||
f 8/4/2 12/6/2 11/19/2
|
||||
f 5/10/2 10/18/2 9/5/2
|
||||
f 12/20/5 148/221/5 146/21/5
|
||||
f 9/23/3 13/274/3 16/24/3
|
||||
f 11/22/4 15/220/4 14/25/4
|
||||
f 19/27/2 20/31/2 17/28/2
|
||||
f 13/30/7 17/28/7 20/31/7
|
||||
f 15/33/8 19/27/8 18/29/8
|
||||
f 10/35/6 14/275/6 18/36/6
|
||||
f 18/36/6 17/276/6 9/23/6
|
||||
f 17/276/6 13/274/6 9/23/6
|
||||
f 28/37/3 32/54/3 34/38/3
|
||||
f 28/40/1 30/277/1 29/41/1
|
||||
f 24/43/5 28/278/5 27/44/5
|
||||
f 21/46/6 26/51/6 25/47/6
|
||||
f 23/48/3 25/47/3 28/49/3
|
||||
f 22/45/4 27/44/4 26/51/4
|
||||
f 29/41/4 33/53/4 31/52/4
|
||||
f 34/38/2 32/54/2 31/52/2
|
||||
f 26/51/9 31/52/9 32/54/9
|
||||
f 29/57/4 37/70/4 39/58/4
|
||||
f 33/53/10 35/59/10 36/61/10
|
||||
f 51/63/6 43/279/6 44/64/6
|
||||
f 36/61/3 40/68/3 38/66/3
|
||||
f 35/59/5 39/58/5 40/68/5
|
||||
f 30/69/6 38/280/6 37/70/6
|
||||
f 46/71/5 42/82/5 41/72/5
|
||||
f 45/73/3 41/72/3 43/74/3
|
||||
f 48/79/10 46/71/10 45/73/10
|
||||
f 52/65/4 44/64/4 42/82/4
|
||||
f 55/89/9 50/84/9 49/87/9
|
||||
f 47/77/2 49/87/2 50/84/2
|
||||
f 52/80/4 48/79/4 50/84/4
|
||||
f 59/91/4 54/97/4 55/89/4
|
||||
f 58/93/3 56/90/3 53/94/3
|
||||
f 60/92/6 55/89/6 56/90/6
|
||||
f 57/96/5 53/281/5 54/97/5
|
||||
f 53/98/1 51/282/1 52/80/1
|
||||
f 53/88/3 49/87/3 47/77/3
|
||||
f 68/99/3 72/116/3 74/100/3
|
||||
f 68/102/1 70/283/1 69/103/1
|
||||
f 64/105/5 68/284/5 67/106/5
|
||||
f 61/108/6 66/113/6 65/109/6
|
||||
f 63/110/3 65/109/3 68/111/3
|
||||
f 62/107/4 67/106/4 66/113/4
|
||||
f 69/103/4 73/115/4 71/114/4
|
||||
f 74/100/2 72/116/2 71/114/2
|
||||
f 66/113/9 71/114/9 72/116/9
|
||||
f 69/119/4 77/129/4 79/120/4
|
||||
f 73/115/10 75/121/10 76/123/10
|
||||
f 76/123/3 80/127/3 78/125/3
|
||||
f 75/121/5 79/120/5 80/127/5
|
||||
f 70/128/6 78/285/6 77/129/6
|
||||
f 88/130/5 86/286/5 82/131/5
|
||||
f 85/133/6 87/136/6 83/134/6
|
||||
f 87/136/3 88/130/3 84/132/3
|
||||
f 86/137/4 85/133/4 81/135/4
|
||||
f 85/139/2 86/286/2 88/130/2
|
||||
f 149/141/5 150/222/5 20/31/5
|
||||
f 96/142/2 100/158/2 99/143/2
|
||||
f 90/145/4 95/287/4 94/146/4
|
||||
f 92/148/5 96/142/5 95/144/5
|
||||
f 89/147/6 94/146/6 93/150/6
|
||||
f 91/151/3 93/150/3 96/142/3
|
||||
f 98/152/5 102/161/5 101/153/5
|
||||
f 94/155/2 98/159/2 97/156/2
|
||||
f 93/157/2 97/156/2 100/158/2
|
||||
f 95/144/2 99/143/2 98/159/2
|
||||
f 103/160/2 104/163/2 101/153/2
|
||||
f 97/162/4 101/153/4 104/163/4
|
||||
f 99/165/3 103/160/3 102/161/3
|
||||
f 100/167/6 104/163/6 103/160/6
|
||||
f 107/169/2 108/288/2 105/170/2
|
||||
f 125/172/11 129/289/11 132/173/11
|
||||
f 113/175/11 117/290/11 120/176/11
|
||||
f 112/178/5 116/177/5 115/179/5
|
||||
f 109/181/6 114/184/6 113/175/6
|
||||
f 111/182/3 113/175/3 116/177/3
|
||||
f 110/183/4 115/188/4 114/184/4
|
||||
f 119/185/2 120/291/2 117/186/2
|
||||
f 115/188/12 119/292/12 118/189/12
|
||||
f 116/177/13 120/291/13 119/185/13
|
||||
f 114/184/14 118/293/14 117/190/14
|
||||
f 124/191/5 128/174/5 127/192/5
|
||||
f 121/194/6 126/197/6 125/172/6
|
||||
f 123/195/3 125/172/3 128/174/3
|
||||
f 122/196/4 127/201/4 126/197/4
|
||||
f 131/198/2 132/294/2 129/199/2
|
||||
f 127/201/12 131/295/12 130/202/12
|
||||
f 128/174/13 132/294/13 131/198/13
|
||||
f 126/197/14 130/296/14 129/203/14
|
||||
f 137/204/11 141/297/11 144/205/11
|
||||
f 136/207/5 140/206/5 139/208/5
|
||||
f 133/210/6 138/213/6 137/204/6
|
||||
f 135/211/3 137/204/3 140/206/3
|
||||
f 134/212/4 139/217/4 138/213/4
|
||||
f 143/214/2 144/298/2 141/215/2
|
||||
f 139/217/12 143/299/12 142/218/12
|
||||
f 140/206/13 144/298/13 143/214/13
|
||||
f 138/213/14 142/300/14 141/219/14
|
||||
f 146/21/5 145/301/5 15/220/5
|
||||
f 16/24/5 147/302/5 148/221/5
|
||||
f 150/222/5 147/302/5 16/24/5
|
||||
f 15/220/5 145/301/5 149/141/5
|
||||
f 150/223/15 155/303/15 154/224/15
|
||||
f 156/226/5 151/239/5 152/232/5
|
||||
f 152/232/5 153/227/5 156/226/5
|
||||
f 153/227/5 154/224/5 155/228/5
|
||||
f 149/229/1 156/226/1 155/228/1
|
||||
f 148/231/2 153/227/2 152/232/2
|
||||
f 145/234/16 151/239/16 156/235/16
|
||||
f 147/225/4 154/224/4 153/227/4
|
||||
f 146/238/3 152/232/3 151/239/3
|
||||
f 162/240/5 157/304/5 158/305/5
|
||||
f 158/305/5 159/241/5 162/240/5
|
||||
f 159/241/5 160/306/5 161/242/5
|
||||
f 167/3/5 175/267/5 177/243/5
|
||||
f 170/244/6 178/262/6 176/245/6
|
||||
f 165/246/5 171/261/5 172/247/5
|
||||
f 164/249/6 173/266/6 174/250/6
|
||||
f 2/14/1 164/257/1 166/252/1
|
||||
f 4/12/1 166/252/1 165/253/1
|
||||
f 3/254/1 165/253/1 163/255/1
|
||||
f 1/256/1 163/255/1 164/257/1
|
||||
f 172/258/1 178/272/1 177/259/1
|
||||
f 171/261/1 176/245/1 178/262/1
|
||||
f 174/263/1 175/273/1 176/264/1
|
||||
f 173/266/1 177/243/1 175/267/1
|
||||
f 166/268/4 174/263/4 171/265/4
|
||||
f 163/270/3 172/258/3 173/260/3
|
||||
f 169/1/4 177/259/4 178/272/4
|
||||
f 168/2/3 176/264/3 175/273/3
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 7.3 KiB |
Loading…
x
Reference in New Issue
Block a user