arc furnace, new press texture, amGen

This commit is contained in:
HbmMods 2019-02-23 16:37:46 +01:00
parent 78694c778e
commit 8046e10b09
29 changed files with 525 additions and 26 deletions

View File

@ -335,6 +335,9 @@ container.rtgFurnace=RTG-Ofen
tile.machine_electric_furnace_off.name=Elektrischer Ofen
tile.machine_electric_furnace_on.name=Elektrischer Ofen
container.electricFurnace=Elektrischer Ofen
tile.machine_arc_furnace_off.name=Lichtbogenofen
tile.machine_arc_furnace_on.name=Lichtbogenofen
container.arcFurnace=Lichtbogenofen
tile.machine_generator.name=Atomreaktor (Alt)
container.generator=Atomreaktor
tile.red_wire_coated.name=Geschirmtes rotes Kupferkabel
@ -518,6 +521,9 @@ item.chemistry_template.name=Chemievorlage:
item.siren_track.name=Sirenentrack
item.fuse.name=Sicherung
item.arc_electrode.name=Graphitelektrode
item.arc_electrode_burnt.name=Geschmolzene Elektrode
item.arc_electrode_desh.name=Desh-Elektrode
tile.test_nuke.name=Test Atombombe
@ -1085,6 +1091,8 @@ item.rod_dual_waste.name=Doppelter Atommüllstab
item.rod_quad_waste.name=Vierfacher Atommüllstab
item.gun_rpg.name=Carl Gustav Reaktive Panzerbüchse
item.gun_karl.name=Karl
item.gun_panzerschreck.name=Panzerschreck
item.gun_rpg_ammo.name=Rakete
item.gun_stinger.name=FIM-92 Stinger
item.gun_skystinger.name=The One Sky Stinger

View File

@ -335,6 +335,9 @@ container.rtgFurnace=RTG Furnace
tile.machine_electric_furnace_off.name=Electric Furnace
tile.machine_electric_furnace_on.name=Electric Furnace
container.electricFurnace=Electric Furnace
tile.machine_arc_furnace_off.name=Arc Furnace
tile.machine_arc_furnace_on.name=Arc Furnace
container.arcFurnace=Arc Furnace
tile.machine_generator.name=Nuclear Reactor (Old)
container.generator=Nuclear Reactor
tile.red_wire_coated.name=Coated Red Copper Cable
@ -518,6 +521,9 @@ item.chemistry_template.name=Chemistry Template:
item.siren_track.name=Siren Track
item.fuse.name=Fuse
item.arc_electrode.name=Graphite Electrode
item.arc_electrode_burnt.name=Molten Electrode
item.arc_electrode_desh.name=Desh Electrode
tile.test_nuke.name=Test Nuke
@ -1085,6 +1091,8 @@ item.rod_dual_waste.name=Nuclear Waste Dual Rod
item.rod_quad_waste.name=Nuclear Waste Quad Rod
item.gun_rpg.name=Carl Gustav Recoilless Rifle
item.gun_karl.name=Karl
item.gun_panzerschreck.name=Panzerschreck
item.gun_rpg_ammo.name=Rocket
item.gun_stinger.name=FIM-92 Stinger
item.gun_skystinger.name=The One Sky Stinger

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 B

View File

Before

Width:  |  Height:  |  Size: 486 B

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 736 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 435 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 361 B

