fireball...box, firebox

This commit is contained in:
Bob 2022-07-17 23:02:55 +02:00
parent 6c74dd71b4
commit 461101dd72
21 changed files with 1541 additions and 39 deletions

View File

@ -0,0 +1,12 @@
package api.hbm.tile;
public interface IHeatSource {
public int getHeatStored();
/**
* Removes heat from the system. Implementation has to include the checks preventing the heat from going into the negative.
* @param heat
*/
public void useUpHeat(int heat);
}

View File

@ -623,6 +623,8 @@ public class ModBlocks {
public static Block cel_prime_battery;
public static Block cel_prime_port;
public static Block cel_prime_tanks;
public static Block heater_firebox;
public static Block furnace_iron;
@ -1788,6 +1790,8 @@ public class ModBlocks {
semtex = new BlockSemtex().setBlockName("semtex").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":semtex");
c4 = new BlockC4().setBlockName("c4").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":c4");
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");
machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
@ -2959,6 +2963,7 @@ public class ModBlocks {
GameRegistry.registerBlock(press_preheater, press_preheater.getUnlocalizedName());
GameRegistry.registerBlock(machine_press, machine_press.getUnlocalizedName());
GameRegistry.registerBlock(machine_epress, machine_epress.getUnlocalizedName());
GameRegistry.registerBlock(heater_firebox, heater_firebox.getUnlocalizedName());
GameRegistry.registerBlock(furnace_iron, furnace_iron.getUnlocalizedName());
GameRegistry.registerBlock(machine_difurnace_off, machine_difurnace_off.getUnlocalizedName());
GameRegistry.registerBlock(machine_difurnace_on, machine_difurnace_on.getUnlocalizedName());

View File

@ -0,0 +1,40 @@
package com.hbm.blocks.machine;
import com.hbm.blocks.BlockDummyable;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.TileEntityHeaterFirebox;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class HeaterFirebox extends BlockDummyable {
public HeaterFirebox() {
super(Material.iron);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12)
return new TileEntityHeaterFirebox();
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[] {0, 0, 1, 1, 1, 1};
}
@Override
public int getOffset() {
return 1;
}
}

View File

@ -0,0 +1,73 @@
package com.hbm.inventory.container;
import com.hbm.tileentity.machine.TileEntityHeaterFirebox;
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 ContainerFirebox extends Container {
protected TileEntityHeaterFirebox firebox;
public ContainerFirebox(InventoryPlayer invPlayer, TileEntityHeaterFirebox furnace) {
this.firebox = furnace;
this.firebox.openInventory();
this.addSlotToContainer(new Slot(furnace, 0, 44, 27));
this.addSlotToContainer(new Slot(furnace, 1, 62, 27));
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, 86 + i * 18));
}
}
for(int i = 0; i < 9; i++) {
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 144));
}
}
@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 <= 1) {
if(!this.mergeItemStack(originalStack, 2, this.inventorySlots.size(), true)) {
return null;
}
slot.onSlotChange(originalStack, stack);
} else if(!this.mergeItemStack(originalStack, 0, 2, false)) {
return null;
}
if(originalStack.stackSize == 0) {
slot.putStack((ItemStack) null);
} else {
slot.onSlotChanged();
}
}
return stack;
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return firebox.isUseableByPlayer(player);
}
@Override
public void onContainerClosed(EntityPlayer player) {
super.onContainerClosed(player);
this.firebox.closeInventory();
}
}

View File

@ -0,0 +1,78 @@
package com.hbm.inventory.gui;
import java.util.List;
import org.lwjgl.opengl.GL11;
import com.hbm.inventory.container.ContainerFirebox;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityHeaterFirebox;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Slot;
import net.minecraft.util.ResourceLocation;
public class GUIFirebox extends GuiInfoContainer {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_firebox.png");
private TileEntityHeaterFirebox diFurnace;
public GUIFirebox(InventoryPlayer invPlayer, TileEntityHeaterFirebox tedf) {
super(new ContainerFirebox(invPlayer, tedf));
diFurnace = tedf;
this.xSize = 176;
this.ySize = 168;
}
@Override
public void drawScreen(int x, int y, float interp) {
super.drawScreen(x, y, interp);
if(this.mc.thePlayer.inventory.getItemStack() == null) {
for(int i = 0; i < 2; ++i) {
Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i);
if(this.isMouseOverSlot(slot, x, y) && !slot.getHasStack()) {
List<String> bonuses = this.diFurnace.burnModule.getDesc();
if(!bonuses.isEmpty()) {
this.func_146283_a(bonuses, x, y);
}
}
}
}
this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 27, 71, 7, x, y, new String[] { String.format("%,d", diFurnace.heatEnergy) + " / " + String.format("%,d", diFurnace.maxHeatEnergy) + "TU" });
this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 36, 71, 7, x, y, new String[] { diFurnace.burnHeat + "TU/s", (diFurnace.burnTime / 20) + "s" });
}
@Override
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(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 i = diFurnace.heatEnergy * 69 / diFurnace.maxHeatEnergy;
drawTexturedModalRect(guiLeft + 81, guiTop + 28, 176, 0, i, 5);
int j = diFurnace.burnTime * 70 / Math.max(diFurnace.maxBurnTime, 1);
drawTexturedModalRect(guiLeft + 81, guiTop + 37, 176, 5, j, 5);
if(diFurnace.wasOn) {
drawTexturedModalRect(guiLeft + 25, guiTop + 26, 176, 10, 18, 18);
}
}
}

View File

