Added Redstone Kiln fully, but cannot fix #131.

master
sealedinterface 2016-06-21 00:27:49 -07:00
parent 894754b028
commit b507a50be0
21 changed files with 647 additions and 23 deletions

View File

@ -7,6 +7,7 @@ import net.einsteinsci.betterbeginnings.event.BBEventHandler;
import net.einsteinsci.betterbeginnings.event.Worldgen;
import net.einsteinsci.betterbeginnings.network.PacketCampfireState;
import net.einsteinsci.betterbeginnings.network.PacketNetherBrickOvenFuelLevel;
import net.einsteinsci.betterbeginnings.network.PacketPoweredBBFurnaceEnergy;
import net.einsteinsci.betterbeginnings.network.ServerProxy;
import net.einsteinsci.betterbeginnings.register.*;
import net.einsteinsci.betterbeginnings.register.achievement.RegisterAchievements;
@ -32,7 +33,7 @@ import net.minecraftforge.fml.relauncher.SideOnly;
public class ModMain
{
public static final String MODID = "betterbeginnings";
public static final String VERSION = "0.9.7-R1";
public static final String VERSION = "0.9.8-pre1";
public static final String NAME = "BetterBeginnings";
public static final CreativeTabs tabBetterBeginnings = new CreativeTabs("tabBetterBeginnings")
{
@ -74,6 +75,8 @@ public class ModMain
PacketNetherBrickOvenFuelLevel.class, 0, Side.CLIENT);
network.registerMessage(PacketCampfireState.PacketHandler.class,
PacketCampfireState.class, 1, Side.CLIENT);
network.registerMessage(PacketPoweredBBFurnaceEnergy.PacketHandler.class,
PacketPoweredBBFurnaceEnergy.class, 2, Side.CLIENT);
RegisterItems.register();
RegisterBlocks.register();

View File

@ -3,6 +3,7 @@ package net.einsteinsci.betterbeginnings.blocks;
import net.einsteinsci.betterbeginnings.ModMain;
import net.einsteinsci.betterbeginnings.gui.BBGuiHandler;
import net.einsteinsci.betterbeginnings.register.RegisterBlocks;
import net.einsteinsci.betterbeginnings.tileentity.TileEntityRedstoneKiln;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
@ -10,6 +11,7 @@ import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumParticleTypes;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@ -70,6 +72,12 @@ public class BlockRedstoneKiln extends BlockSpecializedFurnace
}
}
@Override
public EnumParticleTypes getFlameParticle()
{
return EnumParticleTypes.REDSTONE;
}
@Override
public Item getItemDropped(IBlockState state, Random rand, int par3)
{
@ -80,7 +88,7 @@ public class BlockRedstoneKiln extends BlockSpecializedFurnace
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side,
float clickX, float clickY, float clickZ)
{
//player.openGui(ModMain.modInstance, BBGuiHandler.OBSIDIANKILN_ID, world, pos.getX(), pos.getY(), pos.getZ());
player.openGui(ModMain.modInstance, BBGuiHandler.REDSTONEKILN_ID, world, pos.getX(), pos.getY(), pos.getZ());
return true;
}
@ -95,7 +103,6 @@ public class BlockRedstoneKiln extends BlockSpecializedFurnace
@Override
public TileEntity createNewTileEntity(World world, int par2)
{
//return new TileEntityObsidianKiln();
return null;
return new TileEntityRedstoneKiln();
}
}

View File