View File

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -332,6 +332,7 @@ public class ModBlocks {
public static Block machine_arc_furnace_off;
public static Block machine_arc_furnace_on;
public static final int guiID_machine_arc = 82;
//public static Block machine_deuterium;
public static final int guiID_machine_deuterium = 20;
@ -461,6 +462,7 @@ public class ModBlocks {
public static Block machine_rtg_cyan;
//public static Block machine_rtg_blue;
//public static Block machine_rtg_purple;
public static Block machine_amgen;
public static Block machine_well;
public static Block oil_pipe;
@ -893,6 +895,7 @@ public class ModBlocks {
machine_rtg_cyan = new MachineRTG(Material.iron).setBlockName("machine_rtg_cyan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
//machine_rtg_blue = new MachineRTG(Material.iron).setBlockName("machine_rtg_blue").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
//machine_rtg_purple = new MachineRTG(Material.iron).setBlockName("machine_rtg_purple").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_amgen = new MachineAmgen(Material.iron).setBlockName("machine_amgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
red_wire_coated = new WireCoated(Material.iron).setBlockName("red_wire_coated").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_wire_coated");
red_cable = new BlockCable(Material.iron).setBlockName("red_cable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_cable_icon");
@ -1413,6 +1416,7 @@ public class ModBlocks {
GameRegistry.registerBlock(machine_radgen, machine_radgen.getUnlocalizedName());
GameRegistry.registerBlock(machine_cyclotron, machine_cyclotron.getUnlocalizedName());
GameRegistry.registerBlock(machine_rtg_grey, machine_rtg_grey.getUnlocalizedName());
GameRegistry.registerBlock(machine_amgen, machine_amgen.getUnlocalizedName());
GameRegistry.registerBlock(machine_spp_bottom, machine_spp_bottom.getUnlocalizedName());
GameRegistry.registerBlock(machine_spp_top, machine_spp_top.getUnlocalizedName());
//GameRegistry.registerBlock(machine_rtg_red, machine_rtg_red.getUnlocalizedName());

View File

@ -0,0 +1,44 @@
package com.hbm.blocks.machine;
import com.hbm.blocks.ModBlocks;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityMachineAmgen;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
public class MachineAmgen extends BlockContainer {
@SideOnly(Side.CLIENT)
private IIcon iconTop;
public MachineAmgen(Material p_i45386_1_) {
super(p_i45386_1_);
}
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityMachineAmgen();
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_amgen_top");
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_amgen_side");
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int metadata) {
return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon);
}
}

View File

@ -6,7 +6,6 @@ import com.hbm.blocks.ModBlocks;
import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.TileEntityMachineArcFurnace;
import com.hbm.tileentity.machine.TileEntityMachineElectricFurnace;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
@ -39,6 +38,8 @@ public class MachineArcFurnace extends BlockContainer {
private IIcon iconTop;
@SideOnly(Side.CLIENT)
private IIcon iconBottom;
@SideOnly(Side.CLIENT)
private IIcon iconRods;
public MachineArcFurnace(boolean blockState) {
super(Material.iron);
@ -53,12 +54,23 @@ public class MachineArcFurnace extends BlockContainer {
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + (this.isActive ? ":machine_arc_furnace_top_on" : ":machine_arc_furnace_top"));
this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":machine_arc_furnace_bottom");
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_arc_furnace_side");
this.iconRods = iconRegister.registerIcon(RefStrings.MODID + ":machine_arc_furnace_top_rods");
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int metadata) {
if(this == ModBlocks.machine_arc_furnace_off) {
if(side == 1 && metadata > 5) {
return iconRods;
}
}
if(metadata > 5)
metadata -= 4;
if(side == 0)
return this.iconBottom;
if(side == 1)
@ -147,7 +159,7 @@ public class MachineArcFurnace extends BlockContainer {
TileEntityMachineArcFurnace entity = (TileEntityMachineArcFurnace) world.getTileEntity(x, y, z);
if(entity != null)
{
FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_electric_furnace, world, x, y, z);
FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_arc, world, x, y, z);
}
return true;
} else {

View File

@ -0,0 +1,28 @@
package com.hbm.entity.logic;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class EntityEMP extends Entity {
public EntityEMP(World p_i1582_1_) {
super(p_i1582_1_);
}
@Override
protected void entityInit() { }
@Override
protected void readEntityFromNBT(NBTTagCompound nbt) {
// TODO Auto-generated method stub
}
@Override
protected void writeEntityToNBT(NBTTagCompound nbt) {
// TODO Auto-generated method stub
}
}

View File

@ -0,0 +1,48 @@
package com.hbm.entity.missile;
import java.util.ArrayList;
import java.util.List;
import com.hbm.explosion.ExplosionLarge;
import com.hbm.items.ModItems;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class EntityMissileEMPStrong extends EntityMissileBaseAdvanced {
public EntityMissileEMPStrong(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityMissileEMPStrong(World world, float x, float y, float z, int a, int b) {
super(world, x, y, z, a, b);
}
@Override
public void onImpact() {
ExplosionLarge.explode(worldObj, posX, posY, posZ, 25.0F, true, true, true);
}
@Override
public List<ItemStack> getDebris() {
List<ItemStack> list = new ArrayList<ItemStack>();
list.add(new ItemStack(ModItems.plate_steel, 10));
list.add(new ItemStack(ModItems.plate_titanium, 6));
list.add(new ItemStack(ModItems.thruster_medium, 1));
list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1));
return list;
}
@Override
public ItemStack getDebrisRareDrop() {
return new ItemStack(ModItems.warhead_generic_medium);
}
@Override
public int getMissileType() {
return 1;
}
}

View File

@ -731,6 +731,15 @@ public class GUIHandler implements IGuiHandler {
}
return null;
}
case ModBlocks.guiID_machine_arc:
{
if(entity instanceof TileEntityMachineArcFurnace)
{
return new ContainerMachineArcFurnace(player.inventory, (TileEntityMachineArcFurnace) entity);
}
return null;
}
}
} else {
//CLIENTONLY CONTAINERS
@ -1462,6 +1471,15 @@ public class GUIHandler implements IGuiHandler {
}
return null;
}
case ModBlocks.guiID_machine_arc:
{
if(entity instanceof TileEntityMachineArcFurnace)
{
return new GUIMachineArcFurnace(player.inventory, (TileEntityMachineArcFurnace) entity);
}
return null;
}
}
} else {
//CLIENTONLY GUIS

View File

@ -0,0 +1,88 @@
package com.hbm.inventory.container;
import com.hbm.inventory.SlotMachineOutput;
import com.hbm.tileentity.machine.TileEntityMachineArcFurnace;
import com.hbm.tileentity.machine.TileEntityMachineElectricFurnace;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ContainerMachineArcFurnace extends Container {
private TileEntityMachineArcFurnace diFurnace;
public ContainerMachineArcFurnace(InventoryPlayer invPlayer, TileEntityMachineArcFurnace tedf) {
diFurnace = tedf;
this.addSlotToContainer(new Slot(tedf, 0, 56, 17));
this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 1, 116, 35));
this.addSlotToContainer(new Slot(tedf, 2, 38, 53));
this.addSlotToContainer(new Slot(tedf, 3, 56, 53));
this.addSlotToContainer(new Slot(tedf, 4, 74, 53));
this.addSlotToContainer(new Slot(tedf, 5, 8, 53));
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 9; j++)
{
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
}
}
for(int i = 0; i < 9; i++)
{
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142));
}
}
@Override
public void addCraftingToCrafters(ICrafting crafting) {
super.addCraftingToCrafters(crafting);
}
@Override
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2)
{
ItemStack var3 = null;
Slot var4 = (Slot) this.inventorySlots.get(par2);
if (var4 != null && var4.getHasStack())
{
ItemStack var5 = var4.getStack();
var3 = var5.copy();
if (par2 <= 5) {
if (!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true))
{
return null;
}
}
else if (!this.mergeItemStack(var5, 0, 1, false))
{
if (!this.mergeItemStack(var5, 2, 6, false))
return null;
}
if (var5.stackSize == 0)
{
var4.putStack((ItemStack) null);
}
else
{
var4.onSlotChanged();
}
}
return var3;
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return diFurnace.isUseableByPlayer(player);
}
}