@ -38,7 +38,7 @@ public class GUIFurnaceIron extends GuiInfoContainer {
if(this.isMouseOverSlot(slot, x, y) && !slot.getHasStack()) {
List<String> bonuses = this.diFurnace.burnModule.getDesc();
List<String> bonuses = this.diFurnace.burnModule.getTimeDesc();
if(!bonuses.isEmpty()) {
this.func_146283_a(bonuses, x, y);

View File

@ -109,6 +109,7 @@ public class ItemAmmoArty extends Item {
list.add(y + "Strength: 20");
list.add(r + "Deals nuclear damage");
list.add(r + "Destroys blocks");
break;
case MINI_NUKE_MULTI:
list.add(r + "Splits x5");
break;

View File

@ -254,6 +254,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(TileEntityHeaterFirebox.class, new RenderFirebox());
//AMS
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSBase.class, new RenderAMSBase());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSEmitter.class, new RenderAMSEmitter());

View File

@ -72,7 +72,6 @@ import com.hbm.lib.RefStrings;
import com.hbm.packet.PacketDispatcher;
import com.hbm.potion.HbmPotion;
import com.hbm.saveddata.satellites.Satellite;
import com.hbm.test.ReEvalTest;
import com.hbm.tileentity.TileMappings;
import com.hbm.tileentity.bomb.TileEntityNukeCustom;
import com.hbm.tileentity.machine.*;

View File

@ -55,6 +55,9 @@ public class ResourceManager {
public static final IModelCustom turret_howard_damaged = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard_damaged.obj"));
//Heaters
public static final IModelCustom heater_firebox = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/firebox.obj"));
//Furnaces
public static final IModelCustom furnace_iron = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/furnace_iron.obj"));
@ -362,6 +365,9 @@ public class ResourceManager {
public static final ResourceLocation mine_shrap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_shrap.png");
public static final ResourceLocation mine_fat_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_fat.png");
//Heaters
public static final ResourceLocation heater_firebox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/firebox.png");
//Furnaces
public static final ResourceLocation furnace_iron_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/furnace_iron.png");

View File

@ -17,51 +17,99 @@ import net.minecraft.util.EnumChatFormatting;
*/
public class ModuleBurnTime {
private double modLog = 1.0D;
private double modWood = 1.0D;
private double modCoal = 1.0D;
private double modLignite = 1.0D;
private double modCoke = 1.0D;
private double modSolid = 1.0D;
private double modRocket = 1.0D;
private static final int modLog = 0;
private static final int modWood = 1;
private static final int modCoal = 2;
private static final int modLignite = 3;
private static final int modCoke = 4;
private static final int modSolid = 5;
private static final int modRocket = 6;
private double[] modTime = new double[7];
private double[] modHeat = new double[7];
public ModuleBurnTime() {
for(int i = 0; i < modTime.length; i++) {
modTime[i] = 1.0D;
modHeat[i] = 1.0D;
}
}
public int getBurnTime(ItemStack stack) {
int fuel = TileEntityFurnace.getItemBurnTime(stack);
if(fuel == 0)
return 0;
if(stack.getItem() == ModItems.solid_fuel) return (int) (fuel * modSolid);
if(stack.getItem() == ModItems.solid_fuel_presto) return (int) (fuel * modSolid);
if(stack.getItem() == ModItems.solid_fuel_presto_triplet) return (int) (fuel * modSolid);
if(stack.getItem() == ModItems.rocket_fuel) return (int) (fuel * modRocket);
return (int) (fuel * getMod(stack, modTime));
}
public int getBurnHeat(int base, ItemStack stack) {
return (int) (base * getMod(stack, modHeat));
}
public double getMod(ItemStack stack, double[] mod) {
if(stack == null)
return 0;
if(stack.getItem() == ModItems.solid_fuel) return mod[modSolid];
if(stack.getItem() == ModItems.solid_fuel_presto) return mod[modSolid];
if(stack.getItem() == ModItems.solid_fuel_presto_triplet) return mod[modSolid];
if(stack.getItem() == ModItems.rocket_fuel) return mod[modRocket];
List<String> names = ItemStackUtil.getOreDictNames(stack);
for(String name : names) {
if(name.contains("Coke")) return (int) (fuel * modCoke);
if(name.contains("Coal")) return (int) (fuel * modCoal);
if(name.contains("Lignite")) return (int) (fuel * modLignite);
if(name.startsWith("log")) return (int) (fuel * modLog);
if(name.contains("Wood")) return (int) (fuel * modWood);
if(name.contains("Coke")) return mod[modCoke];
if(name.contains("Coal")) return mod[modCoal];
if(name.contains("Lignite")) return mod[modLignite];
if(name.startsWith("log")) return mod[modLog];
if(name.contains("Wood")) return mod[modWood];
}
return fuel;
return 1;
}
public List<String> getDesc() {
List<String> desc = new ArrayList();
desc.addAll(getTimeDesc());
desc.addAll(getHeatDesc());
return desc;
}
public List<String> getTimeDesc() {
List<String> list = new ArrayList();
list.add(EnumChatFormatting.GOLD + "Burn time bonuses:");
addIf(list, "Logs", modLog);
addIf(list, "Wood", modWood);
addIf(list, "Coal", modCoal);
addIf(list, "Lignite", modLignite);
addIf(list, "Coke", modCoke);
addIf(list, "Solid Fuel", modSolid);
addIf(list, "Rocket Fuel", modRocket);
addIf(list, "Logs", modTime[modLog]);
addIf(list, "Wood", modTime[modWood]);
addIf(list, "Coal", modTime[modCoal]);
addIf(list, "Lignite", modTime[modLignite]);
addIf(list, "Coke", modTime[modCoke]);
addIf(list, "Solid Fuel", modTime[modSolid]);
addIf(list, "Rocket Fuel", modTime[modRocket]);
if(list.size() == 1)
list.clear();
return list;
}
public List<String> getHeatDesc() {
List<String> list = new ArrayList();
list.add(EnumChatFormatting.RED + "Burn heat bonuses:");
addIf(list, "Logs", modHeat[modLog]);
addIf(list, "Wood", modHeat[modWood]);
addIf(list, "Coal", modHeat[modCoal]);
addIf(list, "Lignite", modHeat[modLignite]);
addIf(list, "Coke", modHeat[modCoke]);
addIf(list, "Solid Fuel", modHeat[modSolid]);
addIf(list, "Rocket Fuel", modHeat[modRocket]);
if(list.size() == 1)
list.clear();
@ -87,11 +135,19 @@ public class ModuleBurnTime {
return num;
}
public ModuleBurnTime setLogMod(double mod) { this.modLog = mod; return this; }
public ModuleBurnTime setWoodMod(double mod) { this.modWood = mod; return this; }
public ModuleBurnTime setCoalMod(double mod) { this.modCoal = mod; return this; }
public ModuleBurnTime setLigniteMod(double mod) { this.modLignite = mod; return this; }
public ModuleBurnTime setCokeMod(double mod) { this.modCoke = mod; return this; }
public ModuleBurnTime setSolidMod(double mod) { this.modSolid = mod; return this; }
public ModuleBurnTime setRocketMod(double mod) { this.modRocket = mod; return this; }
public ModuleBurnTime setLogTimeMod(double mod) { this.modTime[modLog] = mod; return this; }
public ModuleBurnTime setWoodTimeMod(double mod) { this.modTime[modWood] = mod; return this; }
public ModuleBurnTime setCoalTimeMod(double mod) { this.modTime[modCoal] = mod; return this; }
public ModuleBurnTime setLigniteTimeMod(double mod) { this.modTime[modLignite] = mod; return this; }
public ModuleBurnTime setCokeTimeMod(double mod) { this.modTime[modCoke] = mod; return this; }
public ModuleBurnTime setSolidTimeMod(double mod) { this.modTime[modSolid] = mod; return this; }
public ModuleBurnTime setRocketTimeMod(double mod) { this.modTime[modRocket] = mod; return this; }
public ModuleBurnTime setLogHeatMod(double mod) { this.modHeat[modLog] = mod; return this; }
public ModuleBurnTime setWoodHeatMod(double mod) { this.modHeat[modWood] = mod; return this; }
public ModuleBurnTime setCoalHeatMod(double mod) { this.modHeat[modCoal] = mod; return this; }
public ModuleBurnTime setLigniteHeatMod(double mod) { this.modHeat[modLignite] = mod; return this; }
public ModuleBurnTime setCokeHeatMod(double mod) { this.modHeat[modCoke] = mod; return this; }
public ModuleBurnTime setSolidHeatMod(double mod) { this.modHeat[modSolid] = mod; return this; }
public ModuleBurnTime setRocketHeatMod(double mod) { this.modHeat[modRocket] = mod; return this; }
}

View File

@ -0,0 +1,61 @@
package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.BlockDummyable;
import com.hbm.main.ResourceManager;
import com.hbm.tileentity.machine.TileEntityHeaterFirebox;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
public class RenderFirebox extends TileEntitySpecialRenderer {
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) {
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_CULL_FACE);
switch(tile.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);
TileEntityHeaterFirebox firebox = (TileEntityHeaterFirebox) tile;
bindTexture(ResourceManager.heater_firebox_tex);
ResourceManager.heater_firebox.renderPart("Main");
GL11.glPushMatrix();
float door = firebox.prevDoorAngle + (firebox.doorAngle - firebox.prevDoorAngle) * interp;
GL11.glTranslated(1.375, 0, 0.375);
GL11.glRotatef(door, 0F, -1F, 0F);
GL11.glTranslated(-1.375, 0, -0.375);
ResourceManager.heater_firebox.renderPart("Door");
GL11.glPopMatrix();
if(firebox.wasOn) {
GL11.glPushMatrix();
GL11.glPushAttrib(GL11.GL_LIGHTING_BIT);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_CULL_FACE);
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F);
ResourceManager.heater_firebox.renderPart("InnerBurning");
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glPopAttrib();
GL11.glPopMatrix();
} else {
ResourceManager.heater_firebox.renderPart("InnerEmpty");
}
GL11.glPopMatrix();
}
}

View File

@ -247,6 +247,7 @@ public class TileMappings {
}
private static void putMachines() {
put(TileEntityHeaterFirebox.class, "tileentity_firebox");
put(TileEntityFurnaceIron.class, "tileentity_furnace_iron");
put(TileEntityMachineAutocrafter.class, "tileentity_autocrafter");
put(TileEntityDiFurnaceRTG.class, "tileentity_rtg_difurnace");

View File

@ -36,11 +36,11 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI
super(5);
burnModule = new ModuleBurnTime()
.setLigniteMod(1.25)
.setCoalMod(1.25)
.setCokeMod(1.5)
.setSolidMod(2)
.setRocketMod(2);
.setLigniteTimeMod(1.25)
.setCoalTimeMod(1.25)
.setCokeTimeMod(1.5)
.setSolidTimeMod(2)
.setRocketTimeMod(2);
}
@Override

View File

@ -0,0 +1,225 @@
package com.hbm.tileentity.machine;
import com.hbm.blocks.BlockDummyable;
import com.hbm.inventory.container.ContainerFirebox;
import com.hbm.inventory.gui.GUIFirebox;
import com.hbm.module.ModuleBurnTime;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
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.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityHeaterFirebox extends TileEntityMachineBase implements IGUIProvider, IHeatSource {
public int maxBurnTime;
public int burnTime;
public int burnHeat;
public boolean wasOn = false;
private int playersUsing = 0;
public float doorAngle = 0;
public float prevDoorAngle = 0;
public int heatEnergy;
public static final int maxHeatEnergy = 100_000;
public ModuleBurnTime burnModule;
public TileEntityHeaterFirebox() {
super(2);
burnModule = new ModuleBurnTime()
.setLigniteTimeMod(1.25)
.setCoalTimeMod(1.25)
.setCokeTimeMod(1.25)
.setSolidTimeMod(1.5)
.setRocketTimeMod(1.5)
.setLigniteHeatMod(2)
.setCoalHeatMod(2)
.setCokeHeatMod(2)
.setSolidHeatMod(3)
.setRocketHeatMod(5);
}
@Override
public String getName() {
return "container.heaterFirebox";
}
@Override
public void openInventory() {
if(!worldObj.isRemote) this.playersUsing++;
}
@Override
public void closeInventory() {
if(!worldObj.isRemote) this.playersUsing--;
}
@Override
public void updateEntity() {
if(!worldObj.isRemote) {
wasOn = false;
if(burnTime <= 0) {
for(int i = 0; i < 2; i++) {
if(slots[i] != null) {
int fuel = burnModule.getBurnTime(slots[i]);
if(fuel > 0) {
this.maxBurnTime = this.burnTime = fuel;
this.burnHeat = burnModule.getBurnHeat(100, slots[i]);
slots[i].stackSize--;
if(slots[i].stackSize == 0) {
slots[i] = slots[i].getItem().getContainerItem(slots[i]);
}
break;
}
}
}
} else {
burnTime--;
this.wasOn = true;
}
if(burnTime > 0) {
this.heatEnergy = Math.min(this.heatEnergy + this.burnHeat, maxHeatEnergy);
} else {
this.heatEnergy = Math.max(this.heatEnergy - Math.max(this.heatEnergy / 1000, 1), 0);
this.burnHeat = 0;
}
NBTTagCompound data = new NBTTagCompound();
data.setInteger("maxBurnTime", this.maxBurnTime);
data.setInteger("burnTime", this.burnTime);
data.setInteger("burnHeat", this.burnHeat);
data.setInteger("heatEnergy", this.heatEnergy);
data.setInteger("playersUsing", this.playersUsing);
data.setBoolean("wasOn", this.wasOn);
this.networkPack(data, 50);
} else {
this.prevDoorAngle = this.doorAngle;
float swingSpeed = (doorAngle / 10F) + 3;
if(this.playersUsing > 0) {
this.doorAngle += swingSpeed;
} else {
this.doorAngle -= swingSpeed;
}
this.doorAngle = MathHelper.clamp_float(this.doorAngle, 0F, 135F);
if(wasOn && worldObj.getTotalWorldTime() % 5 == 0) {
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset);
double x = xCoord + 0.5 + dir.offsetX;
double y = yCoord + 0.25;
double z = zCoord + 0.5 + dir.offsetZ;
worldObj.spawnParticle("flame", x + worldObj.rand.nextDouble() * 0.5 - 0.25, y + worldObj.rand.nextDouble() * 0.25, z + worldObj.rand.nextDouble() * 0.5 - 0.25, 0, 0, 0);
}
}
}
@Override
public int[] getAccessibleSlotsFromSide(int meta) {
return new int[] { 0, 1 };
}
@Override
public boolean isItemValidForSlot(int i, ItemStack itemStack) {
return burnModule.getBurnTime(itemStack) > 0;
}
@Override
public void networkUnpack(NBTTagCompound nbt) {
this.maxBurnTime = nbt.getInteger("maxBurnTime");
this.burnTime = nbt.getInteger("burnTime");
this.burnHeat = nbt.getInteger("burnHeat");
this.heatEnergy = nbt.getInteger("heatEnergy");
this.playersUsing = nbt.getInteger("playersUsing");
this.wasOn = nbt.getBoolean("wasOn");
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.maxBurnTime = nbt.getInteger("maxBurnTime");
this.burnTime = nbt.getInteger("burnTime");
this.burnHeat = nbt.getInteger("burnHeat");
this.heatEnergy = nbt.getInteger("heatEnergy");
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setInteger("maxBurnTime", maxBurnTime);
nbt.setInteger("burnTime", burnTime);
nbt.setInteger("burnHeat", burnHeat);
nbt.setInteger("heatEnergy", heatEnergy);
}
@Override
public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new ContainerFirebox(player.inventory, this);
}
@Override
@SideOnly(Side.CLIENT)
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new GUIFirebox(player.inventory, this);
}
@Override
public int getHeatStored() {
return heatEnergy;
}
@Override
public void useUpHeat(int heat) {
this.heatEnergy = Math.max(0, this.heatEnergy - heat);
}
AxisAlignedBB bb = null;
@Override
public AxisAlignedBB getRenderBoundingBox() {
if(bb == null) {
bb = AxisAlignedBB.getBoundingBox(
xCoord - 1,
yCoord,
zCoord - 1,
xCoord + 2,
yCoord + 1,
zCoord + 2
);
}
return bb;
}
@Override
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared() {
return 65536.0D;
}
}