@ -147,11 +147,13 @@ public abstract class BlockSpecializedFurnace extends BlockContainer implements
}
}
@Override
protected BlockState createBlockState()
{
return new BlockState(this, FACING);
}
@Override
public int getMetaFromState(IBlockState state)
{
return ((EnumFacing)state.getValue(FACING)).getIndex();

View File

@ -7,9 +7,6 @@ import net.minecraft.util.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.network.IGuiHandler;
/**
* Some issues with this. Please note the server doesn't register items or blocks. At all.
*/
public class BBGuiHandler implements IGuiHandler
{
public static final int KILN_ID = 0;
@ -22,6 +19,10 @@ public class BBGuiHandler implements IGuiHandler
public static final int ENDERSMELTER_ID = 8;
public static final int CAMPFIRE_ID = 9;
public static final int REDSTONEKILN_ID = 10;
public static final int FLUXEDOVEN_ID = 11;
public static final int RESONANTSMELTER_ID = 12;
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{
@ -79,6 +80,12 @@ public class BBGuiHandler implements IGuiHandler
return new ContainerCampfire(player.inventory, campfire);
}
if (ID == REDSTONEKILN_ID)
{
TileEntityRedstoneKiln redKiln = (TileEntityRedstoneKiln)world.getTileEntity(pos);
return new ContainerRedstoneKiln(player.inventory, redKiln);
}
return null;
}
@ -139,6 +146,12 @@ public class BBGuiHandler implements IGuiHandler
return new GuiCampfire(player.inventory, campfire);
}
if (ID == REDSTONEKILN_ID)
{
TileEntityRedstoneKiln redKiln = (TileEntityRedstoneKiln)world.getTileEntity(pos);
return new GuiRedstoneKiln(player.inventory, redKiln);
}
return null;
}
}

View File