View File

@ -0,0 +1,73 @@
package com.hbm.inventory.gui;
import org.lwjgl.opengl.GL11;
import com.hbm.inventory.container.ContainerMachineArcFurnace;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityMachineArcFurnace;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
public class GUIMachineArcFurnace extends GuiInfoContainer {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_arc.png");
private TileEntityMachineArcFurnace diFurnace;
public GUIMachineArcFurnace(InventoryPlayer invPlayer, TileEntityMachineArcFurnace tedf) {
super(new ContainerMachineArcFurnace(invPlayer, tedf));
diFurnace = tedf;
this.xSize = 176;
this.ySize = 166;
}
@Override
public void drawScreen(int mouseX, int mouseY, float f) {
super.drawScreen(mouseX, mouseY, f);
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 51 - 34, 16, 34, diFurnace.power, diFurnace.maxPower);
}
@Override
protected void drawGuiContainerForegroundLayer(int i, int j) {
String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName());
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
}
@Override
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
//failsafe TE clone
//if initial TE invalidates, new TE is fetched
//if initial ZE is still present, it'll be used instead
//works so that container packets can still be used
//efficiency!
TileEntityMachineArcFurnace fs = null;
if(diFurnace.isInvalid() && diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord) instanceof TileEntityMachineArcFurnace)
fs = (TileEntityMachineArcFurnace) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord);
else
fs = diFurnace;
if(fs.hasPower()) {
int i = (int)diFurnace.getPowerRemainingScaled(34);
drawTexturedModalRect(guiLeft + 8, guiTop + 51 - i, 176, 67 - i, 16, i);
}
if(diFurnace.canProcess() && diFurnace.hasPower())
{
drawTexturedModalRect(guiLeft + 55, guiTop + 35, 176, 0, 15, 16);
}
int j1 = fs.getDiFurnaceProgressScaled(24);
drawTexturedModalRect(guiLeft + 79, guiTop + 34, 176, 16, j1 + 1, 17);
}
}

