mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
new centrifuge GUI, heating oven
This commit is contained in:
parent
01aad6bc56
commit
8aa63082b9
@ -644,6 +644,7 @@ public class ModBlocks {
|
||||
public static final int guiID_bomb_multi = 10;
|
||||
|
||||
public static Block heater_firebox;
|
||||
public static Block heater_oven;
|
||||
public static Block heater_oilburner;
|
||||
public static Block heater_electric;
|
||||
|
||||
@ -1830,6 +1831,7 @@ public class ModBlocks {
|
||||
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");
|
||||
heater_oven = new HeaterOven().setBlockName("heater_oven").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire");
|
||||
heater_oilburner = new HeaterOilburner().setBlockName("heater_oilburner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
heater_electric = new HeaterElectric().setBlockName("heater_electric").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
|
||||
@ -3016,6 +3018,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(machine_press, machine_press.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_epress, machine_epress.getUnlocalizedName());
|
||||
register(heater_firebox);
|
||||
register(heater_oven);
|
||||
register(heater_oilburner);
|
||||
register(heater_electric);
|
||||
register(furnace_iron);
|
||||
|
||||
@ -5,6 +5,7 @@ import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.IPersistentInfoProvider;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
@ -31,7 +32,7 @@ import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockFluidBarrel extends BlockContainer implements IPersistentInfoProvider {
|
||||
public class BlockFluidBarrel extends BlockContainer implements ITooltipProvider, IPersistentInfoProvider {
|
||||
|
||||
int capacity;
|
||||
|
||||
@ -169,4 +170,52 @@ public class BlockFluidBarrel extends BlockContainer implements IPersistentInfoP
|
||||
tank.readFromNBT(persistentTag, "tank");
|
||||
list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
|
||||
if(this == ModBlocks.barrel_plastic) {
|
||||
list.add(EnumChatFormatting.AQUA + "Capacity: 12,000mB");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store hot fluids");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store corrosive fluids");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter");
|
||||
}
|
||||
|
||||
if(this == ModBlocks.barrel_corroded) {
|
||||
list.add(EnumChatFormatting.AQUA + "Capacity: 6,000mB");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store hot fluids");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter");
|
||||
list.add(EnumChatFormatting.RED + "Leaky");
|
||||
}
|
||||
|
||||
if(this == ModBlocks.barrel_iron) {
|
||||
list.add(EnumChatFormatting.AQUA + "Capacity: 8,000mB");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store hot fluids");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store corrosive fluids properly");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter");
|
||||
}
|
||||
|
||||
if(this == ModBlocks.barrel_steel) {
|
||||
list.add(EnumChatFormatting.AQUA + "Capacity: 16,000mB");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store hot fluids");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store corrosive fluids");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store highly corrosive fluids properly");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter");
|
||||
}
|
||||
|
||||
if(this == ModBlocks.barrel_antimatter) {
|
||||
list.add(EnumChatFormatting.AQUA + "Capacity: 16,000mB");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store hot fluids");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store antimatter");
|
||||
}
|
||||
|
||||
if(this == ModBlocks.barrel_tcalloy) {
|
||||
list.add(EnumChatFormatting.AQUA + "Capacity: 24,000mB");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store hot fluids");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
48
src/main/java/com/hbm/blocks/machine/HeaterOven.java
Normal file
48
src/main/java/com/hbm/blocks/machine/HeaterOven.java
Normal file
@ -0,0 +1,48 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.TileEntityHeaterOven;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class HeaterOven extends BlockDummyable implements ITooltipProvider {
|
||||
|
||||
public HeaterOven() {
|
||||
super(Material.rock);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
|
||||
if(meta >= 12) return new TileEntityHeaterOven();
|
||||
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;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
this.addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
}
|
||||
@ -154,9 +154,7 @@ public class CentrifugeRecipeHandler extends TemplateRecipeHandler {
|
||||
@Override
|
||||
public void drawExtras(int recipe) {
|
||||
drawProgressBar(21, 24, 195, 55, 16, 16, 48, 7);
|
||||
|
||||
drawProgressBar(56, 5, 176, 0, 54, 54, 48 * 3, 0);
|
||||
|
||||
drawProgressBar(3, 6, 177, 55, 16, 52, 480, 7);
|
||||
}
|
||||
|
||||
|
||||
@ -9,7 +9,6 @@ import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.hbm.handler.nei.AnvilRecipeHandler.RecipeSet;
|
||||
import com.hbm.inventory.gui.GUIMachineGasCent;
|
||||
import com.hbm.inventory.recipes.GasCentrifugeRecipes;
|
||||
import com.hbm.inventory.recipes.MachineRecipes;
|
||||
@ -18,8 +17,6 @@ import com.hbm.lib.RefStrings;
|
||||
import codechicken.nei.NEIServerUtils;
|
||||
import codechicken.nei.PositionedStack;
|
||||
import codechicken.nei.recipe.TemplateRecipeHandler;
|
||||
import codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRect;
|
||||
import codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRectHandler;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.FontRenderer;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.hbm.inventory.container;
|
||||
|
||||
import com.hbm.inventory.SlotMachineOutput;
|
||||
import com.hbm.inventory.SlotUpgrade;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineCentrifuge;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@ -10,69 +11,60 @@ import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ContainerCentrifuge extends Container {
|
||||
|
||||
|
||||
private TileEntityMachineCentrifuge diFurnace;
|
||||
|
||||
|
||||
public ContainerCentrifuge(InventoryPlayer invPlayer, TileEntityMachineCentrifuge tedf) {
|
||||
|
||||
|
||||
diFurnace = tedf;
|
||||
|
||||
this.addSlotToContainer(new Slot(tedf, 0, 26, 17));
|
||||
this.addSlotToContainer(new Slot(tedf, 1, 26, 53));
|
||||
this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 134, 17));
|
||||
this.addSlotToContainer(new SlotMachineOutput(tedf, 3, 152, 17));
|
||||
this.addSlotToContainer(new SlotMachineOutput(tedf, 4, 134, 53));
|
||||
this.addSlotToContainer(new SlotMachineOutput(tedf, 5, 152, 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));
|
||||
|
||||
this.addSlotToContainer(new Slot(tedf, 0, 36, 50));
|
||||
this.addSlotToContainer(new Slot(tedf, 1, 9, 50));
|
||||
this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 63, 50));
|
||||
this.addSlotToContainer(new SlotMachineOutput(tedf, 3, 83, 50));
|
||||
this.addSlotToContainer(new SlotMachineOutput(tedf, 4, 103, 50));
|
||||
this.addSlotToContainer(new SlotMachineOutput(tedf, 5, 123, 50));
|
||||
this.addSlotToContainer(new SlotUpgrade(tedf, 6, 149, 22));
|
||||
this.addSlotToContainer(new SlotUpgrade(tedf, 7, 149, 40));
|
||||
|
||||
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, 104 + i * 18));
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0; i < 9; i++)
|
||||
{
|
||||
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142));
|
||||
|
||||
for(int i = 0; i < 9; i++) {
|
||||
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 162));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2)
|
||||
{
|
||||
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) {
|
||||
ItemStack var3 = null;
|
||||
Slot var4 = (Slot) this.inventorySlots.get(par2);
|
||||
|
||||
if (var4 != null && var4.getHasStack())
|
||||
{
|
||||
|
||||
if(var4 != null && var4.getHasStack()) {
|
||||
ItemStack var5 = var4.getStack();
|
||||
var3 = var5.copy();
|
||||
SlotMachineOutput.checkAchievements(p_82846_1_, var5);
|
||||
|
||||
if (par2 <= 5) {
|
||||
if (!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true))
|
||||
{
|
||||
|
||||
if(par2 <= 6) {
|
||||
if(!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
else if (!this.mergeItemStack(var5, 0, 2, false))
|
||||
{
|
||||
} else if(!this.mergeItemStack(var5, 0, 2, false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (var5.stackSize == 0)
|
||||
{
|
||||
|
||||
if(var5.stackSize == 0) {
|
||||
var4.putStack((ItemStack) null);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
var4.onSlotChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return var3;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInteractWith(EntityPlayer player) {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package com.hbm.inventory.container;
|
||||
|
||||
import com.hbm.tileentity.machine.TileEntityHeaterFirebox;
|
||||
import com.hbm.tileentity.machine.TileEntityFireboxBase;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
@ -10,9 +10,9 @@ import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ContainerFirebox extends Container {
|
||||
|
||||
protected TileEntityHeaterFirebox firebox;
|
||||
protected TileEntityFireboxBase firebox;
|
||||
|
||||
public ContainerFirebox(InventoryPlayer invPlayer, TileEntityHeaterFirebox furnace) {
|
||||
public ContainerFirebox(InventoryPlayer invPlayer, TileEntityFireboxBase furnace) {
|
||||
this.firebox = furnace;
|
||||
this.firebox.openInventory();
|
||||
|
||||
|
||||
@ -5,8 +5,8 @@ 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 com.hbm.tileentity.machine.TileEntityFireboxBase;
|
||||
import com.hbm.tileentity.machine.TileEntityHeaterOven;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
@ -16,12 +16,13 @@ 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 firebox;
|
||||
private TileEntityFireboxBase firebox;
|
||||
private final ResourceLocation texture;
|
||||
|
||||
public GUIFirebox(InventoryPlayer invPlayer, TileEntityHeaterFirebox tedf) {
|
||||
public GUIFirebox(InventoryPlayer invPlayer, TileEntityFireboxBase tedf, ResourceLocation texture) {
|
||||
super(new ContainerFirebox(invPlayer, tedf));
|
||||
firebox = tedf;
|
||||
this.texture = texture;
|
||||
|
||||
this.xSize = 176;
|
||||
this.ySize = 168;
|
||||
@ -38,7 +39,7 @@ public class GUIFirebox extends GuiInfoContainer {
|
||||
|
||||
if(this.isMouseOverSlot(slot, x, y) && !slot.getHasStack()) {
|
||||
|
||||
List<String> bonuses = this.firebox.burnModule.getDesc();
|
||||
List<String> bonuses = this.firebox.getModule().getDesc();
|
||||
|
||||
if(!bonuses.isEmpty()) {
|
||||
this.func_146283_a(bonuses, x, y);
|
||||
@ -47,7 +48,7 @@ public class GUIFirebox extends GuiInfoContainer {
|
||||
}
|
||||
}
|
||||
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 27, 71, 7, x, y, new String[] { String.format("%,d", firebox.heatEnergy) + " / " + String.format("%,d", firebox.maxHeatEnergy) + "TU" });
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 27, 71, 7, x, y, new String[] { String.format("%,d", firebox.heatEnergy) + " / " + String.format("%,d", firebox.getMaxHeat()) + "TU" });
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 36, 71, 7, x, y, new String[] { firebox.burnHeat + "TU/t", (firebox.burnTime / 20) + "s" });
|
||||
}
|
||||
|
||||
@ -55,7 +56,9 @@ public class GUIFirebox extends GuiInfoContainer {
|
||||
protected void drawGuiContainerForegroundLayer(int i, int j) {
|
||||
String name = this.firebox.hasCustomInventoryName() ? this.firebox.getInventoryName() : I18n.format(this.firebox.getInventoryName());
|
||||
|
||||
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
int color = firebox instanceof TileEntityHeaterOven ? 0xffffff : 4210752;
|
||||
|
||||
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, color);
|
||||
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
|
||||
}
|
||||
|
||||
@ -65,7 +68,7 @@ public class GUIFirebox extends GuiInfoContainer {
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
|
||||
int i = firebox.heatEnergy * 69 / firebox.maxHeatEnergy;
|
||||
int i = firebox.heatEnergy * 69 / firebox.getMaxHeat();
|
||||
drawTexturedModalRect(guiLeft + 81, guiTop + 28, 176, 0, i, 5);
|
||||
|
||||
int j = firebox.burnTime * 70 / Math.max(firebox.maxBurnTime, 1);
|
||||
|
||||
@ -13,7 +13,7 @@ import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class GUIMachineCentrifuge extends GuiInfoContainer {
|
||||
|
||||
public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/centrifuge.png");
|
||||
public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_centrifuge.png");
|
||||
private TileEntityMachineCentrifuge centrifuge;
|
||||
|
||||
public GUIMachineCentrifuge(InventoryPlayer invPlayer, TileEntityMachineCentrifuge tedf) {
|
||||
@ -21,7 +21,7 @@ public class GUIMachineCentrifuge extends GuiInfoContainer {
|
||||
centrifuge = tedf;
|
||||
|
||||
this.xSize = 176;
|
||||
this.ySize = 166;
|
||||
this.ySize = 186;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -33,9 +33,9 @@ public class GUIMachineCentrifuge extends GuiInfoContainer {
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer( int i, int j) {
|
||||
String name = this.centrifuge.hasCustomInventoryName() ? this.centrifuge.getInventoryName() : I18n.format(this.centrifuge.getInventoryName());
|
||||
//String name = this.centrifuge.hasCustomInventoryName() ? this.centrifuge.getInventoryName() : I18n.format(this.centrifuge.getInventoryName());
|
||||
|
||||
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
//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);
|
||||
}
|
||||
|
||||
@ -45,20 +45,21 @@ public class GUIMachineCentrifuge extends GuiInfoContainer {
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
|
||||
if(centrifuge.hasPower())
|
||||
{
|
||||
int i1 = (int)centrifuge.getPowerRemainingScaled(54);
|
||||
drawTexturedModalRect(guiLeft + 8, guiTop + 69 - i1, 177, 107 - i1, 16, i1);
|
||||
if(centrifuge.hasPower()) {
|
||||
int i1 = (int) centrifuge.getPowerRemainingScaled(35);
|
||||
drawTexturedModalRect(guiLeft + 9, guiTop + 48 - i1, 176, 35 - i1, 16, i1);
|
||||
}
|
||||
|
||||
if(centrifuge.isProcessing())
|
||||
{
|
||||
int j1 = centrifuge.getCentrifugeProgressScaled(55);
|
||||
drawTexturedModalRect(guiLeft + 61, guiTop + 16, 176, 0, j1, 54);
|
||||
}
|
||||
|
||||
if(centrifuge.hasPower() && centrifuge.canProcess()) {
|
||||
drawTexturedModalRect(guiLeft + 25, guiTop + 34, 194, 54, 18, 18);
|
||||
if(centrifuge.isProcessing()) {
|
||||
int p = centrifuge.getCentrifugeProgressScaled(145);
|
||||
|
||||
for(int i = 0; i < 4; i++) {
|
||||
int h = Math.min(p, 36);
|
||||
drawTexturedModalRect(guiLeft + 65 + i * 20, guiTop + 50 - h, 176, 71 - h, 12, h);
|
||||
p -= h;
|
||||
if(p <= 0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -233,6 +233,13 @@ public class AnvilRecipes {
|
||||
new OreDictStack(CU.ingot(), 8)
|
||||
}, new AnvilOutput(new ItemStack(ModBlocks.heater_firebox))).setTier(2));
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new AStack[] {
|
||||
new ComparableStack(ModItems.ingot_firebrick, 16),
|
||||
new OreDictStack(STEEL.plate(), 4),
|
||||
new OreDictStack(CU.ingot(), 8)
|
||||
}, new AnvilOutput(new ItemStack(ModBlocks.heater_oven))).setTier(2));
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new AStack[] {
|
||||
new ComparableStack(ModItems.tank_steel, 4),
|
||||
|
||||
@ -26,50 +26,6 @@ public class ItemBlockLore extends ItemBlockBase {
|
||||
list.add("Static fluid barrel");
|
||||
}
|
||||
|
||||
if(this.field_150939_a == ModBlocks.barrel_plastic) {
|
||||
list.add(EnumChatFormatting.AQUA + "Capacity: 12,000mB");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store hot fluids");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store corrosive fluids");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter");
|
||||
}
|
||||
|
||||
if(this.field_150939_a == ModBlocks.barrel_corroded) {
|
||||
list.add(EnumChatFormatting.AQUA + "Capacity: 6,000mB");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store hot fluids");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter");
|
||||
list.add(EnumChatFormatting.RED + "Leaky");
|
||||
}
|
||||
|
||||
if(this.field_150939_a == ModBlocks.barrel_iron) {
|
||||
list.add(EnumChatFormatting.AQUA + "Capacity: 8,000mB");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store hot fluids");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store corrosive fluids properly");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter");
|
||||
}
|
||||
|
||||
if(this.field_150939_a == ModBlocks.barrel_steel) {
|
||||
list.add(EnumChatFormatting.AQUA + "Capacity: 16,000mB");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store hot fluids");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store corrosive fluids");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store highly corrosive fluids properly");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter");
|
||||
}
|
||||
|
||||
if(this.field_150939_a == ModBlocks.barrel_antimatter) {
|
||||
list.add(EnumChatFormatting.AQUA + "Capacity: 16,000mB");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store hot fluids");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store antimatter");
|
||||
}
|
||||
|
||||
if(this.field_150939_a == ModBlocks.barrel_tcalloy) {
|
||||
list.add(EnumChatFormatting.AQUA + "Capacity: 24,000mB");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store hot fluids");
|
||||
list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids");
|
||||
list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter");
|
||||
}
|
||||
|
||||
if(this.field_150939_a == ModBlocks.meteor_battery) {
|
||||
list.add("Provides infinite charge to tesla coils");
|
||||
}
|
||||
|
||||
@ -249,6 +249,7 @@ public class ClientProxy extends ServerProxy {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFurnaceIron.class, new RenderFurnaceIron());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFurnaceSteel.class, new RenderFurnaceSteel());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterFirebox.class, new RenderFirebox());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterOven.class, new RenderHeatingOven());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterOilburner.class, new RenderOilburner());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterElectric.class, new RenderElectricHeater());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityStirling.class, new RenderStirling());
|
||||
|
||||
@ -59,6 +59,7 @@ public class ResourceManager {
|
||||
|
||||
//Heaters
|
||||
public static final IModelCustom heater_firebox = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/firebox.obj"));
|
||||
public static final IModelCustom heater_oven = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/heating_oven.obj"));
|
||||
public static final IModelCustom heater_oilburner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/oilburner.obj"));
|
||||
public static final IModelCustom heater_electric = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/electric_heater.obj"), false);
|
||||
|
||||
@ -384,6 +385,7 @@ public class ResourceManager {
|
||||
|
||||
//Heaters
|
||||
public static final ResourceLocation heater_firebox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/firebox.png");
|
||||
public static final ResourceLocation heater_oven_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/heating_oven.png");
|
||||
public static final ResourceLocation heater_oilburner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/oilburner.png");
|
||||
public static final ResourceLocation heater_electric_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/electric_heater.png");
|
||||
|
||||
|
||||
@ -33,8 +33,9 @@ public class RenderMovingItem extends Render {
|
||||
GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F);
|
||||
GL11.glTranslated(0.0, -0.1875, 0.0);
|
||||
|
||||
if(!this.renderManager.options.fancyGraphics)
|
||||
GL11.glTranslated(0.0, 0.0625, 0.0);
|
||||
if(!this.renderManager.options.fancyGraphics) {
|
||||
GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F);
|
||||
}
|
||||
}
|
||||
|
||||
EntityItem dummy = new EntityItem(entity.worldObj, 0, 0, 0, stack);
|
||||
|
||||
@ -1297,17 +1297,6 @@ public class ItemRenderLibrary {
|
||||
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");
|
||||
}});
|
||||
|
||||
renderers.put(ModItems.gear_large, new ItemRenderBase( ) {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, -7, 0);
|
||||
|
||||
@ -3,14 +3,18 @@ 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 com.hbm.tileentity.machine.TileEntityHeaterFirebox;
|
||||
|
||||
import net.minecraft.client.renderer.OpenGlHelper;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class RenderFirebox extends TileEntitySpecialRenderer {
|
||||
public class RenderFirebox extends TileEntitySpecialRenderer implements IItemRendererProvider {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) {
|
||||
@ -58,4 +62,23 @@ public class RenderFirebox extends TileEntitySpecialRenderer {
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemForRenderer() {
|
||||
return Item.getItemFromBlock(ModBlocks.heater_firebox);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemRenderer getRenderer() {
|
||||
return 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");
|
||||
}};
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,82 @@
|
||||
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 com.hbm.tileentity.machine.TileEntityHeaterOven;
|
||||
|
||||
import net.minecraft.client.renderer.OpenGlHelper;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class RenderHeatingOven extends TileEntitySpecialRenderer implements IItemRendererProvider {
|
||||
|
||||
@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);
|
||||
|
||||
TileEntityHeaterOven oven = (TileEntityHeaterOven) tile;
|
||||
|
||||
bindTexture(ResourceManager.heater_oven_tex);
|
||||
ResourceManager.heater_oven.renderPart("Main");
|
||||
|
||||
GL11.glPushMatrix();
|
||||
float door = oven.prevDoorAngle + (oven.doorAngle - oven.prevDoorAngle) * interp;
|
||||
GL11.glTranslated(0, 0, door * 0.75D / 135D);
|
||||
ResourceManager.heater_oven.renderPart("Door");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
if(oven.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_oven.renderPart("InnerBurning");
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
|
||||
GL11.glPopAttrib();
|
||||
GL11.glPopMatrix();
|
||||
} else {
|
||||
ResourceManager.heater_oven.renderPart("Inner");
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemForRenderer() {
|
||||
return Item.getItemFromBlock(ModBlocks.heater_oven);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemRenderer getRenderer() {
|
||||
return new ItemRenderBase() {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, -1, 0);
|
||||
GL11.glScaled(3.25, 3.25, 3.25);
|
||||
}
|
||||
public void renderCommon() {
|
||||
bindTexture(ResourceManager.heater_oven_tex);
|
||||
ResourceManager.heater_oven.renderPart("Main");
|
||||
ResourceManager.heater_oven.renderPart("Door");
|
||||
}};
|
||||
}
|
||||
}
|
||||
@ -3,12 +3,17 @@ 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.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class RenderSteamEngine extends TileEntitySpecialRenderer {
|
||||
public class RenderSteamEngine extends TileEntitySpecialRenderer implements IItemRendererProvider {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) {
|
||||
@ -16,7 +21,6 @@ public class RenderSteamEngine extends TileEntitySpecialRenderer {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
|
||||
switch(tile.getBlockMetadata() - BlockDummyable.offset) {
|
||||
case 3: GL11.glRotatef(90, 0F, 1F, 0F); break;
|
||||
@ -24,32 +28,38 @@ public class RenderSteamEngine extends TileEntitySpecialRenderer {
|
||||
case 2: GL11.glRotatef(270, 0F, 1F, 0F); break;
|
||||
case 4: GL11.glRotatef(0, 0F, 1F, 0F); break;
|
||||
}
|
||||
|
||||
GL11.glTranslated(2, 0, 0);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
double angle = System.currentTimeMillis() % 3600D;
|
||||
GL11.glTranslated(2, 0, 0);
|
||||
renderCommon(angle);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
private void renderCommon(double rot) {
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
bindTexture(ResourceManager.steam_engine_tex);
|
||||
ResourceManager.steam_engine.renderPart("Base");
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(2, 1.375, 0);
|
||||
GL11.glRotated(angle, 0, 0, -1);
|
||||
GL11.glRotated(rot, 0, 0, -1);
|
||||
GL11.glTranslated(-2, -1.375, 0);
|
||||
ResourceManager.steam_engine.renderPart("Flywheel");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(0, 1.375, -0.5);
|
||||
GL11.glRotated(angle * 2D, 1, 0, 0);
|
||||
GL11.glRotated(rot * 2D, 1, 0, 0);
|
||||
GL11.glTranslated(0, -1.375, 0.5);
|
||||
ResourceManager.steam_engine.renderPart("Shaft");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
double sin = Math.sin(angle * Math.PI / 180D) * 0.25D - 0.25D;
|
||||
double cos = Math.cos(angle * Math.PI / 180D) * 0.25D;
|
||||
double sin = Math.sin(rot * Math.PI / 180D) * 0.25D - 0.25D;
|
||||
double cos = Math.cos(rot * Math.PI / 180D) * 0.25D;
|
||||
double ang = Math.acos(cos / 1.875D);
|
||||
GL11.glTranslated(sin, cos, 0);
|
||||
GL11.glTranslated(2.25, 1.375, 0);
|
||||
@ -65,9 +75,27 @@ public class RenderSteamEngine extends TileEntitySpecialRenderer {
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemForRenderer() {
|
||||
return Item.getItemFromBlock(ModBlocks.machine_steam_engine);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemRenderer getRenderer() {
|
||||
return new ItemRenderBase( ) {
|
||||
public void renderInventory() {
|
||||
GL11.glRotatef(90, 0F, -1F, 0F);
|
||||
GL11.glTranslated(0, -1.5, 0);
|
||||
double scale = 2D;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
}
|
||||
public void renderCommonWithStack(ItemStack item) {
|
||||
GL11.glRotatef(90, 0F, 1F, 0F);
|
||||
boolean cog = item.getItemDamage() != 1;
|
||||
RenderSteamEngine.this.renderCommon(cog ? System.currentTimeMillis() % 3600 * 0.1D : 0);
|
||||
}};
|
||||
}
|
||||
}
|
||||
|
||||
@ -231,6 +231,7 @@ public class TileMappings {
|
||||
|
||||
private static void putMachines() {
|
||||
put(TileEntityHeaterFirebox.class, "tileentity_firebox");
|
||||
put(TileEntityHeaterOven.class, "tileentity_heating_oven");
|
||||
put(TileEntityHeaterOilburner.class, "tileentity_oilburner");
|
||||
put(TileEntityHeaterElectric.class, "tileentity_electric_heater");
|
||||
put(TileEntityFurnaceIron.class, "tileentity_furnace_iron");
|
||||
|
||||
@ -252,6 +252,9 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro
|
||||
}
|
||||
|
||||
protected void tryPullHeat() {
|
||||
|
||||
if(this.heat >= this.maxHeat) return;
|
||||
|
||||
TileEntity con = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord);
|
||||
|
||||
if(con instanceof IHeatSource) {
|
||||
|
||||
@ -0,0 +1,201 @@
|
||||
package com.hbm.tileentity.machine;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
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.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public abstract class TileEntityFireboxBase 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 TileEntityFireboxBase() {
|
||||
super(2);
|
||||
}
|
||||
|
||||
@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 = (int) (getModule().getBurnTime(slots[i]) * getTimeMult());
|
||||
|
||||
if(fuel > 0) {
|
||||
this.maxBurnTime = this.burnTime = fuel;
|
||||
this.burnHeat = getModule().getBurnHeat(getBaseHeat(), slots[i]);
|
||||
slots[i].stackSize--;
|
||||
|
||||
if(slots[i].stackSize == 0) {
|
||||
slots[i] = slots[i].getItem().getContainerItem(slots[i]);
|
||||
}
|
||||
|
||||
this.wasOn = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
if(this.heatEnergy < getMaxHeat()) {
|
||||
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(wasOn) {
|
||||
this.heatEnergy = Math.min(this.heatEnergy + this.burnHeat, getMaxHeat());
|
||||
} 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public abstract ModuleBurnTime getModule();
|
||||
public abstract int getBaseHeat();
|
||||
public abstract double getTimeMult();
|
||||
public abstract int getMaxHeat();
|
||||
|
||||
@Override
|
||||
public int[] getAccessibleSlotsFromSide(int meta) {
|
||||
return new int[] { 0, 1 };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemValidForSlot(int i, ItemStack itemStack) {
|
||||
return getModule().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 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;
|
||||
}
|
||||
}
|
||||
@ -172,6 +172,9 @@ public class TileEntityFurnaceSteel extends TileEntityMachineBase implements IGU
|
||||
}
|
||||
|
||||
protected void tryPullHeat() {
|
||||
|
||||
if(this.heat >= this.maxHeat) return;
|
||||
|
||||
TileEntity con = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord);
|
||||
|
||||
if(con instanceof IHeatSource) {
|
||||
|
||||
@ -4,39 +4,21 @@ import java.io.IOException;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.inventory.container.ContainerFirebox;
|
||||
import com.hbm.inventory.gui.GUIFirebox;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.module.ModuleBurnTime;
|
||||
import com.hbm.tileentity.IConfigurableMachine;
|
||||
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.util.ResourceLocation;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityHeaterFirebox extends TileEntityMachineBase implements IGUIProvider, IHeatSource, IConfigurableMachine {
|
||||
|
||||
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 class TileEntityHeaterFirebox extends TileEntityFireboxBase implements IConfigurableMachine {
|
||||
|
||||
public static int baseHeat = 100;
|
||||
public static double timeMult = 1D;
|
||||
@ -57,139 +39,32 @@ public class TileEntityHeaterFirebox extends TileEntityMachineBase implements IG
|
||||
.setBalefireHeatMod(15);
|
||||
|
||||
public TileEntityHeaterFirebox() {
|
||||
super(2);
|
||||
super();
|
||||
}
|
||||
|
||||
@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--;
|
||||
public ModuleBurnTime getModule() {
|
||||
return burnModule;
|
||||
}
|
||||
|
||||
@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 = (int) (burnModule.getBurnTime(slots[i]) * timeMult);
|
||||
|
||||
if(fuel > 0) {
|
||||
this.maxBurnTime = this.burnTime = fuel;
|
||||
this.burnHeat = burnModule.getBurnHeat(baseHeat, slots[i]);
|
||||
slots[i].stackSize--;
|
||||
|
||||
if(slots[i].stackSize == 0) {
|
||||
slots[i] = slots[i].getItem().getContainerItem(slots[i]);
|
||||
}
|
||||
|
||||
this.wasOn = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
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(wasOn) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
public int getBaseHeat() {
|
||||
return baseHeat;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getAccessibleSlotsFromSide(int meta) {
|
||||
return new int[] { 0, 1 };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemValidForSlot(int i, ItemStack itemStack) {
|
||||
return burnModule.getBurnTime(itemStack) > 0;
|
||||
public double getTimeMult() {
|
||||
return timeMult;
|
||||
}
|
||||
|
||||
@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);
|
||||
public int getMaxHeat() {
|
||||
return maxHeatEnergy;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -197,45 +72,12 @@ public class TileEntityHeaterFirebox extends TileEntityMachineBase implements IG
|
||||
return new ContainerFirebox(player.inventory, this);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT) private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_firebox.png");
|
||||
|
||||
@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;
|
||||
return new GUIFirebox(player.inventory, this, texture);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -0,0 +1,133 @@
|
||||
package com.hbm.tileentity.machine;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import com.hbm.inventory.container.ContainerFirebox;
|
||||
import com.hbm.inventory.gui.GUIFirebox;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.module.ModuleBurnTime;
|
||||
import com.hbm.tileentity.IConfigurableMachine;
|
||||
|
||||
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.tileentity.TileEntity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TileEntityHeaterOven extends TileEntityFireboxBase implements IConfigurableMachine {
|
||||
|
||||
public static int baseHeat = 500;
|
||||
public static double timeMult = 0.125D;
|
||||
public static int maxHeatEnergy = 500_000;
|
||||
public static double heatEff = 0.5D;
|
||||
public static ModuleBurnTime burnModule = new ModuleBurnTime()
|
||||
.setLigniteTimeMod(1.25)
|
||||
.setCoalTimeMod(1.25)
|
||||
.setCokeTimeMod(1.25)
|
||||
.setSolidTimeMod(1.5)
|
||||
.setRocketTimeMod(1.5)
|
||||
.setBalefireTimeMod(0.5)
|
||||
|
||||
.setLigniteHeatMod(2)
|
||||
.setCoalHeatMod(2)
|
||||
.setCokeHeatMod(2)
|
||||
.setSolidHeatMod(3)
|
||||
.setRocketHeatMod(5)
|
||||
.setBalefireHeatMod(15);
|
||||
|
||||
public TileEntityHeaterOven() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "container.heaterOven";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
this.tryPullHeat();
|
||||
}
|
||||
|
||||
super.updateEntity();
|
||||
}
|
||||
|
||||
protected void tryPullHeat() {
|
||||
TileEntity con = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord);
|
||||
|
||||
if(con instanceof IHeatSource) {
|
||||
IHeatSource source = (IHeatSource) con;
|
||||
int toPull = Math.max(Math.min(source.getHeatStored(), this.getMaxHeat() - this.heatEnergy), 0);
|
||||
this.heatEnergy += toPull * heatEff;
|
||||
source.useUpHeat(toPull);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ModuleBurnTime getModule() {
|
||||
return burnModule;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBaseHeat() {
|
||||
return baseHeat;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getTimeMult() {
|
||||
return timeMult;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxHeat() {
|
||||
return maxHeatEnergy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new ContainerFirebox(player.inventory, this);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT) private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_heating_oven.png");
|
||||
|
||||
@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, texture);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getConfigName() {
|
||||
return "heatingoven";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readIfPresent(JsonObject obj) {
|
||||
baseHeat = IConfigurableMachine.grab(obj, "I:baseHeat", baseHeat);
|
||||
timeMult = IConfigurableMachine.grab(obj, "D:burnTimeMult", timeMult);
|
||||
heatEff = IConfigurableMachine.grab(obj, "D:heatPullEff", heatEff);
|
||||
maxHeatEnergy = IConfigurableMachine.grab(obj, "I:heatCap", maxHeatEnergy);
|
||||
if(obj.has("burnModule")) {
|
||||
burnModule.readIfPresent(obj.get("M:burnModule").getAsJsonObject());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeConfig(JsonWriter writer) throws IOException {
|
||||
writer.name("I:baseHeat").value(baseHeat);
|
||||
writer.name("D:burnTimeMult").value(timeMult);
|
||||
writer.name("D:heatPullEff").value(heatEff);
|
||||
writer.name("I:heatCap").value(maxHeatEnergy);
|
||||
writer.name("M:burnModule").beginObject();
|
||||
burnModule.writeConfig(writer);
|
||||
writer.endObject();
|
||||
}
|
||||
}
|
||||
@ -1,6 +1,8 @@
|
||||
package com.hbm.tileentity.machine;
|
||||
|
||||
import com.hbm.inventory.UpgradeManager;
|
||||
import com.hbm.inventory.recipes.CentrifugeRecipes;
|
||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.sound.AudioWrapper;
|
||||
@ -33,7 +35,7 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement
|
||||
private static final int[] slot_io = new int[] { 0, 2, 3, 4, 5 };
|
||||
|
||||
public TileEntityMachineCentrifuge() {
|
||||
super(6);
|
||||
super(8);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
@ -141,9 +143,21 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement
|
||||
this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord);
|
||||
|
||||
power = Library.chargeTEFromItems(slots, 1, power, maxPower);
|
||||
|
||||
int consumption = 200;
|
||||
int speed = 1;
|
||||
|
||||
UpgradeManager.eval(slots, 6, 7);
|
||||
speed += Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3);
|
||||
consumption += Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) * 200;
|
||||
|
||||
speed *= Math.min(UpgradeManager.getLevel(UpgradeType.OVERDRIVE), 3) * 5;
|
||||
consumption += Math.min(UpgradeManager.getLevel(UpgradeType.OVERDRIVE), 3) * 10000;
|
||||
|
||||
consumption /= (1 + Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3));
|
||||
|
||||
if(hasPower() && isProcessing()) {
|
||||
this.power -= 200;
|
||||
this.power -= consumption;
|
||||
|
||||
if(this.power < 0) {
|
||||
this.power = 0;
|
||||
@ -157,7 +171,7 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement
|
||||
}
|
||||
|
||||
if(isProgressing) {
|
||||
progress++;
|
||||
progress += speed;
|
||||
|
||||
if(this.progress >= TileEntityMachineCentrifuge.processingSpeed) {
|
||||
this.progress = 0;
|
||||
|
||||
@ -307,6 +307,7 @@ container.generator=Atomreaktor
|
||||
container.hadron=Teilchenbeschleuniger
|
||||
container.heaterFirebox=Feuerbüchse
|
||||
container.heaterOilburner=Brenner
|
||||
container.heaterOven=Heizofen
|
||||
container.iGenerator=Industrieller Generator
|
||||
container.keyForge=Schlossertisch
|
||||
container.launchPad=Raketenabschussrampe
|
||||
@ -3573,6 +3574,8 @@ tile.heater_firebox.name=Feuerbüchse
|
||||
tile.heater_firebox.desc=Erzeugt Wärme aus Festbrennstoff.
|
||||
tile.heater_oilburner.name=Brenner
|
||||
tile.heater_oilburner.desc=Erzäuft Wärme aus fluiden Brennstoffen.
|
||||
tile.heater_oven.name=Heizofen
|
||||
tile.heater_oven.desc=Erzeugt Wärme aus Festbrennstoff.$Nimmt von unten Wärme mit 50%% Effizienz auf.
|
||||
tile.hev_battery.name=Anzugs-Batterie
|
||||
tile.iter.name=Kernfusionsreaktor
|
||||
tile.ladder_aluminium.name=Aluminiumleiter
|
||||
|
||||
@ -497,6 +497,7 @@ container.generator=Nuclear Reactor
|
||||
container.hadron=Particle Accelerator
|
||||
container.heaterFirebox=Firebox
|
||||
container.heaterOilburner=Fluid Burner
|
||||
container.heaterOven=Heating Oven
|
||||
container.iGenerator=Industrial Generator
|
||||
container.keyForge=Locksmith Table
|
||||
container.launchPad=Missile Launch Pad
|
||||
@ -4011,6 +4012,8 @@ tile.heater_firebox.name=Firebox
|
||||
tile.heater_firebox.desc=Burns solid fuel to produce heat.
|
||||
tile.heater_oilburner.name=Fluid Burner
|
||||
tile.heater_oilburner.desc=Burns fluids to produce heat.
|
||||
tile.heater_oven.name=Heating Oven
|
||||
tile.heater_oven.desc=Burns solid fuel to produce heat.$Accepts heat from the bottom with 50%% efficiency.
|
||||
tile.hev_battery.name=Suit Battery
|
||||
tile.iter.name=Fusion Reactor
|
||||
tile.ladder_aluminium.name=Aluminium Ladder
|
||||
|
||||
642
src/main/resources/assets/hbm/models/machines/heating_oven.obj
Normal file
642
src/main/resources/assets/hbm/models/machines/heating_oven.obj
Normal file
@ -0,0 +1,642 @@
|
||||
# Blender v2.79 (sub 0) OBJ File: 'heating_oven.blend'
|
||||
# www.blender.org
|
||||
o Door
|
||||
v 1.500000 0.812500 0.437500
|
||||
v 1.500000 0.187500 0.437500
|
||||
v 1.500000 0.812500 -0.437500
|
||||
v 1.500000 0.187500 -0.437500
|
||||
v 1.562500 0.812500 -0.437500
|
||||
v 1.562500 0.812500 0.437500
|
||||
v 1.562500 0.187500 0.437500
|
||||
v 1.562500 0.187500 -0.437500
|
||||
v 1.625000 0.312500 -0.312500
|
||||
v 1.625000 0.312500 -0.250000
|
||||
v 1.625000 0.687500 -0.312500
|
||||
v 1.625000 0.687500 -0.250000
|
||||
v 1.562500 0.687500 -0.250000
|
||||
v 1.562500 0.687500 -0.312500
|
||||
v 1.562500 0.312500 -0.250000
|
||||
v 1.562500 0.312500 -0.312500
|
||||
v 1.562500 0.750000 -0.312500
|
||||
v 1.562500 0.250000 -0.312500
|
||||
v 1.562500 0.250000 -0.250000
|
||||
v 1.562500 0.750000 -0.250000
|
||||
v 1.687500 0.750000 -0.250000
|
||||
v 1.687500 0.250000 -0.250000
|
||||
v 1.687500 0.250000 -0.312500
|
||||
v 1.687500 0.750000 -0.312500
|
||||
vt 0.431034 0.196429
|
||||
vt 0.551724 0.285714
|
||||
vt 0.431034 0.285714
|
||||
vt 0.551724 0.187500
|
||||
vt 0.431034 0.187500
|
||||
vt 0.431034 0.294643
|
||||
vt 0.551724 0.294643
|
||||
vt 0.560345 0.285714
|
||||
vt 0.551724 0.196429
|
||||
vt 0.560345 0.196429
|
||||
vt 0.422414 0.196429
|
||||
vt 0.422414 0.285714
|
||||
vt 0.439655 0.401786
|
||||
vt 0.431034 0.410714
|
||||
vt 0.431034 0.392857
|
||||
vt 0.413793 0.312500
|
||||
vt 0.422414 0.303571
|
||||
vt 0.422414 0.321429
|
||||
vt 0.422414 0.392857
|
||||
vt 0.413793 0.330357
|
||||
vt 0.413793 0.401786
|
||||
vt 0.422414 0.410714
|
||||
vt 0.413793 0.410714
|
||||
vt 0.439655 0.383929
|
||||
vt 0.448276 0.330357
|
||||
vt 0.448276 0.383929
|
||||
vt 0.448276 0.410714
|
||||
vt 0.439655 0.410714
|
||||
vt 0.448276 0.312500
|
||||
vt 0.439655 0.303571
|
||||
vt 0.448276 0.303571
|
||||
vt 0.431034 0.321429
|
||||
vt 0.439655 0.312500
|
||||
vt 0.431034 0.303571
|
||||
vt 0.439655 0.330357
|
||||
vt 0.413793 0.303571
|
||||
vt 0.413793 0.383929
|
||||
vt 0.448276 0.401786
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
s off
|
||||
f 7/1/1 5/2/1 6/3/1
|
||||
f 4/4/2 7/1/2 2/5/2
|
||||
f 1/6/3 5/2/3 3/7/3
|
||||
f 3/8/4 8/9/4 4/10/4
|
||||
f 2/11/5 6/3/5 1/12/5
|
||||
f 11/13/4 17/14/4 24/15/4
|
||||
f 10/16/5 19/17/5 22/18/5
|
||||
f 21/19/5 10/20/5 22/18/5
|
||||
f 12/21/5 20/22/5 13/23/5
|
||||
f 11/24/6 10/25/6 12/26/6
|
||||
f 11/13/2 13/27/2 14/28/2
|
||||
f 10/29/3 16/30/3 15/31/3
|
||||
f 19/17/2 23/32/2 22/18/2
|
||||
f 17/14/3 21/19/3 24/15/3
|
||||
f 21/19/1 23/32/1 24/15/1
|
||||
f 9/33/4 18/34/4 16/30/4
|
||||
f 9/35/4 24/15/4 23/32/4
|
||||
f 7/1/1 8/9/1 5/2/1
|
||||
f 4/4/2 8/9/2 7/1/2
|
||||
f 1/6/3 6/3/3 5/2/3
|
||||
f 3/8/4 5/2/4 8/9/4
|
||||
f 2/11/5 7/1/5 6/3/5
|
||||
f 11/13/4 14/28/4 17/14/4
|
||||
f 10/16/5 15/36/5 19/17/5
|
||||
f 21/19/5 12/37/5 10/20/5
|
||||
f 12/21/5 21/19/5 20/22/5
|
||||
f 11/24/6 9/35/6 10/25/6
|
||||
f 11/13/2 12/38/2 13/27/2
|
||||
f 10/29/3 9/33/3 16/30/3
|
||||
f 19/17/2 18/34/2 23/32/2
|
||||
f 17/14/3 20/22/3 21/19/3
|
||||
f 21/19/1 22/18/1 23/32/1
|
||||
f 9/33/4 23/32/4 18/34/4
|
||||
f 9/35/4 11/24/4 24/15/4
|
||||
o Inner
|
||||
v 1.375000 0.750000 -0.375000
|
||||
v 1.375000 0.750000 0.375000
|
||||
v 1.375000 0.250000 0.375000
|
||||
v 1.375000 0.250000 -0.375000
|
||||
v 1.375000 0.875000 -0.375000
|
||||
v 1.375000 0.875000 0.375000
|
||||
v 1.375000 0.125000 0.375000
|
||||
v 1.375000 0.125000 -0.375000
|
||||
v 0.625000 0.875000 -0.375000
|
||||
v 0.625000 0.875000 0.375000
|
||||
v 0.625000 0.125000 0.375000
|
||||
v 0.625000 0.125000 -0.375000
|
||||
vt 0.689655 0.196429
|
||||
vt 0.586207 0.214286
|
||||
vt 0.586207 0.196429
|
||||
vt 0.586207 0.125000
|
||||
vt 0.689655 0.107143
|
||||
vt 0.689655 0.125000
|
||||
vt 0.896552 -0.000000
|
||||
vt 0.793103 0.107143
|
||||
vt 0.793103 -0.000000
|
||||
vt 0.793103 0.321429
|
||||
vt 0.896552 0.214286
|
||||
vt 0.896552 0.321429
|
||||
vt 0.793103 0.214286
|
||||
vt 0.896552 0.107143
|
||||
vt 0.689655 0.214286
|
||||
vt 1.000000 0.125000
|
||||
vt 0.586207 0.107143
|
||||
vt 1.000000 0.107143
|
||||
vt 1.000000 0.196429
|
||||
vt 1.000000 0.214286
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
s off
|
||||
f 26/39/7 29/40/7 25/41/7
|
||||
f 28/42/7 31/43/7 27/44/7
|
||||
f 32/45/8 35/46/8 31/47/8
|
||||
f 30/48/9 33/49/9 29/50/9
|
||||
f 34/51/10 36/52/10 33/49/10
|
||||
f 34/51/11 30/53/11 26/39/11
|
||||
f 33/49/12 36/52/12 28/54/12
|
||||
f 26/39/7 30/53/7 29/40/7
|
||||
f 28/42/7 32/55/7 31/43/7
|
||||
f 32/45/8 36/52/8 35/46/8
|
||||
f 30/48/9 34/51/9 33/49/9
|
||||
f 34/51/10 35/46/10 36/52/10
|
||||
f 26/39/11 27/44/11 34/51/11
|
||||
f 27/44/11 31/43/11 35/46/11
|
||||
f 34/51/11 27/44/11 35/46/11
|
||||
f 32/56/12 28/54/12 36/52/12
|
||||
f 28/54/12 25/57/12 33/49/12
|
||||
f 25/57/12 29/58/12 33/49/12
|
||||
o InnerBurning
|
||||
v 1.375000 0.125000 0.375000
|
||||
v 1.375000 0.125000 -0.375000
|
||||
v 0.625000 0.125000 0.375000
|
||||
v 0.625000 0.250000 -0.375000
|
||||
v 1.375000 0.125000 0.250000
|
||||
v 1.375000 0.187500 0.125000
|
||||
v 1.375000 0.187500 -0.000000
|
||||
v 1.375000 0.125000 -0.125000
|
||||
v 1.375000 0.125000 -0.250000
|
||||
v 0.625000 0.187500 0.250000
|
||||
v 0.625000 0.250000 0.125000
|
||||
v 0.625000 0.250000 -0.000000
|
||||
v 0.625000 0.187500 -0.125000
|
||||
v 0.625000 0.187500 -0.250000
|
||||
v 0.750000 0.187500 0.375000
|
||||
v 0.875000 0.187500 0.375000
|
||||
v 1.000000 0.250000 0.375000
|
||||
v 1.125000 0.187500 0.375000
|
||||
v 1.250000 0.125000 0.375000
|
||||
v 1.250000 0.125000 -0.375000
|
||||
v 1.125000 0.187500 -0.375000
|
||||
v 1.000000 0.125000 -0.375000
|
||||
v 0.875000 0.187500 -0.375000
|
||||
v 0.750000 0.187500 -0.375000
|
||||
v 1.250000 0.187500 0.250000
|
||||
v 1.125000 0.187500 0.250000
|
||||
v 1.000000 0.250000 0.250000
|
||||
v 0.875000 0.250000 0.250000
|
||||
v 0.750000 0.187500 0.250000
|
||||
v 1.250000 0.187500 0.125000
|
||||
v 1.125000 0.250000 0.125000
|
||||
v 1.000000 0.250000 0.125000
|
||||
v 0.875000 0.312500 0.125000
|
||||
v 0.750000 0.250000 0.125000
|
||||
v 1.250000 0.187500 -0.000000
|
||||
v 1.125000 0.250000 -0.000000
|
||||
v 1.000000 0.312500 -0.000000
|
||||
v 0.875000 0.312500 -0.000000
|
||||
v 0.750000 0.250000 -0.000000
|
||||
v 1.250000 0.187500 -0.125000
|
||||
v 1.125000 0.250000 -0.125000
|
||||
v 1.000000 0.250000 -0.125000
|
||||
v 0.875000 0.250000 -0.125000
|
||||
v 0.750000 0.250000 -0.125000
|
||||
v 1.250000 0.187500 -0.250000
|
||||
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.250000 -0.250000
|
||||
v 1.375000 0.750000 -0.375000
|
||||
v 1.375000 0.750000 0.375000
|
||||
v 1.375000 0.250000 0.375000
|
||||
v 1.375000 0.250000 -0.375000
|
||||
v 1.375000 0.875000 -0.375000
|
||||
v 1.375000 0.875000 0.375000
|
||||
v 1.375000 0.125000 0.375000
|
||||
v 1.375000 0.125000 -0.375000
|
||||
v 0.625000 0.875000 -0.375000
|
||||
v 0.625000 0.875000 0.375000
|
||||
v 0.625000 0.125000 0.375000
|
||||
v 0.625000 0.125000 -0.375000
|
||||
vt 0.879310 0.410714
|
||||
vt 0.896552 0.410714
|
||||
vt 0.879310 0.428571
|
||||
vt 0.793103 0.410714
|
||||
vt 0.810345 0.410714
|
||||
vt 0.793103 0.428571
|
||||
vt 0.827586 0.410714
|
||||
vt 0.810345 0.428571
|
||||
vt 0.844828 0.410714
|
||||
vt 0.827586 0.428571
|
||||
vt 0.862069 0.410714
|
||||
vt 0.844828 0.428571
|
||||
vt 0.862069 0.428571
|
||||
vt 0.793103 0.321429
|
||||
vt 0.810345 0.321429
|
||||
vt 0.793103 0.339286
|
||||
vt 0.810345 0.339286
|
||||
vt 0.793103 0.357143
|
||||
vt 0.810345 0.357143
|
||||
vt 0.793103 0.375000
|
||||
vt 0.810345 0.375000
|
||||
vt 0.810345 0.392857
|
||||
vt 0.793103 0.392857
|
||||
vt 0.827586 0.321429
|
||||
vt 0.827586 0.339286
|
||||
vt 0.827586 0.357143
|
||||
vt 0.827586 0.375000
|
||||
vt 0.827586 0.392857
|
||||
vt 0.844828 0.321429
|
||||
vt 0.844828 0.339286
|
||||
vt 0.844828 0.357143
|
||||
vt 0.844828 0.375000
|
||||
vt 0.844828 0.392857
|
||||
vt 0.862069 0.339286
|
||||
vt 0.862069 0.357143
|
||||
vt 0.862069 0.375000
|
||||
vt 0.879310 0.321429
|
||||
vt 0.862069 0.321429
|
||||
vt 0.879310 0.339286
|
||||
vt 0.879310 0.357143
|
||||
vt 0.879310 0.375000
|
||||
vt 0.862069 0.392857
|
||||
vt 0.879310 0.392857
|
||||
vt 0.896552 0.339286
|
||||
vt 0.896552 0.357143
|
||||
vt 0.896552 0.375000
|
||||
vt 0.896552 0.321429
|
||||
vt 0.896552 0.392857
|
||||
vt 0.896552 0.428571
|
||||
vt 0.689655 0.517857
|
||||
vt 0.586207 0.535714
|
||||
vt 0.586207 0.517857
|
||||
vt 0.586207 0.446429
|
||||
vt 0.689655 0.428571
|
||||
vt 0.689655 0.446429
|
||||
vt 0.793103 0.642857
|
||||
vt 0.896552 0.535714
|
||||
vt 0.896552 0.642857
|
||||
vt 0.793103 0.535714
|
||||
vt 0.896552 0.428571
|
||||
vt 0.689655 0.535714
|
||||
vt 1.000000 0.446429
|
||||
vt 0.586207 0.428571
|
||||
vt 0.793103 0.428571
|
||||
vt 1.000000 0.428571
|
||||
vt 1.000000 0.517857
|
||||
vt 1.000000 0.535714
|
||||
vn -0.4082 0.8165 -0.4082
|
||||
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.0000 0.8944 -0.4472
|
||||
vn 0.4082 0.8165 -0.4082
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
s off
|
||||
f 85/59/13 60/60/13 50/61/13
|
||||
f 51/62/14 65/63/14 39/64/14
|
||||
f 70/65/15 46/66/15 65/63/15
|
||||
f 75/67/16 47/68/16 70/65/16
|
||||
f 75/67/16 80/69/16 48/70/16
|
||||
f 80/69/14 85/59/14 49/71/14
|
||||
f 37/72/16 41/73/16 55/74/16
|
||||
f 55/74/17 61/75/17 54/76/17
|
||||
f 62/77/18 53/78/18 54/76/18
|
||||
f 53/78/16 63/79/16 64/80/16
|
||||
f 52/81/19 64/80/19 65/63/19
|
||||
f 42/82/17 61/75/17 41/73/17
|
||||
f 61/75/18 66/83/18 67/84/18
|
||||
f 62/77/17 67/84/17 63/79/17
|
||||
f 63/79/18 68/85/18 69/86/18
|
||||
f 64/80/19 70/65/19 65/63/19
|
||||
f 43/87/16 66/83/16 42/82/16
|
||||
f 71/88/18 67/84/18 66/83/18
|
||||
f 67/84/18 72/89/18 73/90/18
|
||||
f 68/85/17 73/90/17 69/86/17
|
||||
f 74/91/14 70/65/14 69/86/14
|
||||
f 43/87/16 76/92/16 71/88/16
|
||||
f 76/92/18 72/89/18 71/88/18
|
||||
f 72/89/18 77/93/18 73/90/18
|
||||
f 78/94/20 74/91/20 73/90/20
|
||||
f 74/91/14 80/69/14 75/67/14
|
||||
f 45/95/18 76/92/18 44/96/18
|
||||
f 76/92/18 81/97/18 77/93/18
|
||||
f 82/98/20 78/94/20 77/93/20
|
||||
f 83/99/20 79/100/20 78/94/20
|
||||
f 79/100/21 84/101/21 85/59/21
|
||||
f 45/95/21 56/102/21 81/97/21
|
||||
f 81/97/21 56/102/21 57/103/21
|
||||
f 57/103/16 83/99/16 82/98/16
|
||||
f 83/99/20 58/104/20 84/101/20
|
||||
f 84/101/21 60/60/21 85/59/21
|
||||
f 55/74/17 41/73/17 61/75/17
|
||||
f 54/76/16 61/75/16 62/77/16
|
||||
f 73/90/15 68/85/15 67/84/15
|
||||
f 67/84/15 62/77/15 61/75/15
|
||||
f 69/86/16 73/90/16 74/91/16
|
||||
f 73/90/20 77/93/20 78/94/20
|
||||
f 63/79/16 67/84/16 68/85/16
|
||||
f 77/93/20 81/97/20 82/98/20
|
||||
f 69/86/15 64/80/15 63/79/15
|
||||
f 76/92/21 43/87/21 44/96/21
|
||||
f 56/102/16 45/95/16 38/105/16
|
||||
f 84/101/18 58/104/18 59/106/18
|
||||
f 49/71/14 85/59/14 50/61/14
|
||||
f 85/59/16 80/69/16 79/100/16
|
||||
f 50/61/17 60/60/17 40/107/17
|
||||
f 48/70/13 80/69/13 49/71/13
|
||||
f 80/69/20 74/91/20 79/100/20
|
||||
f 39/64/15 65/63/15 46/66/15
|
||||
f 65/63/16 51/62/16 52/81/16
|
||||
f 87/108/22 90/109/22 86/110/22
|
||||
f 64/80/19 52/81/19 53/78/19
|
||||
f 57/103/16 82/98/16 81/97/16
|
||||
f 89/111/22 92/112/22 88/113/22
|
||||
f 91/114/23 94/115/23 90/116/23
|
||||
f 95/117/24 97/118/24 94/115/24
|
||||
f 95/117/25 91/119/25 87/108/25
|
||||
f 94/115/26 97/118/26 89/120/26
|
||||
f 70/65/15 47/68/15 46/66/15
|
||||
f 75/67/16 48/70/16 47/68/16
|
||||
f 62/77/18 63/79/18 53/78/18
|
||||
f 42/82/16 66/83/16 61/75/16
|
||||
f 64/80/19 69/86/19 70/65/19
|
||||
f 43/87/16 71/88/16 66/83/16
|
||||
f 71/88/18 72/89/18 67/84/18
|
||||
f 74/91/14 75/67/14 70/65/14
|
||||
f 76/92/18 77/93/18 72/89/18
|
||||
f 78/94/20 79/100/20 74/91/20
|
||||
f 45/95/18 81/97/18 76/92/18
|
||||
f 82/98/20 83/99/20 78/94/20
|
||||
f 83/99/20 84/101/20 79/100/20
|
||||
f 57/103/13 58/104/13 83/99/13
|
||||
f 84/101/16 59/106/16 60/60/16
|
||||
f 87/108/22 91/119/22 90/109/22
|
||||
f 89/111/22 93/121/22 92/112/22
|
||||
f 91/114/23 95/117/23 94/115/23
|
||||
f 95/117/24 96/122/24 97/118/24
|
||||
f 87/108/25 88/113/25 95/117/25
|
||||
f 88/113/25 92/112/25 96/122/25
|
||||
f 95/117/25 88/113/25 96/122/25
|
||||
f 93/123/26 89/120/26 97/118/26
|
||||
f 89/120/26 86/124/26 94/115/26
|
||||
f 86/124/26 90/125/26 94/115/26
|
||||
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 -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.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
|
||||
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
|
||||
v 1.500000 0.750000 0.375000
|
||||
v 1.500000 0.250000 0.375000
|
||||
v 1.500000 0.750000 -0.375000
|
||||
v 1.500000 0.250000 -0.375000
|
||||
v 1.375000 0.750000 -0.375000
|
||||
v 1.375000 0.750000 0.375000
|
||||
v 1.375000 0.250000 0.375000
|
||||
v 1.375000 0.250000 -0.375000
|
||||
vt 0.568965 0.000000
|
||||
vt 0.431034 0.008929
|
||||
vt 0.431034 -0.000000
|
||||
vt 0.275862 0.714286
|
||||
vt 0.000000 0.571429
|
||||
vt 0.413793 0.571429
|
||||
vt 0.413793 0.428571
|
||||
vt -0.000000 0.571429
|
||||
vt -0.000000 0.428571
|
||||
vt 0.155172 0.535714
|
||||
vt 0.413793 0.428571
|
||||
vt 0.000000 0.571429
|
||||
vt 0.000000 0.428571
|
||||
vt 0.413793 0.428571
|
||||
vt 0.000000 0.571429
|
||||
vt 0.000000 0.428571
|
||||
vt 0.586207 0.160714
|
||||
vt 0.577586 0.017857
|
||||
vt 0.586207 0.017857
|
||||
vt 0.275862 0.857143
|
||||
vt 0.413793 1.000000
|
||||
vt 0.137931 0.857143
|
||||
vt 0.000000 1.000000
|
||||
vt 0.137931 0.714286
|
||||
vt 0.439655 0.026786
|
||||
vt 0.560345 0.151786
|
||||
vt 0.439655 0.151786
|
||||
vt 0.431034 0.026786
|
||||
vt 0.431034 0.178571
|
||||
vt 0.568965 0.169643
|
||||
vt 0.568965 0.178571
|
||||
vt 0.560345 0.026786
|
||||
vt 0.568965 0.151786
|
||||
vt 0.560345 0.026786
|
||||
vt 0.439655 0.151786
|
||||
vt 0.439655 0.026786
|
||||
vt 0.431034 0.178571
|
||||
vt 0.568965 0.169643
|
||||
vt 0.568965 0.178571
|
||||
vt 0.560345 0.017857
|
||||
vt 0.560345 0.151786
|
||||
vt 0.439655 0.160714
|
||||
vt 0.413793 0.000000
|
||||
vt 0.137931 0.142857
|
||||
vt 0.000000 0.000000
|
||||
vt 0.413793 0.428571
|
||||
vt 0.275862 0.142857
|
||||
vt 0.000000 0.428571
|
||||
vt 0.275862 0.285714
|
||||
vt 0.137931 0.285714
|
||||
vt 0.568965 0.008929
|
||||
vt 0.568965 0.151786
|
||||
vt 0.577586 0.017857
|
||||
vt 0.577586 0.160714
|
||||
vt 0.431034 0.026786
|
||||
vt 0.422414 0.160714
|
||||
vt 0.422414 0.017857
|
||||
vt 0.431034 0.169643
|
||||
vt 0.586207 0.160714
|
||||
vt 0.586207 0.017857
|
||||
vt 0.413793 0.017857
|
||||
vt 0.413793 0.160714
|
||||
vt 0.431034 0.169643
|
||||
vt 0.560345 0.160714
|
||||
vt 0.577586 0.160714
|
||||
vt 0.568965 0.026786
|
||||
vt 0.422414 0.017857
|
||||
vt 0.431034 0.151786
|
||||
vt 0.422414 0.160714
|
||||
vt 0.568965 0.008929
|
||||
vt 0.439655 0.017857
|
||||
vt 0.431034 0.008929
|
||||
vt 0.413793 0.017857
|
||||
vt 0.413793 0.160714
|
||||
vt 0.560345 0.017857
|
||||
vt 0.439655 0.160714
|
||||
vt 0.568965 -0.000000
|
||||
vt 0.431034 -0.000000
|
||||
vt 0.689655 0.214286
|
||||
vt 0.586207 0.232143
|
||||
vt 0.586207 0.214286
|
||||
vt 0.258621 0.535714
|
||||
vt 0.258621 0.464286
|
||||
vt 0.155172 0.464286
|
||||
vt 0.586207 0.321429
|
||||
vt 0.689655 0.303571
|
||||
vt 0.689655 0.321429
|
||||
vt 0.706897 0.303571
|
||||
vt 0.689655 0.232143
|
||||
vt 0.706897 0.232143
|
||||
vt 0.568965 0.232143
|
||||
vt 0.586207 0.303571
|
||||
vt 0.568965 0.303571
|
||||
vt 0.413793 0.571429
|
||||
vt 0.413793 0.571429
|
||||
vt 0.413793 0.571429
|
||||
vt 0.439655 0.017857
|
||||
vt 0.560345 0.160714
|
||||
vt 0.568965 0.026786
|
||||
vt 0.431034 0.151786
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
s off
|
||||
f 116/126/27 123/127/27 114/128/27
|
||||
f 109/129/28 103/130/28 105/131/28
|
||||
f 99/132/29 102/133/29 98/134/29
|
||||
f 138/135/27 105/131/27 103/130/27
|
||||
f 98/136/30 104/137/30 100/138/30
|
||||
f 100/139/31 105/140/31 101/141/31
|
||||
f 108/142/29 133/143/29 109/144/29
|
||||
f 108/145/28 105/131/28 104/146/28
|
||||
f 106/147/28 104/146/28 102/148/28
|
||||
f 107/149/28 102/148/28 103/130/28
|
||||
f 112/150/28 110/151/28 111/152/28
|
||||
f 111/152/29 136/153/29 112/150/29
|
||||
f 106/154/27 130/155/27 108/156/27
|
||||
f 113/157/31 134/158/31 110/151/31
|
||||
f 118/159/32 120/160/32 119/161/32
|
||||
f 115/162/30 125/163/30 117/164/30
|
||||
f 119/161/30 126/165/30 118/159/30
|
||||
f 121/166/27 128/167/27 120/160/27
|
||||
f 100/168/32 114/169/32 98/170/32
|
||||
f 101/171/32 116/172/32 100/168/32
|
||||
f 99/173/32 117/174/32 101/171/32
|
||||
f 98/170/32 115/175/32 99/173/32
|
||||
f 126/165/32 123/127/32 122/176/32
|
||||
f 129/177/32 122/178/32 125/179/32
|
||||
f 127/180/32 124/181/32 123/182/32
|
||||
f 128/167/32 125/163/32 124/183/32
|
||||
f 118/159/31 129/177/31 121/166/31
|
||||
f 120/160/29 127/180/29 119/161/29
|
||||
f 117/184/29 122/178/29 116/185/29
|
||||
f 114/186/31 124/181/31 115/187/31
|
||||
f 131/188/28 134/189/28 130/155/28
|
||||
f 130/190/28 137/191/28 133/143/28
|
||||
f 132/192/28 135/193/28 131/194/28
|
||||
f 133/195/28 136/196/28 132/197/28
|
||||
f 107/198/31 131/194/31 106/199/31
|
||||
f 112/150/27 137/200/27 113/157/27
|
||||
f 110/151/30 135/201/30 111/152/30
|
||||
f 109/202/30 132/197/30 107/203/30
|
||||
f 141/204/28 144/205/28 139/206/28
|
||||
f 140/207/27 101/171/27 105/131/27
|
||||
f 141/208/27 99/173/27 101/171/27
|
||||
f 139/209/27 103/130/27 99/173/27
|
||||
f 138/210/32 142/211/32 140/212/32
|
||||
f 140/213/29 145/214/29 141/215/29
|
||||
f 139/216/31 143/217/31 138/218/31
|
||||
f 116/126/27 122/176/27 123/127/27
|
||||
f 109/129/28 107/149/28 103/130/28
|
||||
f 99/132/29 103/219/29 102/133/29
|
||||
f 138/135/27 140/207/27 105/131/27
|
||||
f 98/136/30 102/220/30 104/137/30
|
||||
f 100/139/31 104/221/31 105/140/31
|
||||
f 108/142/29 130/190/29 133/143/29
|
||||
f 108/145/28 109/129/28 105/131/28
|
||||
f 106/147/28 108/145/28 104/146/28
|
||||
f 107/149/28 106/147/28 102/148/28
|
||||
f 112/150/28 113/157/28 110/151/28
|
||||
f 111/152/29 135/193/29 136/153/29
|
||||
f 106/154/27 131/188/27 130/155/27
|
||||
f 113/157/31 137/191/31 134/158/31
|
||||
f 118/159/32 121/166/32 120/160/32
|
||||
f 115/162/30 124/183/30 125/163/30
|
||||
f 119/161/30 127/222/30 126/165/30
|
||||
f 121/166/27 129/223/27 128/167/27
|
||||
f 100/168/32 116/172/32 114/169/32
|
||||
f 101/171/32 117/174/32 116/172/32
|
||||
f 99/173/32 115/175/32 117/174/32
|
||||
f 98/170/32 114/169/32 115/175/32
|
||||
f 126/165/32 127/222/32 123/127/32
|
||||
f 129/177/32 126/224/32 122/178/32
|
||||
f 127/180/32 128/225/32 124/181/32
|
||||
f 128/167/32 129/223/32 125/163/32
|
||||
f 118/159/31 126/224/31 129/177/31
|
||||
f 120/160/29 128/225/29 127/180/29
|
||||
f 117/184/29 125/179/29 122/178/29
|
||||
f 114/186/31 123/182/31 124/181/31
|
||||
f 131/188/28 135/201/28 134/189/28
|
||||
f 130/190/28 134/158/28 137/191/28
|
||||
f 132/192/28 136/153/28 135/193/28
|
||||
f 133/195/28 137/200/28 136/196/28
|
||||
f 107/198/31 132/192/31 131/194/31
|
||||
f 112/150/27 136/196/27 137/200/27
|
||||
f 110/151/30 134/189/30 135/201/30
|
||||
f 109/202/30 133/195/30 132/197/30
|
||||
f 141/204/28 145/214/28 144/205/28
|
||||
f 140/207/27 141/208/27 101/171/27
|
||||
f 141/208/27 139/209/27 99/173/27
|
||||
f 139/209/27 138/135/27 103/130/27
|
||||
f 138/210/32 143/217/32 142/211/32
|
||||
f 140/213/29 142/211/29 145/214/29
|
||||
f 139/216/31 144/205/31 143/217/31
|
||||
@ -26,7 +26,7 @@
|
||||
"block.lockOpen": {"category": "block", "sounds": [{"name": "block/lockOpen", "stream": false}]},
|
||||
"block.lockHang": {"category": "block", "sounds": [{"name": "block/lockHang", "stream": false}]},
|
||||
"block.debris": {"category": "block", "sounds": ["block/debris1", "block/debris2", "block/debris3"]},
|
||||
"block.centrifugeOperate": {"category": "block", "sounds": [{"name": "block/centrifugeOperate", "stream": true}]},
|
||||
"block.centrifugeOperate": {"category": "block", "sounds": [{"name": "block/centrifugeOperate", "stream": false}]},
|
||||
"block.pipePlaced": {"category": "block", "sounds": [{"name": "block/pipePlaced", "stream": false}]},
|
||||
"block.missileAssembly": {"category": "block", "sounds": [{"name": "block/missileAssembly", "stream": false}]},
|
||||
"block.missileAssembly2": {"category": "block", "sounds": [{"name": "block/missileAssembly2", "stream": false}]},
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.9 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 5.8 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 6.8 KiB |
Loading…
x
Reference in New Issue
Block a user