@ -8,9 +8,6 @@ import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
/**
* Created by einsteinsci on 8/17/2014.
*/
public class GuiObsidianKiln extends GuiContainer
{
private static final ResourceLocation kilnGuiTextures = new ResourceLocation(

View File

@ -0,0 +1,78 @@
package net.einsteinsci.betterbeginnings.gui;
import net.einsteinsci.betterbeginnings.inventory.ContainerRedstoneKiln;
import net.einsteinsci.betterbeginnings.tileentity.TileEntityRedstoneKiln;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import java.util.ArrayList;
import java.util.List;
public class GuiRedstoneKiln extends GuiContainer
{
private static final ResourceLocation kilnGuiTextures = new ResourceLocation(
"betterbeginnings:textures/gui/container/redstoneKiln.png");
private TileEntityRedstoneKiln tileKiln;
public GuiRedstoneKiln(InventoryPlayer invPlayer, TileEntityRedstoneKiln tile)
{
super(new ContainerRedstoneKiln(invPlayer, tile));
tileKiln = tile;
}
@Override
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
{
String string = tileKiln.hasCustomName() ? tileKiln.getCommandSenderName() :
I18n.format(tileKiln.getCommandSenderName());
fontRendererObj.drawString(string, 38, 6, 4210752);
fontRendererObj.drawString(I18n.format("container.inventory"), 40, ySize - 94, 4210752);
int k = (width - xSize) / 2;
int l = (height - ySize) / 2;
// In fuel zone
if (mouseX >= k + 17 && mouseX <= k + 32 && mouseY >= l + 10 && mouseY <= l + 57)
{
//_drawPowerTooltip(mouseX - k, mouseY - l);
}
}
private void _drawPowerTooltip(int x, int y)
{
List<String> lines = new ArrayList<>();
lines.add("" + tileKiln.getBattery().getEnergyStored() + " RF");
drawHoveringText(lines, x, y); //Draw tooltip
}
@Override
protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3)
{
GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
mc.getTextureManager().bindTexture(kilnGuiTextures);
int k = (width - xSize) / 2;
int l = (height - ySize) / 2;
drawTexturedModalRect(k, l, 0, 0, xSize, ySize);
int i1;
if (tileKiln.getBattery().getEnergyStored() > 0)
{
i1 = tileKiln.getEnergyScaled(48);
drawTexturedModalRect(k + 17, l + 10 + 48 - i1, 176, 31 + 48 - i1, 16, i1 + 2);
}
if (tileKiln.isBurning())
{
drawTexturedModalRect(k + 56, l + 46, 176, 0, 14, 14);
}
i1 = tileKiln.getCookProgressScaled(24);
drawTexturedModalRect(k + 79, l + 34, 176, 14, i1 + 1, 16);
}
}

View File

@ -0,0 +1,84 @@
package net.einsteinsci.betterbeginnings.inventory;
import cofh.api.energy.IEnergyStorage;
public class BatterySpecializedFurnace implements IEnergyStorage
{
private int maxEnergy;
private int energyStored;
public BatterySpecializedFurnace(int maxRF)
{
maxEnergy = maxRF;
}
public BatterySpecializedFurnace(int maxRF, int startRF)
{
this(maxRF);
energyStored = startRF;
}
@Override
public int receiveEnergy(int maxReceive, boolean simulate)
{
if (energyStored + maxReceive <= maxEnergy)
{
if (!simulate)
{
energyStored += maxReceive;
}
return maxReceive;
}
else
{
int received = maxEnergy - energyStored;
if (!simulate)
{
energyStored = maxEnergy;
}
return received;
}
}
@Override
public int extractEnergy(int maxExtract, boolean simulate)
{
if (energyStored >= maxExtract)
{
if (!simulate)
{
energyStored -= maxExtract;
}
return maxExtract;
}
else
{
int extracted = energyStored;
if (!simulate)
{
energyStored = 0;
}
return extracted;
}
}
@Override
public int getEnergyStored()
{
return energyStored;
}
@Override
public int getMaxEnergyStored()
{
return maxEnergy;
}
public void setEnergyStored(int rf)
{
energyStored = rf;
}
}

View File

@ -0,0 +1,106 @@
package net.einsteinsci.betterbeginnings.inventory;
import cofh.api.energy.IEnergyContainerItem;
import net.einsteinsci.betterbeginnings.register.recipe.KilnRecipeHandler;
import net.einsteinsci.betterbeginnings.tileentity.TileEntityKilnBase;
import net.einsteinsci.betterbeginnings.tileentity.TileEntityRedstoneKiln;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Slot;
import net.minecraft.inventory.SlotFurnaceOutput;
import net.minecraft.item.ItemStack;
public class ContainerRedstoneKiln extends ContainerSpecializedFurnace
{
public ContainerRedstoneKiln(InventoryPlayer playerInv, TileEntityRedstoneKiln obsKiln)
{
tileSpecialFurnace = obsKiln;
addSlotToContainer(new Slot(obsKiln, 0, 56, 27));
addSlotToContainer(new Slot(obsKiln, 1, 17, 63));
addSlotToContainer(new SlotFurnaceOutput(playerInv.player, obsKiln, 2, 116, 35));
int i;
for (i = 0; i < 3; ++i)
{
for (int j = 0; j < 9; ++j)
{
addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
}
}
for (i = 0; i < 9; ++i)
{
addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 142));
}
}
@Override
public ItemStack transferStackInSlot(EntityPlayer player, int par2)
{
ItemStack itemstack = null;
Slot slot = (Slot)inventorySlots.get(par2);
TileEntityKilnBase kiln = (TileEntityKilnBase)tileSpecialFurnace;
if (slot != null && slot.getHasStack())
{
ItemStack itemstack1 = slot.getStack();
itemstack = itemstack1.copy();
if (par2 == 2)
{
if (!mergeItemStack(itemstack1, 3, 39, true))
{
return null;
}
slot.onSlotChange(itemstack1, itemstack);
}
else if (par2 != 1 && par2 != 0)
{
if (KilnRecipeHandler.instance().getSmeltingResult(itemstack1) != null)
{
if (!mergeItemStack(itemstack1, 0, 1, false))
{
return null;
}
}
else if (itemstack1.getItem() instanceof IEnergyContainerItem)
{
if (!mergeItemStack(itemstack1, 1, 2, false))
{
return null;
}
}
else if (par2 >= 3 && par2 < 30)
{
if (!mergeItemStack(itemstack1, 30, 39, false))
{
return null;
}
}
else if (par2 >= 30 && par2 < 39 && !mergeItemStack(itemstack1, 3, 30, false))
{
return null;
}
}
else if (!mergeItemStack(itemstack1, 3, 39, false))
{
return null;
}
if (itemstack1.stackSize == 0)
{
slot.putStack(null);
}
else
{
slot.onSlotChanged();
}
if (itemstack1.stackSize == itemstack.stackSize)
{
return null;
}
slot.onPickupFromSlot(player, itemstack1);
}
return itemstack;
}
}

View File

@ -33,7 +33,7 @@ public class PacketNetherBrickOvenFuelLevel implements IMessage
public PacketNetherBrickOvenFuelLevel()
{
pos = new BlockPos(0, 0, 0);
pos = BlockPos.ORIGIN;
fluid = null;
}

View File

@ -0,0 +1,63 @@
package net.einsteinsci.betterbeginnings.network;
import io.netty.buffer.ByteBuf;
import net.einsteinsci.betterbeginnings.ModMain;
import net.einsteinsci.betterbeginnings.tileentity.ITileEntityPoweredBBFurnace;
import net.einsteinsci.betterbeginnings.tileentity.TileEntitySpecializedFurnace;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.BlockPos;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
public class PacketPoweredBBFurnaceEnergy implements IMessage
{
public static class PacketHandler implements IMessageHandler<PacketPoweredBBFurnaceEnergy, IMessage>
{
@Override
public IMessage onMessage(PacketPoweredBBFurnaceEnergy message, MessageContext ctx)
{
EntityPlayer player = ModMain.proxy.getPlayerFromMessageContext(ctx);
TileEntitySpecializedFurnace tileEntity = (TileEntitySpecializedFurnace)player.worldObj.getTileEntity(message.pos);
if (tileEntity instanceof ITileEntityPoweredBBFurnace)
{
ITileEntityPoweredBBFurnace itepbbf = (ITileEntityPoweredBBFurnace)tileEntity;
itepbbf.setEnergy(message.energy);
}
return null;
}
}
private BlockPos pos;
private int energy;
public PacketPoweredBBFurnaceEnergy()
{
this(BlockPos.ORIGIN, 0);
}
public PacketPoweredBBFurnaceEnergy(BlockPos _pos, int _energy)
{
pos = _pos;
energy = _energy;
}
@Override
public void fromBytes(ByteBuf buf)
{
pos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt());
energy = buf.readInt();
}
@Override
public void toBytes(ByteBuf buf)
{
buf.writeInt(pos.getX());
buf.writeInt(pos.getY());
buf.writeInt(pos.getZ());
buf.writeInt(energy);
}
}

View File

@ -7,6 +7,9 @@ import net.einsteinsci.betterbeginnings.register.recipe.*;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.ForgeHooks;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.oredict.*;
@ -580,6 +583,8 @@ public class RegisterRecipes
'B', Items.bone,
'/', "stickWood");
// region Tools & Armor
// Leather armor
AdvancedCraftingConfig.addAdvancedRecipe(new ItemStack(Items.leather_helmet),
new Object[] {"itemString", 3,
@ -1115,6 +1120,8 @@ public class RegisterRecipes
'/', "stickWood");
}
// endregion Tools & Armor
if (BBConfig.moduleInfusionRepair)
{
// Repair Infusion Station
@ -1165,6 +1172,18 @@ public class RegisterRecipes
'#', Blocks.end_stone,
'S', RegisterBlocks.smelter,
'E', Items.ender_eye);
if (Loader.isModLoaded("enderio") || Loader.isModLoaded("buildcraft") ||
Loader.isModLoaded("cofhcore") || Loader.isModLoaded("immersiveengineering"))
{
AdvancedCraftingHandler.addAdvancedRecipe(new ItemStack(RegisterBlocks.redstoneKiln),
new Object[]{ "dustRedstone", 32, "nuggetGold", 16, new ItemStack(Items.blaze_powder, 10) },
"DED", "/K/", "DED",
'K', RegisterBlocks.obsidianKiln,
'/', Items.blaze_rod,
'E', Items.ender_eye,
'D', Items.diamond);
}
}
// Rock Hammer

View File

@ -9,12 +9,17 @@ public class RegisterTileEntities
public static void register()
{
GameRegistry.registerTileEntity(TileEntityKiln.class, ModMain.MODID + ":TileEntityKiln");
GameRegistry.registerTileEntity(TileEntityBrickOven.class, ModMain.MODID + ":TileEntityBrickOven");
GameRegistry.registerTileEntity(TileEntitySmelter.class, ModMain.MODID + ":TileEntitySmelter");
GameRegistry.registerTileEntity(TileEntityCampfire.class, ModMain.MODID + ":TileEntityCampfire");
GameRegistry.registerTileEntity(TileEntityObsidianKiln.class, ModMain.MODID + ":TileEntityObsidianKiln");
GameRegistry.registerTileEntity(TileEntityRedstoneKiln.class, ModMain.MODID + ":TileEntityRedstoneKiln");
GameRegistry.registerTileEntity(TileEntityBrickOven.class, ModMain.MODID + ":TileEntityBrickOven");
GameRegistry.registerTileEntity(TileEntityNetherBrickOven.class, ModMain.MODID + ":TileEntityNetherBrickOven");
GameRegistry.registerTileEntity(TileEntitySmelter.class, ModMain.MODID + ":TileEntitySmelter");
GameRegistry.registerTileEntity(TileEntityEnderSmelter.class, ModMain.MODID + ":TileEntityEnderSmelter");
GameRegistry.registerTileEntity(TileEntityCampfire.class, ModMain.MODID + ":TileEntityCampfire");
GameRegistry.registerTileEntity(TileEntityInfusionRepair.class, ModMain.MODID + ":TileEntityInfusionRepair");
}
}

View File

@ -0,0 +1,15 @@
package net.einsteinsci.betterbeginnings.tileentity;
import cofh.api.energy.IEnergyReceiver;
import cofh.api.energy.IEnergyStorage;
public interface ITileEntityPoweredBBFurnace extends IEnergyReceiver
{
IEnergyStorage getBattery();
int getEnergyScaled(int px);
void setEnergy(int rf);
public void updateNetwork();
}

View File

@ -185,7 +185,7 @@ public abstract class TileEntityBrickOvenBase extends TileEntitySpecializedFurna
@Override
public boolean isItemValidForSlot(int slot, ItemStack stack)
{
return slot == OUTPUT ? false : slot == FUEL ? isItemFuel(stack) : true;
return slot != OUTPUT && (slot != FUEL || isItemFuel(stack));
}
public ItemStack getStackInRowAndColumn(int row, int column)

View File

@ -28,11 +28,11 @@ public abstract class TileEntityKilnBase extends TileEntitySpecializedFurnace im
public static final int[] SLOTS_BOTTOM = new int[] {SLOT_OUTPUT};
public static final int[] SLOTS_SIDES = new int[] {SLOT_FUEL, SLOT_INPUT};
public TileEntityKilnBase()
protected TileEntityKilnBase()
{
super(3);
}
public TileEntityKilnBase(int slots)
protected TileEntityKilnBase(int slots)
{
super(slots);
}
@ -171,8 +171,8 @@ public abstract class TileEntityKilnBase extends TileEntitySpecializedFurnace im
return false;
}
int result = specialFurnaceStacks[SLOT_OUTPUT].stackSize + stack.stackSize;
return result <= getInventoryStackLimit() && result <= specialFurnaceStacks[SLOT_OUTPUT].getMaxStackSize();
int size = specialFurnaceStacks[SLOT_OUTPUT].stackSize + stack.stackSize;
return size <= getInventoryStackLimit() && size <= specialFurnaceStacks[SLOT_OUTPUT].getMaxStackSize();
}
}