View File

@ -262,6 +262,7 @@ container.gasCentrifuge=Gaszentrifuge
container.gasFlare=Abfackelturm
container.generator=Atomreaktor
container.hadron=Teilchenbeschleuniger
container.heaterFirebox=Feuerbüchse
container.iGenerator=Industrieller Generator
container.keyForge=Schlossertisch
container.launchPad=Raketenabschussrampe
@ -3328,6 +3329,7 @@ tile.hadron_power_100m.name=Teilchenbeschleuniger-Stromanschluss (100MHE)
tile.hadron_power_1g.name=Teilchenbeschleuniger-Stromanschluss (1GHE)
tile.hadron_power_10g.name=Teilchenbeschleuniger-Stromanschluss (10GHE)
tile.hazmat.name=Strahlenschutzstoff-Block
tile.heater_firebox.name=Feuerbüchse
tile.hev_battery.name=Anzugs-Batterie
tile.iter.name=Kernfusionsreaktor
tile.ladder_aluminium.name=Aluminiumleiter

View File

@ -452,6 +452,7 @@ container.gasCentrifuge=Gas Centrifuge
container.gasFlare=Flare Stack
container.generator=Nuclear Reactor
container.hadron=Particle Accelerator
container.heaterFirebox=Firebox
container.iGenerator=Industrial Generator
container.keyForge=Locksmith Table
container.launchPad=Missile Launch Pad
@ -3755,6 +3756,7 @@ tile.hadron_power_100m.name=Particle Accelerator Power Plug (100MHE)
tile.hadron_power_1g.name=Particle Accelerator Power Plug (1GHE)
tile.hadron_power_10g.name=Particle Accelerator Power Plug (10GHE)
tile.hazmat.name=Hazmat Cloth Block
tile.heater_firebox.name=Firebox
tile.hev_battery.name=Suit Battery
tile.iter.name=Fusion Reactor
tile.ladder_aluminium.name=Aluminium Ladder