View File

@ -1118,6 +1118,9 @@ public class ModItems {
public static Item titanium_filter;
public static Item screwdriver;
public static Item overfuse;
public static Item arc_electrode;
public static Item arc_electrode_burnt;
public static Item arc_electrode_desh;
public static Item dynosphere_base;
public static Item dynosphere_desh;
public static Item dynosphere_desh_charged;
@ -2573,6 +2576,9 @@ public class ModItems {
titanium_filter = new ItemCapacitor(72000).setUnlocalizedName("titanium_filter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":titanium_filter");
screwdriver = new ItemCustomLore().setUnlocalizedName("screwdriver").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":screwdriver");
overfuse = new ItemCustomLore().setUnlocalizedName("overfuse").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":overfuse");
arc_electrode = new ItemCustomLore().setUnlocalizedName("arc_electrode").setMaxDamage(250).setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode");
arc_electrode_burnt = new Item().setUnlocalizedName("arc_electrode_burnt").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode_burnt");
arc_electrode_desh = new ItemCustomLore().setUnlocalizedName("arc_electrode_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode_desh");
dynosphere_base = new Item().setUnlocalizedName("dynosphere_base").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_base");
dynosphere_desh = new ItemBattery(10000L, 100, 0).setUnlocalizedName("dynosphere_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_desh");
@ -3641,6 +3647,9 @@ public class ModItems {
GameRegistry.registerItem(titanium_filter, titanium_filter.getUnlocalizedName());
GameRegistry.registerItem(screwdriver, screwdriver.getUnlocalizedName());
GameRegistry.registerItem(overfuse, overfuse.getUnlocalizedName());
GameRegistry.registerItem(arc_electrode, arc_electrode.getUnlocalizedName());
GameRegistry.registerItem(arc_electrode_burnt, arc_electrode_burnt.getUnlocalizedName());
GameRegistry.registerItem(arc_electrode_desh, arc_electrode_desh.getUnlocalizedName());
//Particle Collider Items
GameRegistry.registerItem(crystal_energy, crystal_energy.getUnlocalizedName());

View File

@ -626,6 +626,8 @@ public class CraftingManager {
GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getEmptyBattery(ModItems.factory_core_advanced), new Object[] { "BSB", "LHL", "BSB", 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced), 'S', "blockSulfur", 'L', "blockLead", 'H', Item.getItemFromBlock(ModBlocks.factory_advanced_hull) }));
//GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.fuse, 1), new Object[] { " S ", "GAG", " S ", 'S', "plateSteel", 'G', Item.getItemFromBlock(Blocks.glass_pane), 'A', ModItems.wire_aluminium }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.arc_electrode, 1), new Object[] { "C", "T", "C", 'C', "dustCoal", 'T', ModItems.bolt_tungsten }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.arc_electrode_desh, 1), new Object[] { "C", "T", "C", 'C', "dustDesh", 'T', ModItems.arc_electrode }));
//GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.redcoil_capacitor, 1), new Object[] { "PFP", "CBC", "CBC", 'P', "plateGold", 'B', Item.getItemFromBlock(Blocks.redstone_block), 'C', ModItems.coil_advanced_alloy, 'F', ModItems.fuse }));
//GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.titanium_filter, 1), new Object[] { "PFP", "CBC", "CBC", 'P', "plateLead", 'B', "U238", 'C', "plateTitanium", 'F', ModItems.fuse }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.detonator, 1), new Object[] { " W", "SC", "CE", 'S', "plateSteel", 'W', ModItems.wire_red_copper, 'C', ModItems.circuit_red_copper, 'E', "ingotSteel" }));

View File

@ -109,6 +109,7 @@ import com.hbm.entity.grenade.EntityGrenadeZOMG;
import com.hbm.entity.item.EntityMinecartTest;
import com.hbm.entity.logic.EntityBomber;
import com.hbm.entity.logic.EntityDeathBlast;
import com.hbm.entity.logic.EntityEMP;
import com.hbm.entity.logic.EntityMissileTest;
import com.hbm.entity.logic.EntityNukeExplosion;
import com.hbm.entity.logic.EntityNukeExplosionAdvanced;
@ -132,6 +133,7 @@ import com.hbm.entity.missile.EntityMissileClusterStrong;
import com.hbm.entity.missile.EntityMissileDoomsday;
import com.hbm.entity.missile.EntityMissileDrill;
import com.hbm.entity.missile.EntityMissileEMP;
import com.hbm.entity.missile.EntityMissileEMPStrong;
import com.hbm.entity.missile.EntityMissileEndo;
import com.hbm.entity.missile.EntityMissileExo;
import com.hbm.entity.missile.EntityMissileGeneric;
@ -287,6 +289,7 @@ import com.hbm.tileentity.machine.TileEntityFWatzCore;
import com.hbm.tileentity.machine.TileEntityForceField;
import com.hbm.tileentity.machine.TileEntityFusionMultiblock;
import com.hbm.tileentity.machine.TileEntityHatch;
import com.hbm.tileentity.machine.TileEntityMachineAmgen;
import com.hbm.tileentity.machine.TileEntityMachineArcFurnace;
import com.hbm.tileentity.machine.TileEntityMachineAssembler;
import com.hbm.tileentity.machine.TileEntityMachineBattery;
@ -784,6 +787,7 @@ public class MainRegistry
GameRegistry.registerTileEntity(TileEntityCoreReceiver.class, "tileentity_v0_receiver");
GameRegistry.registerTileEntity(TileEntityCoreInjector.class, "tileentity_v0_injector");
GameRegistry.registerTileEntity(TileEntityMachineArcFurnace.class, "tileentity_arc_furnace");
GameRegistry.registerTileEntity(TileEntityMachineAmgen.class, "tileentity_amgen");
EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true);
EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true);
@ -920,6 +924,8 @@ public class MainRegistry
EntityRegistry.registerModEntity(EntityMinerRocket.class, "entity_miner_lander", 132, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityFogFX.class, "entity_nuclear_fog", 133, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityDuchessGambit.class, "entity_duchessgambit", 134, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityMissileEMPStrong.class, "entity_missile_emp_strong", 135, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityEMP.class, "entity_emp_logic", 136, this, 1000, 1, true);
EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00);
EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd);
@ -1509,6 +1515,8 @@ public class MainRegistry
recipes.overridePreSetRecipe(new ItemStack(Blocks.stone), new ItemStack(Blocks.gravel, 1));
recipes.overridePreSetRecipe(new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.gravel, 1));
recipes.overridePreSetRecipe(new ItemStack(Blocks.stonebrick), new ItemStack(Blocks.gravel, 1));
recipes.overridePreSetRecipe(new ItemStack(Blocks.gravel), new ItemStack(Blocks.sand, 1));
recipes.overridePreSetRecipe(new ItemStack(Blocks.sand), new ItemStack(ModItems.dust, 2));
recipes.overridePreSetRecipe(new ItemStack(Blocks.brick_block), new ItemStack(Items.clay_ball, 4));
recipes.overridePreSetRecipe(new ItemStack(Blocks.brick_stairs), new ItemStack(Items.clay_ball, 3));
recipes.overridePreSetRecipe(new ItemStack(Items.flower_pot), new ItemStack(Items.clay_ball, 3));
@ -1529,6 +1537,8 @@ public class MainRegistry
recipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_meteorite), new ItemStack(ModItems.powder_meteorite_tiny, 1));
recipes.overridePreSetRecipe(new ItemStack(ModBlocks.block_meteor), new ItemStack(ModItems.powder_meteorite, 10));
recipes.overridePreSetRecipe(new ItemStack(Items.enchanted_book), new ItemStack(ModItems.powder_magic, 1));
recipes.overridePreSetRecipe(new ItemStack(ModItems.arc_electrode_burnt), new ItemStack(ModItems.powder_coal, 1));
recipes.overridePreSetRecipe(new ItemStack(ModItems.arc_electrode_desh), new ItemStack(ModItems.powder_desh, 2));
for(int i = 0; i < 16; i++) {
recipes.overridePreSetRecipe(new ItemStack(Blocks.stained_hardened_clay, 1, i), new ItemStack(Items.clay_ball, 4));

View File

@ -336,6 +336,7 @@ public class ResourceManager {
public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_BU.png");
public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileAA.png");
public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_HE.png");
public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_EMP.png");
public static final ResourceLocation missileStrong_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_IN.png");
public static final ResourceLocation missileStrong_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_CL.png");
public static final ResourceLocation missileStrong_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_BU.png");

View File

@ -10,6 +10,7 @@ import com.hbm.tileentity.deco.TileEntityBomber;
import com.hbm.tileentity.machine.TileEntityAMSBase;
import com.hbm.tileentity.machine.TileEntityAMSEmitter;
import com.hbm.tileentity.machine.TileEntityAMSLimiter;
import com.hbm.tileentity.machine.TileEntityMachineArcFurnace;
import com.hbm.tileentity.machine.TileEntityMachineBoiler;
import com.hbm.tileentity.machine.TileEntityMachineBoilerElectric;
import com.hbm.tileentity.machine.TileEntityMachineCentrifuge;
@ -195,6 +196,12 @@ public class AuxGaugePacket implements IMessage {
if(m.id == 0)
furn.dualCookTime = m.value;
}
if (te instanceof TileEntityMachineArcFurnace) {
TileEntityMachineArcFurnace furn = (TileEntityMachineArcFurnace)te;
if(m.id == 0)
furn.dualCookTime = m.value;
}
if (te instanceof TileEntityMachineBoilerElectric) {
TileEntityMachineBoilerElectric boiler = (TileEntityMachineBoilerElectric)te;

View File

@ -0,0 +1,83 @@
package com.hbm.tileentity.machine;
import java.util.ArrayList;
import java.util.List;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.interfaces.IConsumer;
import com.hbm.interfaces.ISource;
import com.hbm.lib.Library;
import com.hbm.saveddata.RadiationSavedData;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.chunk.Chunk;
public class TileEntityMachineAmgen extends TileEntity implements ISource {
public List<IConsumer> list = new ArrayList();
public long power;
public long maxPower = 50;
boolean tact = false;
@Override
public void updateEntity() {
if(!worldObj.isRemote) {
RadiationSavedData data = RadiationSavedData.getData(worldObj);
Chunk c = worldObj.getChunkFromBlockCoords(xCoord, zCoord);
float rad = data.getRadNumFromCoord(c.xPosition, c.zPosition);
power += rad;
data.decrementRad(worldObj, xCoord, zCoord, 5F);
tact = false;
ffgeuaInit();
tact = true;
ffgeuaInit();
}
}
@Override
public void ffgeuaInit() {
ffgeua(this.xCoord, this.yCoord + 1, this.zCoord, getTact());
ffgeua(this.xCoord, this.yCoord - 1, this.zCoord, getTact());
ffgeua(this.xCoord - 1, this.yCoord, this.zCoord, getTact());
ffgeua(this.xCoord + 1, this.yCoord, this.zCoord, getTact());
ffgeua(this.xCoord, this.yCoord, this.zCoord - 1, getTact());
ffgeua(this.xCoord, this.yCoord, this.zCoord + 1, getTact());
}
@Override
public void ffgeua(int x, int y, int z, boolean newTact) {
Library.ffgeua(x, y, z, newTact, this, worldObj);
}
@Override
public boolean getTact() {
return tact;
}
@Override
public long getSPower() {
return power;
}
@Override
public void setSPower(long i) {
power = i;
}
@Override
public List<IConsumer> getList() {
return list;
}
@Override
public void clearList() {
list.clear();
}
}

View File

@ -1,7 +1,9 @@
package com.hbm.tileentity.machine;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.machine.MachineArcFurnace;
import com.hbm.interfaces.IConsumer;
import com.hbm.items.ModItems;
import com.hbm.items.special.ItemBattery;
import com.hbm.lib.Library;
import com.hbm.packet.AuxElectricityPacket;
@ -23,16 +25,22 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv
public int dualCookTime;
public long power;
public static final long maxPower = 100000;
public static final int processingSpeed = 100;
public static final int processingSpeed = 20;
private static final int[] slots_top = new int[] {1};
private static final int[] slots_bottom = new int[] {2, 0};
//0: i
//1: o
//2: 1
//3: 2
//4: 3
//5: b
private static final int[] slots_top = new int[] {0, 2, 3, 4, 5};
private static final int[] slots_bottom = new int[] {1, 2, 3, 4, 5};
private static final int[] slots_side = new int[] {0};
private String customName;
public TileEntityMachineArcFurnace() {
slots = new ItemStack[3];
slots = new ItemStack[6];
}
@Override
@ -68,7 +76,7 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv
@Override
public String getInventoryName() {
return this.hasCustomInventoryName() ? this.customName : "container.electricFurnace";
return this.hasCustomInventoryName() ? this.customName : "container.arcFurnace";
}
@Override
@ -103,11 +111,18 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv
@Override
public boolean isItemValidForSlot(int i, ItemStack itemStack) {
if(i == 0)
if(i == 1)
return false;
if(i == 5)
if(itemStack.getItem() instanceof ItemBattery)
return true;
if(i == 1)
if(i == 2 || i == 3 || i == 4)
return itemStack.getItem() == ModItems.arc_electrode || itemStack.getItem() == ModItems.arc_electrode_desh;
if(i == 0)
return true;
return false;
@ -188,12 +203,16 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv
@Override
public boolean canExtractItem(int i, ItemStack itemStack, int j) {
if(i == 0)
if(i == 5)
if (itemStack.getItem() instanceof ItemBattery && ItemBattery.getCharge(itemStack) == 0)
return true;
if(i == 2)
if(i == 1)
return true;
if(i == 2 || i == 3 || i == 4)
return itemStack.getItem() == ModItems.arc_electrode_burnt;
return false;
}
@ -213,46 +232,62 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv
return this.dualCookTime > 0;
}
private boolean hasElectrodes() {
if(slots[2] != null && slots[3] != null && slots[4] != null) {
if((slots[2].getItem() == ModItems.arc_electrode || slots[2].getItem() == ModItems.arc_electrode_desh) &&
(slots[3].getItem() == ModItems.arc_electrode || slots[3].getItem() == ModItems.arc_electrode_desh) &&
(slots[4].getItem() == ModItems.arc_electrode || slots[4].getItem() == ModItems.arc_electrode_desh))
return true;
}
return false;
}
public boolean canProcess() {
if(slots[1] == null)
if(!hasElectrodes())
return false;
if(slots[0] == null)
{
return false;
}
ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[1]);
ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]);
if(itemStack == null)
{
return false;
}
if(slots[2] == null)
if(slots[1] == null)
{
return true;
}
if(!slots[2].isItemEqual(itemStack)) {
if(!slots[1].isItemEqual(itemStack)) {
return false;
}
if(slots[2].stackSize < getInventoryStackLimit() && slots[2].stackSize < slots[2].getMaxStackSize()) {
if(slots[1].stackSize < getInventoryStackLimit() && slots[1].stackSize < slots[1].getMaxStackSize()) {
return true;
}else{
return slots[2].stackSize < itemStack.getMaxStackSize();
return slots[1].stackSize < itemStack.getMaxStackSize();
}
}
private void processItem() {
if(canProcess()) {
ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[1]);
ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]);
if(slots[2] == null)
if(slots[1] == null)
{
slots[2] = itemStack.copy();
}else if(slots[2].isItemEqual(itemStack)) {
slots[2].stackSize += itemStack.stackSize;
slots[1] = itemStack.copy();
}else if(slots[1].isItemEqual(itemStack)) {
slots[1].stackSize += itemStack.stackSize;
}
for(int i = 1; i < 2; i++)
for(int i = 0; i < 1; i++)
{
if(slots[i].stackSize <= 0)
{
@ -265,6 +300,15 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv
slots[i] = null;
}
}
for(int i = 2; i < 5; i++) {
if(slots[i] != null && slots[i].getItem() == ModItems.arc_electrode) {
if(slots[i].getItemDamage() < slots[i].getMaxDamage())
slots[i].setItemDamage(slots[i].getItemDamage() + 1);
else
slots[i] = new ItemStack(ModItems.arc_electrode_burnt);
}
}
}
}
@ -279,9 +323,9 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv
{
dualCookTime++;
power -= 50;
power -= 1000;
if(this.dualCookTime == TileEntityMachineElectricFurnace.processingSpeed)
if(this.dualCookTime == processingSpeed)
{
this.dualCookTime = 0;
this.processItem();
@ -304,7 +348,19 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv
MachineArcFurnace.updateBlockState(this.dualCookTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
}
power = Library.chargeTEFromItems(slots, 0, power, maxPower);
if(worldObj.getBlock(xCoord, yCoord, zCoord) == ModBlocks.machine_arc_furnace_off) {
int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord);
if(hasElectrodes() && meta <= 5) {
worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, meta + 4, 2);
}
if(!hasElectrodes() && meta > 5) {
worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, meta - 4, 2);
}
}
power = Library.chargeTEFromItems(slots, 5, power, maxPower);
PacketDispatcher.wrapper.sendToAll(new AuxElectricityPacket(xCoord, yCoord, zCoord, power));
PacketDispatcher.wrapper.sendToAll(new AuxGaugePacket(xCoord, yCoord, zCoord, dualCookTime, 0));