View File

@ -0,0 +1,227 @@
package net.einsteinsci.betterbeginnings.tileentity;
import cofh.api.energy.IEnergyContainerItem;
import cofh.api.energy.IEnergyReceiver;
import net.einsteinsci.betterbeginnings.ModMain;
import net.einsteinsci.betterbeginnings.blocks.BlockRedstoneKiln;
import net.einsteinsci.betterbeginnings.inventory.BatterySpecializedFurnace;
import net.einsteinsci.betterbeginnings.inventory.ContainerRedstoneKiln;
import net.einsteinsci.betterbeginnings.network.PacketPoweredBBFurnaceEnergy;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Items;
import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
import net.minecraftforge.fml.common.network.NetworkRegistry;
public class TileEntityRedstoneKiln extends TileEntityKilnBase implements IEnergyReceiver, ITileEntityPoweredBBFurnace
{
public static final int MAX_RF = 100000; // 100,000
public static final int SMELT_COST = 1500;
public static final int CHARGE_RATE = 15;
private BatterySpecializedFurnace battery;
public TileEntityRedstoneKiln()
{
super();
processTime = 200;
burnTime = 1;
battery = new BatterySpecializedFurnace(MAX_RF);
}
@Override
public void readFromNBT(NBTTagCompound tagCompound)
{
super.readFromNBT(tagCompound);
currentItemBurnLength = getItemBurnTime(specialFurnaceStacks[SLOT_FUEL]);
battery.setEnergyStored(tagCompound.getInteger("Energy"));
}
@Override
public void writeToNBT(NBTTagCompound tagCompound)
{
super.writeToNBT(tagCompound);
tagCompound.setInteger("Energy", battery.getEnergyStored());
}
@Override
public int getItemBurnTime(ItemStack itemStack)
{
return 1;
}
@Override
public void update()
{
if (!worldObj.isRemote)
{
//if (burnTime > 0)
//{
// --burnTime;
//}
//
//if (burnTime == 0 && canSmelt())
//{
// currentItemBurnLength = burnTime = getItemBurnTime(specialFurnaceStacks[SLOT_FUEL]);
//
// if (burnTime > 0)
// {
// flag1 = true;
// if (specialFurnaceStacks[SLOT_FUEL] != null)
// {
// --specialFurnaceStacks[SLOT_FUEL].stackSize;
//
// if (specialFurnaceStacks[SLOT_FUEL].stackSize == 0)
// {
// specialFurnaceStacks[SLOT_FUEL] = specialFurnaceStacks[SLOT_FUEL].getItem()
// .getContainerItem(specialFurnaceStacks[SLOT_FUEL]);
// }
// }
// }
//}
if (isBurning() && canSmelt())
{
++cookTime;
if (cookTime == processTime)
{
cookTime = 0;
smeltItem();
}
}
else
{
cookTime = 0;
}
updateBlockState();
markDirty();
// Charge battery from "fuel" slot
ItemStack fuel = specialFurnaceStacks[SLOT_FUEL];
if (fuel != null && fuel.getItem() instanceof IEnergyContainerItem)
{
IEnergyContainerItem capacitor = (IEnergyContainerItem)fuel.getItem();
int extracted = capacitor.extractEnergy(fuel, CHARGE_RATE, true);
if (battery.receiveEnergy(extracted, true) == extracted)
{
capacitor.extractEnergy(fuel, CHARGE_RATE, false);
battery.receiveEnergy(extracted, false);
}
}
if (fuel != null && fuel.getItem() == Items.fire_charge)
{
battery.receiveEnergy(CHARGE_RATE, false);
}
updateNetwork();
}
}
@Override
public boolean isBurning()
{
boolean hasEnergy = battery.extractEnergy(SMELT_COST, true) == SMELT_COST;
return specialFurnaceStacks[SLOT_INPUT] != null && hasEnergy;
}
@Override
public void smeltItem()
{
super.smeltItem();
if (canSmelt())
{
battery.extractEnergy(SMELT_COST, false);
}
}
@Override
public String getCommandSenderName()
{
return hasCustomName() ? customName : "container.redstoneKiln";
}
@Override
public void updateBlockState()
{
worldObj.markBlockForUpdate(pos);
BlockRedstoneKiln.updateBlockState(isBurning(), worldObj, pos);
}
@Override
public Container createContainer(InventoryPlayer playerInventory, EntityPlayer playerIn)
{
return new ContainerRedstoneKiln(playerInventory, this);
}
@Override
public String getGuiID()
{
return ModMain.MODID + ":redstoneKiln";
}
@Override
public BatterySpecializedFurnace getBattery()
{
return battery;
}
@Override
public int getEnergyScaled(int px)
{
float outOfOne = (float)battery.getEnergyStored() / (float)battery.getMaxEnergyStored();
return (int)(outOfOne * px);
}
@Override
public void setEnergy(int rf)
{
battery.setEnergyStored(rf);
}
@Override
public void updateNetwork()
{
NetworkRegistry.TargetPoint point = new NetworkRegistry.TargetPoint(
worldObj.provider.getDimensionId(), pos.getX(), pos.getY(), pos.getZ(), 16.0d);
ModMain.network.sendToAllAround(new PacketPoweredBBFurnaceEnergy(
pos, battery.getEnergyStored()), point);
}
// region IEnergyReceiver
@Override
public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate)
{
return battery.receiveEnergy(maxReceive, simulate);
}
@Override
public int getEnergyStored(EnumFacing from)
{
return battery.getEnergyStored();
}
@Override
public int getMaxEnergyStored(EnumFacing from)
{
return battery.getMaxEnergyStored();
}
@Override
public boolean canConnectEnergy(EnumFacing from)
{
return true;
}
// endregion IEnergyReceiver
}

View File

@ -24,7 +24,7 @@ public abstract class TileEntitySpecializedFurnace extends TileEntity implements
public int cookTime;
protected int processTime;
public TileEntitySpecializedFurnace(int numStacks)
protected TileEntitySpecializedFurnace(int numStacks)
{
specialFurnaceStacks = new ItemStack[numStacks];
}
@ -217,7 +217,11 @@ public abstract class TileEntitySpecializedFurnace extends TileEntity implements
tagCompound.setTag("Items", tagList);
//The Nether Brick oven doesn't use burnTime
if (!(this instanceof TileEntityNetherBrickOven)) tagCompound.setShort("BurnTime", (short)burnTime);
if (!(this instanceof TileEntityNetherBrickOven))
{
tagCompound.setShort("BurnTime", (short)burnTime);
}
tagCompound.setShort("CookTime", (short)cookTime);
if (hasCustomName())

View File

@ -70,6 +70,7 @@ container.infusion.level=L
container.obsidianKiln=Obsidian Kiln
container.netherbrickoven=Nether Brick Oven
container.enderSmelter=Ender Smelter
container.redstoneKiln=Redstone Kiln
container.campfire=Campfire
container.campfire.woodFuelsOnly=Only wood fuels are accepted.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 612 B

After

Width:  |  Height:  |  Size: 634 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -3,7 +3,7 @@
"modid": "betterbeginnings",
"name": "BetterBeginnings",
"description": "Rebalances early stages of Minecraft, and creates alternatives to the typical vanilla grind.",
"version": "0.9.7-R1",
"version": "0.9.8-R1",
"mcversion": "${mcversion}",
"url": "http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/wip-mods/2192122-betterbeginnings-mod-9000-downloads",
"updateUrl": "",