View File

@ -0,0 +1,940 @@
# Blender v2.79 (sub 0) OBJ File: 'firebox.blend'
# www.blender.org
o InnerEmpty
v 1.250000 0.750000 0.125000
v 1.250000 0.250000 0.125000
v 1.250000 0.750000 -0.125000
v 1.250000 0.250000 -0.125000
v 1.250000 0.375000 0.250000
v 1.250000 0.375000 -0.250000
v 1.250000 0.625000 0.250000
v 1.250000 0.625000 -0.250000
v 1.250000 0.875000 0.375000
v 1.250000 0.125000 0.375000
v 1.250000 0.875000 -0.375000
v 1.250000 0.125000 -0.375000
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
vt 0.586207 0.187500
vt 0.603448 0.125000
vt 0.603448 0.156250
vt 0.586207 0.093750
vt 0.655172 0.109375
vt 0.620690 0.109375
vt 0.689655 0.187500
vt 0.620690 0.171875
vt 0.655172 0.171875
vt 0.689655 0.093750
vt 0.672414 0.156250
vt 0.672414 0.125000
vt 1.000000 0.187500
vt 0.896552 0.093750
vt 1.000000 0.093750
vt 0.793103 0.187500
vt 0.896552 0.187500
vt 0.896552 0.281250
vt 0.793103 0.281250
vt 0.793103 -0.000000
vt 0.896552 -0.000000
vt 0.793103 0.093750
vn -1.0000 0.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 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
s off
f 11/1/1 6/2/1 8/3/1
f 12/4/1 2/5/1 4/6/1
f 9/7/1 3/8/1 1/9/1
f 10/10/1 7/11/1 5/12/1
f 6/2/1 12/4/1 4/6/1
f 5/12/1 2/5/1 10/10/1
f 7/11/1 9/7/1 1/9/1
f 8/3/1 3/8/1 11/1/1
f 11/13/2 16/14/2 12/15/2
f 10/10/3 13/16/3 9/7/3
f 13/16/4 16/14/4 15/17/4
f 13/16/5 11/18/5 9/19/5
f 16/14/6 10/20/6 12/21/6
f 11/1/1 12/4/1 6/2/1
f 12/4/1 10/10/1 2/5/1
f 9/7/1 11/1/1 3/8/1
f 10/10/1 9/7/1 7/11/1
f 11/13/2 15/17/2 16/14/2
f 10/10/3 14/22/3 13/16/3
f 13/16/4 14/22/4 16/14/4
f 13/16/5 15/17/5 11/18/5
f 16/14/6 14/22/6 10/20/6
o InnerBurning
v 1.250000 0.750000 0.125000
v 1.250000 0.250000 0.125000
v 1.250000 0.750000 -0.125000
v 1.250000 0.250000 -0.125000
v 1.250000 0.375000 0.250000
v 1.250000 0.375000 -0.250000
v 1.250000 0.625000 0.250000
v 1.250000 0.625000 -0.250000
v 1.250000 0.875000 0.375000
v 1.250000 0.125000 0.375000
v 1.250000 0.875000 -0.375000
v 1.250000 0.125000 -0.375000
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 1.250000 0.125000 0.375000
v 1.250000 0.125000 -0.375000
v 0.500000 0.125000 0.375000
v 0.500000 0.250000 -0.375000
v 1.250000 0.125000 0.250000
v 1.250000 0.187500 0.125000
v 1.250000 0.187500 -0.000000
v 1.250000 0.125000 -0.125000
v 1.250000 0.125000 -0.250000
v 0.500000 0.187500 0.250000
v 0.500000 0.250000 0.125000
v 0.500000 0.250000 -0.000000
v 0.500000 0.187500 -0.125000
v 0.500000 0.250000 -0.250000
v 0.625000 0.187500 0.375000
v 0.750000 0.187500 0.375000
v 0.875000 0.250000 0.375000
v 1.000000 0.187500 0.375000
v 1.125000 0.125000 0.375000
v 1.125000 0.125000 -0.375000
v 1.000000 0.187500 -0.375000
v 0.875000 0.125000 -0.375000
v 0.750000 0.187500 -0.375000
v 0.625000 0.187500 -0.375000
v 1.125000 0.187500 0.250000
v 1.000000 0.187500 0.250000
v 0.875000 0.250000 0.250000
v 0.750000 0.250000 0.250000
v 0.625000 0.187500 0.250000
v 1.125000 0.187500 0.125000
v 1.000000 0.250000 0.125000
v 0.875000 0.250000 0.125000
v 0.750000 0.312500 0.125000
v 0.625000 0.250000 0.125000
v 1.125000 0.187500 -0.000000
v 1.000000 0.250000 -0.000000
v 0.875000 0.312500 -0.000000
v 0.750000 0.312500 -0.000000
v 0.625000 0.250000 -0.000000
v 1.125000 0.187500 -0.125000
v 1.000000 0.250000 -0.125000
v 0.875000 0.250000 -0.125000
v 0.750000 0.250000 -0.125000
v 0.625000 0.250000 -0.125000
v 1.125000 0.187500 -0.250000
v 1.000000 0.187500 -0.250000
v 0.875000 0.187500 -0.250000
v 0.750000 0.187500 -0.250000
v 0.625000 0.250000 -0.250000
vt 0.586207 0.468750
vt 0.603448 0.406250
vt 0.603448 0.437500
vt 0.586207 0.375000
vt 0.655172 0.390625
vt 0.620690 0.390625
vt 0.689655 0.468750
vt 0.620690 0.453125
vt 0.655172 0.453125
vt 0.689655 0.375000
vt 0.672414 0.437500
vt 0.672414 0.406250
vt 1.000000 0.468750
vt 0.896552 0.375000
vt 1.000000 0.375000
vt 0.793103 0.468750
vt 0.896552 0.468750
vt 0.879310 0.359375
vt 0.896552 0.359375
vt 0.879310 0.375000
vt 0.793103 0.359375
vt 0.810345 0.359375
vt 0.793103 0.375000
vt 0.827586 0.359375
vt 0.810345 0.375000
vt 0.844828 0.359375
vt 0.827586 0.375000
vt 0.862069 0.359375
vt 0.844828 0.375000
vt 0.862069 0.375000
vt 0.793103 0.281250
vt 0.810345 0.281250
vt 0.793103 0.296875
vt 0.810345 0.296875
vt 0.793103 0.312500
vt 0.810345 0.312500
vt 0.793103 0.328125
vt 0.810345 0.343750
vt 0.793103 0.343750
vt 0.827586 0.281250
vt 0.827586 0.312500
vt 0.810345 0.328125
vt 0.827586 0.328125
vt 0.827586 0.343750
vt 0.844828 0.281250
vt 0.827586 0.296875
vt 0.844828 0.296875
vt 0.844828 0.312500
vt 0.844828 0.328125
vt 0.862069 0.296875
vt 0.862069 0.312500
vt 0.862069 0.328125
vt 0.844828 0.343750
vt 0.862069 0.343750
vt 0.879310 0.281250
vt 0.862069 0.281250
vt 0.879310 0.296875
vt 0.879310 0.312500
vt 0.879310 0.328125
vt 0.879310 0.343750
vt 0.896552 0.296875
vt 0.896552 0.312500
vt 0.896552 0.328125
vt 0.896552 0.562500
vt 0.793103 0.562500
vt 0.896552 0.281250
vt 0.896552 0.375000
vt 0.896552 0.343750
vt 0.793103 0.375000
vn -1.0000 0.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 0.0000 0.8944 -0.4472
vn -0.4472 0.8944 0.0000
vn 0.0000 0.8944 0.4472
vn 0.0000 1.0000 0.0000
vn 0.4082 0.8165 0.4082
vn 0.4472 0.8944 0.0000
vn -0.4082 0.8165 0.4082
vn 0.4082 0.8165 -0.4082
vn 0.0000 -1.0000 0.0000
vn -0.4082 0.8165 -0.4082
s off
f 27/23/7 22/24/7 24/25/7
f 28/26/7 18/27/7 20/28/7
f 25/29/7 19/30/7 17/31/7
f 26/32/7 23/33/7 21/34/7
f 22/24/7 28/26/7 20/28/7
f 21/34/7 18/27/7 26/32/7
f 23/33/7 25/29/7 17/31/7
f 24/25/7 19/30/7 27/23/7
f 27/35/8 32/36/8 28/37/8
f 26/32/9 29/38/9 25/29/9
f 29/38/10 32/36/10 31/39/10
f 81/40/11 56/41/11 46/42/11
f 47/43/12 61/44/12 35/45/12
f 66/46/13 42/47/13 61/44/13
f 71/48/14 43/49/14 66/46/14
f 71/48/14 76/50/14 44/51/14
f 76/50/12 81/40/12 45/52/12
f 33/53/14 37/54/14 51/55/14
f 51/55/15 57/56/15 50/57/15
f 58/58/16 49/59/16 50/57/16
f 49/59/17 60/60/17 48/61/17
f 48/61/17 60/60/17 61/44/17
f 38/62/15 57/56/15 37/54/15
f 57/56/13 63/63/13 58/58/13
f 58/58/15 63/63/15 59/64/15
f 59/64/16 64/65/16 65/66/16
f 39/67/14 62/68/14 38/62/14
f 67/69/16 63/63/16 62/68/16
f 63/63/16 68/70/16 69/71/16
f 64/65/15 69/71/15 65/66/15
f 66/46/17 60/60/17 65/66/17
f 39/67/14 72/72/14 67/69/14
f 72/72/16 68/70/16 67/69/16
f 68/70/16 73/73/16 69/71/16
f 74/74/11 70/75/11 69/71/11
f 70/75/11 75/76/11 76/50/11
f 41/77/16 72/72/16 40/78/16
f 72/72/16 77/79/16 73/73/16
f 78/80/11 74/74/11 73/73/11
f 79/81/11 75/76/11 74/74/11
f 75/76/18 80/82/18 81/40/18
f 41/77/18 52/83/18 77/79/18
f 77/79/18 52/83/18 53/84/18
f 53/84/14 79/81/14 78/80/14
f 79/81/11 54/85/11 80/82/11
f 80/82/18 56/41/18 81/40/18
f 29/38/19 27/86/19 25/87/19
f 71/48/12 65/66/12 70/75/12
f 51/55/15 37/54/15 57/56/15
f 52/83/14 41/77/14 34/88/14
f 46/42/16 56/41/16 36/89/16
f 80/82/16 54/85/16 55/90/16
f 73/73/11 77/79/11 78/80/11
f 63/63/16 57/56/16 62/68/16
f 59/64/14 63/63/14 64/65/14
f 50/57/14 57/56/14 58/58/14
f 61/44/14 47/43/14 48/61/14
f 35/45/13 61/44/13 42/47/13
f 44/51/20 76/50/20 45/52/20
f 45/52/13 81/40/13 46/42/13
f 81/40/14 76/50/14 75/76/14
f 69/71/11 73/73/11 74/74/11
f 69/71/13 64/65/13 63/63/13
f 76/50/12 71/48/12 70/75/12
f 65/66/13 60/60/13 59/64/13
f 65/66/14 69/71/14 70/75/14
f 53/84/14 78/80/14 77/79/14
f 72/72/18 39/67/18 40/78/18
f 27/23/7 28/26/7 22/24/7
f 28/26/7 26/32/7 18/27/7
f 25/29/7 27/23/7 19/30/7
f 26/32/7 25/29/7 23/33/7
f 27/35/8 31/39/8 32/36/8
f 26/32/9 30/91/9 29/38/9
f 29/38/10 30/91/10 32/36/10
f 66/46/13 43/49/13 42/47/13
f 71/48/14 44/51/14 43/49/14
f 58/58/16 59/64/16 49/59/16
f 49/59/14 59/64/14 60/60/14
f 38/62/14 62/68/14 57/56/14
f 39/67/14 67/69/14 62/68/14
f 67/69/16 68/70/16 63/63/16
f 66/46/17 61/44/17 60/60/17
f 72/72/16 73/73/16 68/70/16
f 74/74/11 75/76/11 70/75/11
f 41/77/16 77/79/16 72/72/16
f 78/80/11 79/81/11 74/74/11
f 79/81/11 80/82/11 75/76/11
f 53/84/20 54/85/20 79/81/20
f 80/82/14 55/90/14 56/41/14
f 29/38/19 31/39/19 27/86/19
f 71/48/12 66/46/12 65/66/12
o Door
v 1.375000 0.750000 0.125000
v 1.375000 0.250000 0.125000
v 1.375000 0.750000 -0.125000
v 1.375000 0.250000 -0.125000
v 1.375000 0.375000 0.250000
v 1.375000 0.375000 -0.250000
v 1.375000 0.625000 0.250000
v 1.375000 0.625000 -0.250000
v 1.312500 0.750000 -0.125000
v 1.312500 0.750000 0.125000
v 1.312500 0.375000 -0.250000
v 1.312500 0.625000 -0.250000
v 1.312500 0.250000 0.125000
v 1.312500 0.250000 -0.125000
v 1.312500 0.625000 0.250000
v 1.312500 0.375000 0.250000
v 1.375000 0.875000 0.187500
v 1.375000 0.125000 0.187500
v 1.375000 0.875000 -0.187500
v 1.375000 0.125000 -0.187500
v 1.375000 0.312500 0.375000
v 1.375000 0.312500 -0.375000
v 1.375000 0.687500 0.375000
v 1.375000 0.687500 -0.375000
v 1.437500 0.875000 0.187500
v 1.437500 0.125000 0.187500
v 1.437500 0.875000 -0.187500
v 1.437500 0.125000 -0.187500
v 1.437500 0.312500 0.375000
v 1.437500 0.312500 -0.375000
v 1.437500 0.687500 0.375000
v 1.437500 0.687500 -0.375000
v 1.500000 0.750000 0.125000
v 1.500000 0.250000 0.125000
v 1.500000 0.750000 -0.125000
v 1.500000 0.250000 -0.125000
v 1.500000 0.375000 0.250000
v 1.500000 0.375000 -0.250000
v 1.500000 0.625000 0.250000
v 1.500000 0.625000 -0.250000
v 1.625000 0.687500 -0.126000
v 1.625000 0.312500 -0.126000
v 1.625000 0.687500 -0.188500
v 1.625000 0.312500 -0.188500
v 1.500000 0.687500 -0.126000
v 1.500000 0.312500 -0.126000
v 1.500000 0.687500 -0.188500
v 1.500000 0.312500 -0.188500
v 1.500000 0.375000 -0.126000
v 1.500000 0.375000 -0.188500
v 1.500000 0.625000 -0.126000
v 1.500000 0.625000 -0.188500
v 1.562500 0.375000 -0.126000
v 1.562500 0.375000 -0.188500
v 1.562500 0.625000 -0.126000
v 1.562500 0.625000 -0.188500
vt 0.465517 0.218750
vt 0.508621 0.234375
vt 0.474138 0.234375
vt 0.439655 0.171875
vt 0.491379 0.156250
vt 0.508621 0.203125
vt 0.431034 0.156250
vt 0.431034 0.171875
vt 0.431034 0.250000
vt 0.439655 0.265625
vt 0.431034 0.265625
vt 0.431034 0.312500
vt 0.439655 0.343750
vt 0.431034 0.343750
vt 0.431034 0.218750
vt 0.439655 0.250000
vt 0.431034 0.296875
vt 0.439655 0.312500
vt 0.431034 0.203125
vt 0.439655 0.218750
vt 0.439655 0.296875
vt 0.439655 0.203125
vt 0.439655 0.289062
vt 0.456897 0.250000
vt 0.456897 0.281250
vt 0.517241 0.312500
vt 0.474138 0.296875
vt 0.508621 0.296875
vt 0.543103 0.242188
vt 0.525862 0.281250
vt 0.525862 0.250000
vt 0.543103 0.289062
vt 0.465517 0.312500
vt 0.439655 0.242188
vt 0.551724 0.179688
vt 0.543103 0.156250
vt 0.551724 0.156250
vt 0.551724 0.250000
vt 0.543103 0.226562
vt 0.551724 0.226562
vt 0.551724 0.437500
vt 0.543103 0.390625
vt 0.551724 0.390625
vt 0.551724 0.296875
vt 0.543103 0.250000
vt 0.543103 0.367188
vt 0.551724 0.367188
vt 0.543103 0.320312
vt 0.551724 0.320312
vt 0.543103 0.296875
vt 0.543103 0.179688
vt 0.543103 0.382812
vt 0.525862 0.343750
vt 0.543103 0.335938
vt 0.508621 0.390625
vt 0.525862 0.375000
vt 0.474138 0.390625
vt 0.517241 0.406250
vt 0.465517 0.406250
vt 0.439655 0.382812
vt 0.456897 0.343750
vt 0.439655 0.335938
vt 0.474138 0.328125
vt 0.508621 0.328125
vt 0.465517 0.312500
vt 0.517241 0.312500
vt 0.568965 0.171875
vt 0.577586 0.218750
vt 0.568965 0.218750
vt 0.577586 0.156250
vt 0.577586 0.171875
vt 0.568965 0.234375
vt 0.560345 0.226562
vt 0.560345 0.210938
vt 0.551724 0.234375
vt 0.560345 0.234375
vt 0.560345 0.156250
vt 0.551724 0.164062
vt 0.551724 0.156250
vt 0.551724 0.179688
vt 0.560345 0.179688
vt 0.560345 0.164062
vt 0.568965 0.156250
vt 0.586207 0.210938
vt 0.586207 0.164062
vt 0.586207 0.226562
vt 0.577586 0.234375
vt 0.517241 0.218750
vt 0.491379 0.218750
vt 0.456897 0.218750
vt 0.456897 0.156250
vt 0.508621 0.171875
vt 0.439655 0.156250
vt 0.543103 0.437500
vt 0.456897 0.375000
vt 0.551724 0.226562
vt 0.551724 0.210938
vt 0.586207 0.179688
vt 0.586207 0.156250
vt 0.586207 0.234375
vn -1.0000 0.0000 0.0000
vn 0.0000 -0.7071 -0.7071
vn 0.0000 0.7071 0.7071
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 -0.7071 0.7071
vn 0.0000 0.7071 -0.7071
vn 0.0000 0.0000 1.0000
vn 0.0000 0.0000 -1.0000
vn 0.8944 0.0000 -0.4472
vn 0.9045 0.3015 -0.3015
vn 0.8944 0.4472 0.0000
vn 0.9045 0.3015 0.3015
vn 0.8944 0.0000 0.4472
vn 0.9045 -0.3015 0.3015
vn 0.8944 -0.4472 0.0000
vn 0.9045 -0.3015 -0.3015
vn 1.0000 0.0000 0.0000
s off
f 101/92/21 83/93/21 85/94/21
f 92/95/21 94/96/21 96/97/21
f 85/98/22 92/95/22 87/99/22
f 82/100/23 96/101/23 88/102/23
f 83/103/24 95/104/24 85/105/24
f 84/106/25 91/107/25 82/100/25
f 86/108/26 94/109/26 83/103/26
f 89/110/27 90/111/27 84/106/27
f 88/102/28 97/112/28 86/108/28
f 87/99/29 93/113/29 89/110/29
f 105/114/21 87/115/21 89/116/21
f 98/117/21 84/118/21 82/119/21
f 102/120/21 88/121/21 86/122/21
f 104/123/21 82/119/21 88/121/21
f 100/124/21 89/116/21 84/118/21
f 83/93/21 102/120/21 86/122/21
f 103/125/21 85/94/21 87/115/21
f 103/126/22 109/127/22 101/128/22
f 100/129/27 113/130/27 105/131/27
f 101/132/24 107/133/24 99/134/24
f 98/135/25 108/136/25 100/129/25
f 99/134/26 110/137/26 102/138/26
f 102/138/28 112/139/28 104/140/28
f 104/140/23 106/141/23 98/135/23
f 105/131/29 111/142/29 103/126/29
f 113/143/30 119/144/30 111/145/30
f 113/143/31 116/146/31 121/147/31
f 114/148/32 108/149/32 106/150/32
f 112/151/33 114/148/33 106/150/33
f 118/152/34 112/151/34 110/153/34
f 110/153/35 115/154/35 118/152/35
f 117/155/36 107/156/36 109/157/36
f 111/145/37 117/155/37 109/157/37
f 118/152/38 117/155/38 121/147/38
f 123/158/38 124/159/38 122/160/38
f 123/158/24 129/161/24 125/162/24
f 124/159/25 126/163/25 122/160/25
f 126/163/28 136/164/28 122/160/28
f 136/165/28 123/158/28 122/160/28
f 133/166/24 136/164/24 132/167/24
f 130/168/25 135/169/25 131/170/25
f 136/165/21 135/171/21 134/172/21
f 134/173/28 127/174/28 123/158/28
f 125/162/29 137/175/29 124/159/29
f 129/161/29 135/176/29 125/162/29
f 137/177/29 128/178/29 124/159/29
f 101/92/21 99/179/21 83/93/21
f 96/97/21 91/180/21 90/181/21
f 90/181/21 93/113/21 92/95/21
f 92/95/21 95/182/21 94/96/21
f 94/96/21 97/183/21 96/97/21
f 96/97/21 90/181/21 92/95/21
f 85/98/22 95/184/22 92/95/22
f 82/100/23 91/107/23 96/101/23
f 83/103/24 94/109/24 95/104/24
f 84/106/25 90/111/25 91/107/25
f 86/108/26 97/112/26 94/109/26
f 89/110/27 93/113/27 90/111/27
f 88/102/28 96/101/28 97/112/28
f 87/99/29 92/95/29 93/113/29
f 105/114/21 103/125/21 87/115/21
f 98/117/21 100/124/21 84/118/21
f 102/120/21 104/123/21 88/121/21
f 104/123/21 98/117/21 82/119/21
f 100/124/21 105/114/21 89/116/21
f 83/93/21 99/179/21 102/120/21
f 103/125/21 101/92/21 85/94/21
f 103/126/22 111/142/22 109/127/22
f 100/129/27 108/136/27 113/130/27
f 101/132/24 109/185/24 107/133/24
f 98/135/25 106/141/25 108/136/25
f 99/134/26 107/133/26 110/137/26
f 102/138/28 110/137/28 112/139/28
f 104/140/23 112/139/23 106/141/23
f 105/131/29 113/130/29 111/142/29
f 113/143/30 121/147/30 119/144/30
f 113/143/31 108/149/31 116/146/31
f 114/148/32 116/146/32 108/149/32
f 112/151/33 120/186/33 114/148/33
f 118/152/34 120/186/34 112/151/34
f 110/153/35 107/156/35 115/154/35
f 117/155/36 115/154/36 107/156/36
f 111/145/37 119/144/37 117/155/37
f 121/147/38 116/146/38 114/148/38
f 114/148/38 120/186/38 118/152/38
f 118/152/38 115/154/38 117/155/38
f 117/155/38 119/144/38 121/147/38
f 121/147/38 114/148/38 118/152/38
f 123/158/38 125/162/38 124/159/38
f 123/158/24 127/174/24 129/161/24
f 124/159/25 128/178/25 126/163/25
f 126/163/28 132/167/28 136/164/28
f 136/165/28 134/172/28 123/158/28
f 133/166/24 137/187/24 136/164/24
f 130/168/25 134/173/25 135/169/25
f 136/165/21 137/188/21 135/171/21
f 134/173/28 130/168/28 127/174/28
f 125/162/29 135/189/29 137/175/29
f 129/161/29 131/190/29 135/176/29
f 137/177/29 133/191/29 128/178/29
o Main
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 1.000000 1.500000
v -1.500000 1.000000 -1.500000
v -1.500000 1.000000 1.500000
v 1.500000 1.000000 -1.500000
v 1.375000 0.125000 1.500000
v -1.375000 0.125000 -1.500000
v -1.375000 0.125000 1.500000
v 1.375000 0.125000 -1.500000
v 1.375000 0.875000 1.500000
v -1.375000 0.875000 -1.500000
v -1.375000 0.875000 1.500000
v 1.375000 0.875000 -1.500000
v 1.500000 0.125000 -1.375000
v -1.500000 0.125000 1.375000
v 1.500000 0.125000 1.375000
v -1.500000 0.125000 -1.375000
v 1.500000 0.875000 -1.375000
v -1.500000 0.875000 1.375000
v 1.500000 0.875000 1.375000
v -1.500000 0.875000 -1.375000
v 1.375000 0.125000 1.375000
v -1.375000 0.125000 1.375000
v 1.375000 0.875000 1.375000
v -1.375000 0.875000 1.375000
v -1.375000 0.125000 -1.375000
v 1.375000 0.125000 -1.375000
v -1.375000 0.875000 -1.375000
v 1.375000 0.875000 -1.375000
v 1.375000 0.750000 0.125000
v 1.375000 0.250000 0.125000
v 1.375000 0.750000 -0.125000
v 1.375000 0.250000 -0.125000
v 1.375000 0.375000 0.250000
v 1.375000 0.375000 -0.250000
v 1.375000 0.625000 0.250000
v 1.375000 0.625000 -0.250000
v 1.250000 0.750000 0.125000
v 1.250000 0.250000 0.125000
v 1.250000 0.750000 -0.125000
v 1.250000 0.250000 -0.125000
v 1.250000 0.375000 0.250000
v 1.250000 0.375000 -0.250000
v 1.250000 0.625000 0.250000
v 1.250000 0.625000 -0.250000
v -0.500000 1.000000 0.500000
v 0.500000 1.000000 0.500000
v -0.500000 1.000000 -0.500000
v 0.500000 1.000000 -0.500000
v -0.437500 1.000000 0.437500
v 0.437500 1.000000 0.437500
v -0.437500 1.000000 -0.437500
v 0.437500 1.000000 -0.437500
v -0.500000 0.937500 -0.500000
v -0.500000 0.937500 0.500000
v 0.500000 0.937500 0.500000
v 0.500000 0.937500 -0.500000
v -0.437500 0.937500 -0.437500
v -0.437500 0.937500 0.437500
v 0.437500 0.937500 0.437500
v 0.437500 0.937500 -0.437500
vt 0.413793 0.000000
vt 0.000000 0.375000
vt 0.000000 -0.000000
vt -0.000000 0.890625
vt 0.017241 0.984375
vt -0.000000 0.984375
vt 0.000000 0.890625
vt 0.017241 0.984375
vt 0.000000 0.984375
vt -0.000000 0.890625
vt 0.017241 0.984375
vt -0.000000 0.984375
vt 0.000000 0.890625
vt 0.017241 0.984375
vt 0.000000 0.984375
vt 0.413793 0.375000
vt 0.017241 0.390625
vt 0.000000 0.375000
vt 0.017241 0.484375
vt 0.000000 0.500000
vt 0.413793 0.500000
vt 0.396552 0.390625
vt 0.413793 0.375000
vt 0.413793 0.500000
vt 0.396552 0.390625
vt 0.413793 0.375000
vt 0.017241 0.390625
vt 0.000000 0.375000
vt 0.017241 0.484375
vt 0.000000 0.500000
vt 0.413793 0.500000
vt 0.396552 0.390625
vt 0.017241 0.484375
vt 0.000000 0.500000
vt 0.413793 0.500000
vt 0.413793 0.375000
vt 0.017241 0.390625
vt 0.396552 0.390625
vt 0.000000 0.375000
vt 0.017241 0.484375
vt 0.000000 0.500000
vt 0.017241 0.390625
vt 0.396552 0.890625
vt 0.017241 0.890625
vt 0.413793 0.984375
vt 0.413793 0.890625
vt 0.017241 1.000000
vt 0.396552 0.984375
vt 0.396552 1.000000
vt 0.396552 0.875000
vt 0.017241 0.875000
vt 0.396552 0.890625
vt 0.017241 0.890625
vt 0.017241 1.000000
vt 0.396552 0.984375
vt 0.396552 1.000000
vt 0.396552 0.875000
vt 0.017241 0.875000
vt 0.413793 0.984375
vt 0.413793 0.890625
vt 0.413793 0.890625
vt 0.396552 0.984375
vt 0.396552 0.890625
vt 0.017241 0.875000
vt 0.396552 0.875000
vt 0.017241 1.000000
vt 0.396552 1.000000
vt 0.017241 0.890625
vt 0.413793 0.890625
vt 0.396552 0.984375
vt 0.396552 0.890625
vt 0.017241 0.875000
vt 0.396552 0.875000
vt 0.017241 1.000000
vt 0.396552 1.000000
vt 0.017241 0.890625
vt 0.172414 0.953125
vt 0.241379 0.953125
vt 0.189655 0.906250
vt 0.224138 0.968750
vt 0.172414 0.921875
vt 0.224138 0.906250
vt 0.241379 0.921875
vt 0.189655 0.968750
vt 0.413793 0.265625
vt 0.431034 0.296875
vt 0.413793 0.296875
vt 0.431034 0.312500
vt 0.413793 0.312500
vt 0.413793 0.203125
vt 0.431034 0.218750
vt 0.413793 0.218750
vt 0.431034 0.343750
vt 0.413793 0.343750
vt 0.431034 0.250000
vt 0.413793 0.250000
vt 0.413793 0.156250
vt 0.431034 0.171875
vt 0.413793 0.171875
vt 0.431034 0.265625
vt 0.431034 0.203125
vt 0.275862 0.625000
vt 0.431034 0.156250
vt 0.568965 0.148438
vt 0.568965 0.156250
vt 0.275862 0.750000
vt 0.413793 0.875000
vt 0.137931 0.750000
vt 0.000000 0.875000
vt 0.439655 0.023438
vt 0.560345 0.132812
vt 0.439655 0.132812
vt 0.560345 0.023438
vt 0.568965 0.132812
vt 0.568965 -0.000000
vt 0.431034 0.007812
vt 0.431034 -0.000000
vt 0.439655 0.140625
vt 0.431034 0.023438
vt 0.422414 0.140625
vt 0.422414 0.015625
vt 0.431034 0.148438
vt 0.577586 0.015625
vt 0.577586 0.140625
vt 0.560345 0.015625
vt 0.568965 0.007812
vt 0.586207 0.140625
vt 0.586207 0.015625
vt 0.413793 0.015625
vt 0.413793 0.140625
vt 0.137931 0.625000
vt 0.396552 0.484375
vt 0.396552 0.484375
vt 0.396552 0.484375
vt 0.396552 0.484375
vt 0.413793 0.984375
vt 0.413793 0.984375
vt 0.431034 0.156250
vt 0.568965 0.023438
vt 0.560345 0.140625
vt 0.431034 0.132812
vt 0.439655 0.015625
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.0000 1.0000 0.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 140/192/39 139/193/39 138/194/39
f 148/195/40 165/196/40 152/197/40
f 149/198/41 169/199/41 153/200/41
f 156/201/42 164/202/42 160/203/42
f 157/204/43 168/205/43 161/206/43
f 138/207/41 157/208/41 140/209/41
f 140/209/41 161/210/41 143/211/41
f 143/212/42 147/213/42 140/214/42
f 144/215/41 155/216/41 138/207/41
f 139/217/43 148/218/43 138/219/43
f 138/219/43 152/220/43 144/221/43
f 161/210/41 144/215/41 143/211/41
f 152/220/43 142/222/43 144/221/43
f 142/222/43 146/223/43 139/217/43
f 139/193/40 160/224/40 142/225/40
f 160/224/40 145/226/40 142/225/40
f 141/227/40 156/228/40 139/193/40
f 145/226/40 154/229/40 141/227/40
f 141/230/42 153/231/42 145/232/42
f 153/231/42 143/212/42 145/232/42
f 140/214/42 149/233/42 141/230/42
f 162/234/43 165/196/43 163/235/43
f 150/236/41 162/234/41 146/237/41
f 152/238/39 164/239/39 150/240/39
f 146/241/44 163/235/44 148/242/44
f 166/243/42 169/199/42 167/244/42
f 153/245/39 168/246/39 151/247/39
f 147/248/44 167/244/44 149/249/44
f 151/250/40 166/243/40 147/251/40
f 155/252/42 165/253/42 163/254/42
f 163/254/44 157/255/44 155/256/44
f 161/257/39 165/253/39 159/258/39
f 163/254/41 168/205/41 166/259/41
f 154/260/43 169/261/43 167/262/43
f 167/262/44 156/263/44 154/264/44
f 160/265/39 169/261/39 158/266/39
f 162/267/40 176/268/40 164/202/40
f 177/269/40 167/262/40 169/261/40
f 167/262/40 171/270/40 162/267/40
f 164/202/40 172/271/40 169/261/40
f 171/270/40 174/272/40 162/267/40
f 173/273/40 167/262/40 175/274/40
f 172/271/40 177/269/40 169/261/40
f 170/275/40 164/202/40 176/268/40
f 177/276/43 183/277/43 175/278/43
f 175/278/45 181/279/45 173/280/45
f 176/281/46 178/282/46 170/283/46
f 173/280/44 179/284/44 171/285/44
f 170/283/39 180/286/39 172/287/39
f 171/288/47 182/289/47 174/290/47
f 172/287/48 185/291/48 177/276/48
f 174/290/42 184/292/42 176/281/42
f 189/293/44 142/225/44 145/226/44
f 186/294/40 194/295/40 188/296/40
f 188/297/44 145/226/44 143/298/44
f 186/299/44 143/298/44 144/300/44
f 191/301/44 192/302/44 190/303/44
f 193/304/42 198/305/42 192/302/42
f 189/306/41 196/307/41 187/308/41
f 192/302/41 199/309/41 190/303/41
f 200/310/44 195/311/44 196/312/44
f 199/309/44 194/295/44 195/313/44
f 198/305/44 197/314/44 194/315/44
f 201/316/44 196/307/44 197/317/44
f 190/303/43 200/310/43 191/301/43
f 188/318/43 197/314/43 189/319/43
f 187/320/42 195/311/42 186/321/42
f 191/301/40 201/316/40 193/304/40
f 186/299/44 142/225/44 187/322/44
f 140/192/39 141/227/39 139/193/39
f 148/195/40 163/235/40 165/196/40
f 149/198/41 167/244/41 169/199/41
f 156/201/42 162/267/42 164/202/42
f 157/204/43 166/259/43 168/205/43
f 138/207/41 155/216/41 157/208/41
f 140/209/41 157/208/41 161/210/41
f 143/212/42 151/323/42 147/213/42
f 144/215/41 159/324/41 155/216/41
f 139/217/43 146/223/43 148/218/43
f 138/219/43 148/218/43 152/220/43
f 161/210/41 159/324/41 144/215/41
f 152/220/43 150/325/43 142/222/43
f 142/222/43 150/325/43 146/223/43
f 139/193/40 156/228/40 160/224/40
f 160/224/40 158/326/40 145/226/40
f 141/227/40 154/229/40 156/228/40
f 145/226/40 158/326/40 154/229/40
f 141/230/42 149/233/42 153/231/42
f 153/231/42 151/323/42 143/212/42
f 140/214/42 147/213/42 149/233/42
f 162/234/43 164/239/43 165/196/43
f 150/236/41 164/239/41 162/234/41
f 152/238/39 165/196/39 164/239/39
f 146/241/44 162/234/44 163/235/44
f 166/243/42 168/246/42 169/199/42
f 153/245/39 169/199/39 168/246/39
f 147/248/44 166/243/44 167/244/44
f 151/250/40 168/246/40 166/243/40
f 155/252/42 159/327/42 165/253/42
f 163/254/44 166/259/44 157/255/44
f 161/257/39 168/205/39 165/253/39
f 163/254/41 165/253/41 168/205/41
f 154/260/43 158/328/43 169/261/43
f 167/262/44 162/267/44 156/263/44
f 160/265/39 164/202/39 169/261/39
f 162/267/40 174/272/40 176/268/40
f 177/269/40 175/274/40 167/262/40
f 167/262/40 173/273/40 171/270/40
f 164/202/40 170/275/40 172/271/40
f 177/276/43 185/291/43 183/277/43
f 175/278/45 183/277/45 181/279/45
f 176/281/46 184/292/46 178/282/46
f 173/280/44 181/279/44 179/284/44
f 170/283/39 178/282/39 180/286/39
f 171/288/47 179/329/47 182/289/47
f 172/287/48 180/286/48 185/291/48
f 174/290/42 182/289/42 184/292/42
f 189/293/44 187/322/44 142/225/44
f 186/294/40 195/313/40 194/295/40
f 188/297/44 189/293/44 145/226/44
f 186/299/44 188/297/44 143/298/44
f 191/301/44 193/304/44 192/302/44
f 193/304/42 201/330/42 198/305/42
f 189/306/41 197/317/41 196/307/41
f 192/302/41 198/331/41 199/309/41
f 200/310/44 199/332/44 195/311/44
f 199/309/44 198/331/44 194/295/44
f 198/305/44 201/330/44 197/314/44
f 201/316/44 200/333/44 196/307/44
f 190/303/43 199/332/43 200/310/43
f 188/318/43 194/315/43 197/314/43
f 187/320/42 196/312/42 195/311/42
f 191/301/40 200/333/40 201/316/40
f 186/299/44 144/300/44 142/225/44

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB