Turret AI chip, better template icons, small fixes & adjustments

This commit is contained in:
HbmMods 2017-10-12 21:32:41 +02:00
parent 93638177da
commit f2fa19c860
72 changed files with 351 additions and 52 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 B

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -41,9 +41,9 @@ public class TurretHeavy extends TurretBase {
if(!world.isRemote) {
EntityBullet bullet = new EntityBullet(world);
bullet.posX = x + vector.xCoord * 2 + 0.5;
bullet.posY = y + vector.yCoord * 2 + 1;
bullet.posZ = z + vector.zCoord * 2 + 0.5;
bullet.posX = x + vector.xCoord * 1 + 0.5;
bullet.posY = y + vector.yCoord * 1 + 1;
bullet.posZ = z + vector.zCoord * 1 + 0.5;
bullet.motionX = vector.xCoord * 3;
bullet.motionY = vector.yCoord * 3;
@ -54,9 +54,9 @@ public class TurretHeavy extends TurretBase {
world.spawnEntityInWorld(bullet);
EntityGasFlameFX fx = new EntityGasFlameFX(world);
fx.posX = x + vector.xCoord * 2 + 0.5;
fx.posY = y + vector.yCoord * 2 + 1;
fx.posZ = z + vector.zCoord * 2 + 0.5;
fx.posX = x + vector.xCoord * 2.2 + 0.5;
fx.posY = y + vector.yCoord * 2.2 + 1;
fx.posZ = z + vector.zCoord * 2.2 + 0.5;
world.spawnEntityInWorld(fx);
}

View File

@ -625,9 +625,6 @@ public class MachineRecipes {
recipes.put(new ItemStack(Item.getItemFromBlock(ModBlocks.test_render)),
getCentrifugeOutput(Item.getItemFromBlock(ModBlocks.test_render)));
}
// [REDACTED]
// recipes.put(new ItemStack(ModItems.rod_quad_euphemium),
// getCentrifugeOutput(ModItems.rod_quad_euphemium));
recipes.put(new ItemStack(ModItems.cell_sas3), getCentrifugeOutput(ModItems.cell_sas3));
recipes.put(new ItemStack(ModItems.rod_uranium_fuel_depleted),
getCentrifugeOutput(ModItems.rod_uranium_fuel_depleted));
@ -694,9 +691,7 @@ public class MachineRecipes {
recipes.put(new ItemStack(ModItems.rod_neptunium), getReactorOutput(ModItems.rod_neptunium));
recipes.put(new ItemStack(ModItems.rod_dual_neptunium), getReactorOutput(ModItems.rod_dual_neptunium));
recipes.put(new ItemStack(ModItems.rod_quad_neptunium), getReactorOutput(ModItems.rod_quad_neptunium));
// [REDACTED]
// recipes.put(new ItemStack(ModItems.rod_quad_schrabidium),
// getReactorOutput(ModItems.rod_quad_schrabidium));
recipes.put(new ItemStack(ModItems.rod_quad_schrabidium), getReactorOutput(ModItems.rod_quad_schrabidium));
recipes.put(new ItemStack(ModItems.rod_lithium), getReactorOutput(ModItems.rod_lithium));
recipes.put(new ItemStack(ModItems.rod_dual_lithium), getReactorOutput(ModItems.rod_dual_lithium));
recipes.put(new ItemStack(ModItems.rod_quad_lithium), getReactorOutput(ModItems.rod_quad_lithium));
@ -2146,15 +2141,22 @@ public class MachineRecipes {
list.add(new ItemStack(ModItems.bolt_dura_steel, 2));
list.add(new ItemStack(ModItems.drill_titanium, 1));
break;
case SCHRABTRANS:
case TELEPORTER:
list.add(new ItemStack(ModItems.ingot_titanium, 6));
list.add(new ItemStack(ModItems.plate_advanced_alloy, 12));
list.add(new ItemStack(ModItems.plate_combine_steel, 4));
list.add(new ItemStack(ModItems.telepad, 1));
list.add(new ItemStack(ModItems.entanglement_kit, 1));
list.add(new ItemStack(ModBlocks.machine_battery, 5));
list.add(new ItemStack(ModBlocks.machine_battery, 2));
list.add(new ItemStack(ModItems.coil_magnetized_tungsten, 4));
break;
case SCHRABTRANS:
list.add(new ItemStack(ModItems.ingot_titanium, 24));
list.add(new ItemStack(ModItems.plate_advanced_alloy, 18));
list.add(new ItemStack(ModItems.plate_steel, 12));
list.add(new ItemStack(ModBlocks.machine_battery, 5));
list.add(new ItemStack(ModItems.ingot_magnetized_tungsten, 1));
break;
case CMB_FURNACE:
list.add(new ItemStack(ModItems.ingot_steel, 8));
list.add(new ItemStack(ModItems.ingot_polymer, 6));
@ -2283,6 +2285,10 @@ public class MachineRecipes {
list.add(new ItemStack(ModItems.circuit_schrabidium, 2));
list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 12));
break;
case FW_PORT:
list.add(new ItemStack(ModItems.ingot_tungsten, 6));
list.add(new ItemStack(ModItems.plate_combine_steel, 4));
break;
case FW_MAGNET:
list.add(new ItemStack(ModItems.plate_combine_steel, 10));
list.add(new ItemStack(ModItems.coil_magnetized_tungsten, 5));
@ -3070,6 +3076,9 @@ public class MachineRecipes {
case MINER:
output = new ItemStack(ModBlocks.machine_drill, 1);
break;
case TELEPORTER:
output = new ItemStack(ModBlocks.machine_teleporter, 1);
break;
case SCHRABTRANS:
output = new ItemStack(ModBlocks.machine_schrabidium_transmutator, 1);
break;
@ -3139,6 +3148,9 @@ public class MachineRecipes {
case LW_CORE:
output = new ItemStack(ModBlocks.watz_core, 1);
break;
case FW_PORT:
output = new ItemStack(ModBlocks.fwatz_hatch, 1);
break;
case FW_MAGNET:
output = new ItemStack(ModBlocks.fwatz_conductor, 1);
break;
@ -3649,6 +3661,12 @@ public class MachineRecipes {
case SF_PETROLEUM:
input[0] = new FluidStack(600, FluidType.PETROLEUM);
break;
case SF_BIOGAS:
input[0] = new FluidStack(400, FluidType.BIOGAS);
break;
case SF_BIOFUEL:
input[0] = new FluidStack(300, FluidType.BIOFUEL);
break;
case POLYMER:
input[0] = new FluidStack(600, FluidType.PETROLEUM);
break;
@ -3659,7 +3677,7 @@ public class MachineRecipes {
input[0] = new FluidStack(1000, FluidType.WATER);
break;
case BP_BIOFUEL:
input[0] = new FluidStack(1000, FluidType.BIOGAS);
input[0] = new FluidStack(2000, FluidType.BIOGAS);
break;
default:
break;
@ -3747,6 +3765,14 @@ public class MachineRecipes {
output[0] = new ItemStack(ModItems.solid_fuel, 1);
output[1] = new ItemStack(ModItems.solid_fuel, 1);
break;
case SF_BIOGAS:
output[0] = new ItemStack(ModItems.solid_fuel, 1);
output[1] = new ItemStack(ModItems.solid_fuel, 1);
break;
case SF_BIOFUEL:
output[0] = new ItemStack(ModItems.solid_fuel, 1);
output[1] = new ItemStack(ModItems.solid_fuel, 1);
break;
case POLYMER:
output[0] = new ItemStack(ModItems.ingot_polymer, 1);
break;
@ -3827,13 +3853,13 @@ public class MachineRecipes {
input[0] = new FluidStack(500, FluidType.DEUTERIUM);
break;
case STEAM:
input[0] = new FluidStack(1000, FluidType.DEUTERIUM);
input[0] = new FluidStack(1000, FluidType.STEAM);
break;
case BP_BIOGAS:
input[0] = new FluidStack(1000, FluidType.BIOGAS);
input[0] = new FluidStack(4000, FluidType.BIOGAS);
break;
case BP_BIOFUEL:
input[0] = new FluidStack(500, FluidType.BIOFUEL);
input[0] = new FluidStack(1000, FluidType.BIOFUEL);
break;
default:
break;

View File

@ -7,6 +7,7 @@ import java.util.List;
import org.lwjgl.opengl.GL11;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.inventory.MachineRecipes;
import com.hbm.items.ModItems;
import com.hbm.items.tool.ItemAssemblyTemplate.EnumAssemblyTemplate;
import com.hbm.items.tool.ItemChemistryTemplate;
@ -174,9 +175,19 @@ public class GUIScreenTemplateFolder extends GuiScreen {
}
public void drawIcon(boolean b) {
if(stack != null)
try {
GL11.glDisable(GL11.GL_LIGHTING);
if(stack != null) {
if(stack.getItem() == ModItems.assembly_template)
itemRender.renderItemAndEffectIntoGUI(fontRendererObj, mc.getTextureManager(), MachineRecipes.getOutputFromTempate(stack), xPos + 1, yPos + 1);
else if(stack.getItem() == ModItems.chemistry_template)
itemRender.renderItemAndEffectIntoGUI(fontRendererObj, mc.getTextureManager(), new ItemStack(ModItems.chemistry_icon, 1, stack.getItemDamage()), xPos + 1, yPos + 1);
else
itemRender.renderItemAndEffectIntoGUI(fontRendererObj, mc.getTextureManager(), stack, xPos + 1, yPos + 1);
}
GL11.glEnable(GL11.GL_LIGHTING);
} catch(Exception x) { }
}
public void drawString(int x, int y) {
if(info == null || info.isEmpty())

View File

@ -544,6 +544,7 @@ public class ModItems {
public static Item template_folder;
public static Item assembly_template;
public static Item chemistry_template;
public static Item chemistry_icon;
public static Item fluid_identifier;
public static Item fluid_icon;
@ -923,6 +924,7 @@ public class ModItems {
public static Item crate_caller;
public static Item remote;
public static Item turret_control;
public static Item turret_chip;
public static Item chopper;
public static Item bucket_mud;
@ -1750,11 +1752,13 @@ public class ModItems {
linker = new ItemTeleLink().setUnlocalizedName("linker").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":linker");
oil_detector = new ItemOilDetector().setUnlocalizedName("oil_detector").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":oil_detector");
turret_control = new ItemTurretControl().setUnlocalizedName("turret_control").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":turret_control");
turret_chip = new ItemTurretChip().setUnlocalizedName("turret_chip").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":turret_chip");
geiger_counter = new ItemGeigerCounter().setUnlocalizedName("geiger_counter").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":geiger_counter");
template_folder = new ItemTemplateFolder().setUnlocalizedName("template_folder").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":template_folder");
assembly_template = new ItemAssemblyTemplate().setUnlocalizedName("assembly_template").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":assembly_template");
chemistry_template = new ItemChemistryTemplate().setUnlocalizedName("chemistry_template").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":chemistry_template");
chemistry_icon = new ItemChemistryIcon().setUnlocalizedName("chemistry_icon").setMaxStackSize(1).setCreativeTab(null);
fluid_identifier = new ItemFluidIdentifier().setUnlocalizedName("fluid_identifier").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":fluid_identifier");
fluid_icon = new ItemFluidIcon().setUnlocalizedName("fluid_icon").setCreativeTab(null).setTextureName(RefStrings.MODID + ":fluid_icon");
fluid_tank_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_full").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fluid_tank");
@ -2426,6 +2430,7 @@ public class ModItems {
GameRegistry.registerItem(fluid_icon, fluid_icon.getUnlocalizedName());
GameRegistry.registerItem(assembly_template, assembly_template.getUnlocalizedName());
GameRegistry.registerItem(chemistry_template, chemistry_template.getUnlocalizedName());
GameRegistry.registerItem(chemistry_icon, chemistry_icon.getUnlocalizedName());
//Machine Items
GameRegistry.registerItem(fuse, fuse.getUnlocalizedName());
@ -2576,6 +2581,7 @@ public class ModItems {
GameRegistry.registerItem(designator, designator.getUnlocalizedName());
GameRegistry.registerItem(designator_range, designator_range.getUnlocalizedName());
GameRegistry.registerItem(turret_control, turret_control.getUnlocalizedName());
GameRegistry.registerItem(turret_chip, turret_chip.getUnlocalizedName());
GameRegistry.registerItem(linker, linker.getUnlocalizedName());
GameRegistry.registerItem(oil_detector, oil_detector.getUnlocalizedName());
GameRegistry.registerItem(geiger_counter, geiger_counter.getUnlocalizedName());

View File

@ -280,11 +280,6 @@ public class ItemCustomLore extends ItemRadioactive {
{
list.add("A quad fuel rod which contains a");
list.add("very small ammount of a strange new element.");
list.add("");
list.add("If you tell anybody about this, I will");
list.add("tear your living guts out and use them to");
list.add("grease the treads of my tank.");
list.add("Got that? Good.");
}
if(this == ModItems.ingot_euphemium)

View File

@ -129,6 +129,7 @@ public class ItemAssemblyTemplate extends Item {
CHEMPLANT,
TANK,
MINER,
TELEPORTER,
SCHRABTRANS,
CMB_FURNACE,
FA_HULL,
@ -152,6 +153,7 @@ public class ItemAssemblyTemplate extends Item {
LW_HATCH,
LW_PORT,
LW_CORE,
FW_PORT,
FW_MAGNET,
FW_COMPUTER,
FW_CORE,
@ -506,8 +508,10 @@ public class ItemAssemblyTemplate extends Item {
return 150;
case MINER:
return 200;
case SCHRABTRANS:
case TELEPORTER:
return 300;
case SCHRABTRANS:
return 500;
case CMB_FURNACE:
return 150;
case FA_HULL:
@ -552,6 +556,8 @@ public class ItemAssemblyTemplate extends Item {
return 250;
case LW_CORE:
return 350;
case FW_PORT:
return 250;
case FW_MAGNET:
return 250;
case FW_COMPUTER:

View File

@ -0,0 +1,72 @@
package com.hbm.items.tool;
import java.util.List;
import com.hbm.items.ModItems;
import com.hbm.items.tool.ItemChemistryTemplate.EnumChemistryTemplate;
import com.hbm.lib.RefStrings;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StatCollector;
public class ItemChemistryIcon extends Item {
@SideOnly(Side.CLIENT)
private IIcon[] icons;
public ItemChemistryIcon()
{
this.setHasSubtypes(true);
this.setMaxDamage(0);
}
public String getItemStackDisplayName(ItemStack stack)
{
String s = ("" + StatCollector.translateToLocal(ModItems.chemistry_template.getUnlocalizedName() + ".name")).trim();
String s1 = ("" + StatCollector.translateToLocal("chem." + EnumChemistryTemplate.getEnum(stack.getItemDamage()).name())).trim();
if (s1 != null)
{
s = s + " " + s1;
}
return s;
}
@Override
@SideOnly(Side.CLIENT)
public void getSubItems(Item item, CreativeTabs tabs, List list)
{
for (int i = 0; i < EnumChemistryTemplate.values().length; ++i)
{
list.add(new ItemStack(item, 1, i));
}
}
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister reg)
{
this.icons = new IIcon[EnumChemistryTemplate.values().length];
for (int i = 0; i < icons.length; ++i)
{
this.icons[i] = reg.registerIcon("hbm:chem_icon_" + EnumChemistryTemplate.getEnum(i).name());
}
}
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int i)
{
int j = MathHelper.clamp_int(i, 0, icons.length - 1);
return this.icons[j];
}
}

View File

@ -54,6 +54,8 @@ public class ItemChemistryTemplate extends Item {
SF_KEROSENE,
SF_GAS,
SF_PETROLEUM,
SF_BIOGAS,
SF_BIOFUEL,
BP_BIOGAS,
BP_BIOFUEL,
ASPHALT,
@ -188,6 +190,10 @@ public class ItemChemistryTemplate extends Item {
return 20;
case SF_PETROLEUM:
return 20;
case SF_BIOGAS:
return 20;
case SF_BIOFUEL:
return 20;
case POLYMER:
return 100;
case DEUTERIUM:
@ -197,7 +203,7 @@ public class ItemChemistryTemplate extends Item {
case BP_BIOGAS:
return 200;
case BP_BIOFUEL:
return 300;
return 100;
default:
return 100;
}

View File

@ -0,0 +1,38 @@
package com.hbm.items.tool;
import com.hbm.blocks.bomb.TurretBase;
import com.hbm.tileentity.bomb.TileEntityTurretBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText;
import net.minecraft.world.World;
public class ItemTurretChip extends Item {
@Override
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_)
{
if((world.getBlock(x, y, z) instanceof TurretBase))
{
TileEntity te = world.getTileEntity(x, y, z);
if(te instanceof TileEntityTurretBase) {
((TileEntityTurretBase)te).isAI = true;
((TileEntityTurretBase)te).uuid = player.getUniqueID().toString();
}
if(world.isRemote)
{
player.addChatMessage(new ChatComponentText("Turret ownership set to: " + player.getDisplayName()));
}
world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F);
return true;
}
return false;
}
}

View File

@ -42,6 +42,7 @@ public class ItemTurretControl extends Item {
if(te != null && te instanceof TileEntityTurretBase) {
TileEntityTurretBase turret = (TileEntityTurretBase)te;
if(!turret.isAI) {
turret.rotationYaw = player.rotationYaw;
turret.rotationPitch = player.rotationPitch;
if(turret.rotationPitch < -60)
@ -53,6 +54,7 @@ public class ItemTurretControl extends Item {
}
}
}
}
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool)

View File

@ -85,7 +85,8 @@ public class GunZOMG extends Item {
player.addChatMessage(new ChatComponentText("[ZOMG] Gun has been validated!"));
}
if (Library.superuser.contains(player.getUniqueID().toString())) {
//if(Library.superuser.contains(player.getUniqueID().toString())) {
if(player.inventory.hasItem(ModItems.polaroid)) {
if (world.isRemote) {
player.addChatMessage(new ChatComponentText("[ZOMG] Welcome, superuser!"));
}

View File

@ -352,6 +352,7 @@ public class CraftingManager {
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.biomass, 4), new Object[] { Items.melon, Items.melon, Items.melon, Items.melon, Items.melon, Items.melon, Items.melon });
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.biomass, 4), new Object[] { Items.apple, Items.apple, Items.apple, Items.apple, Items.apple, Items.apple, Items.apple, Items.apple, Items.apple });
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.biomass, 4), new Object[] { Items.reeds, Items.reeds, Items.reeds, Items.reeds, Items.reeds, Items.reeds, Items.reeds, Items.reeds, Items.reeds });
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.biomass, 4), new Object[] { Items.rotten_flesh, Items.rotten_flesh, Items.rotten_flesh, Items.rotten_flesh, Items.rotten_flesh, Items.rotten_flesh, Items.rotten_flesh });
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.biomass, 4), new Object[] { Items.carrot, Items.carrot, Items.carrot, Items.carrot, Items.carrot, Items.carrot, Items.carrot, Items.carrot, Items.carrot });
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.biomass, 4), new Object[] { Items.potato, Items.potato, Items.potato, Items.potato, Items.potato, Items.potato, Items.potato, Items.potato, Items.potato });

View File

@ -40,8 +40,8 @@ public class NEIConfig implements IConfigureNEI {
API.registerUsageHandler(new AssemblerRecipeHandler());
API.registerRecipeHandler(new RefineryRecipeHandler());
API.registerUsageHandler(new RefineryRecipeHandler());
API.registerRecipeHandler(new ModInfoHandler());
API.registerUsageHandler(new ModInfoHandler());
//API.registerRecipeHandler(new ModInfoHandler());
//API.registerUsageHandler(new ModInfoHandler());
API.registerRecipeHandler(new ChemplantRecipeHandler());
API.registerUsageHandler(new ChemplantRecipeHandler());
API.registerRecipeHandler(new FluidRecipeHandler());
@ -60,22 +60,46 @@ public class NEIConfig implements IConfigureNEI {
API.hideItem(new ItemStack(Item.getItemFromBlock(ModBlocks.statue_elb_f)));
API.hideItem(new ItemStack(Item.getItemFromBlock(ModBlocks.cheater_virus)));
API.hideItem(new ItemStack(Item.getItemFromBlock(ModBlocks.cheater_virus_seed)));
API.hideItem(new ItemStack(ModItems.euphemium_helmet));
API.hideItem(new ItemStack(ModItems.euphemium_plate));
API.hideItem(new ItemStack(ModItems.euphemium_legs));
API.hideItem(new ItemStack(ModItems.euphemium_boots));
API.hideItem(new ItemStack(ModItems.apple_euphemium));
API.hideItem(new ItemStack(ModItems.ingot_euphemium));
API.hideItem(new ItemStack(ModItems.nugget_euphemium));
//API.hideItem(new ItemStack(ModItems.euphemium_helmet));
//API.hideItem(new ItemStack(ModItems.euphemium_plate));
//API.hideItem(new ItemStack(ModItems.euphemium_legs));
//API.hideItem(new ItemStack(ModItems.euphemium_boots));
//API.hideItem(new ItemStack(ModItems.apple_euphemium));
//API.hideItem(new ItemStack(ModItems.ingot_euphemium));
//API.hideItem(new ItemStack(ModItems.nugget_euphemium));
API.hideItem(new ItemStack(ModItems.euphemium_kit));
API.hideItem(new ItemStack(ModItems.euphemium_stopper));
API.hideItem(new ItemStack(ModItems.watch));
API.hideItem(new ItemStack(ModItems.rod_quad_euphemium));
API.hideItem(new ItemStack(ModItems.rod_euphemium));
//API.hideItem(new ItemStack(ModItems.euphemium_stopper));
//API.hideItem(new ItemStack(ModItems.watch));
//API.hideItem(new ItemStack(ModItems.rod_quad_euphemium));
//API.hideItem(new ItemStack(ModItems.rod_euphemium));
if(MainRegistry.polaroidID != 11) {
API.hideItem(new ItemStack(ModItems.book_secret));
if(MainRegistry.polaroidID != 11)
API.hideItem(new ItemStack(ModItems.burnt_bark));
}
API.hideItem(new ItemStack(ModBlocks.dummy_block_assembler));
API.hideItem(new ItemStack(ModBlocks.dummy_block_centrifuge));
API.hideItem(new ItemStack(ModBlocks.dummy_block_chemplant));
API.hideItem(new ItemStack(ModBlocks.dummy_block_cyclotron));
API.hideItem(new ItemStack(ModBlocks.dummy_block_drill));
API.hideItem(new ItemStack(ModBlocks.dummy_block_flare));
API.hideItem(new ItemStack(ModBlocks.dummy_block_fluidtank));
API.hideItem(new ItemStack(ModBlocks.dummy_block_igenerator));
API.hideItem(new ItemStack(ModBlocks.dummy_block_pumpjack));
API.hideItem(new ItemStack(ModBlocks.dummy_block_refinery));
API.hideItem(new ItemStack(ModBlocks.dummy_block_turbofan));
API.hideItem(new ItemStack(ModBlocks.dummy_block_well));
API.hideItem(new ItemStack(ModBlocks.dummy_port_assembler));
API.hideItem(new ItemStack(ModBlocks.dummy_port_chemplant));
API.hideItem(new ItemStack(ModBlocks.dummy_port_cyclotron));
API.hideItem(new ItemStack(ModBlocks.dummy_port_drill));
API.hideItem(new ItemStack(ModBlocks.dummy_port_flare));
API.hideItem(new ItemStack(ModBlocks.dummy_port_fluidtank));
API.hideItem(new ItemStack(ModBlocks.dummy_port_igenerator));
API.hideItem(new ItemStack(ModBlocks.dummy_port_pumpjack));
API.hideItem(new ItemStack(ModBlocks.dummy_port_refinery));
API.hideItem(new ItemStack(ModBlocks.dummy_port_turbofan));
API.hideItem(new ItemStack(ModBlocks.dummy_port_well));
}
@Override
public String getName() {

View File

@ -58,6 +58,7 @@ public class TEFluidPacket implements IMessage {
@Override
public IMessage onMessage(TEFluidPacket m, MessageContext ctx) {
try{
TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z);
if (te != null && te instanceof IFluidContainer) {
@ -66,6 +67,7 @@ public class TEFluidPacket implements IMessage {
gen.setFillstate(m.fill, m.index);
gen.setType(FluidType.getEnum(m.type), m.index);
}
} catch(Exception x) { }
return null;
}
}

View File

@ -54,6 +54,7 @@ public class TEPumpjackPacket implements IMessage {
@Override
public IMessage onMessage(TEPumpjackPacket m, MessageContext ctx) {
try {
TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z);
if (te != null && te instanceof TileEntityMachinePumpjack) {
@ -62,6 +63,7 @@ public class TEPumpjackPacket implements IMessage {
gen.rotation = m.spin;
gen.isProgressing = m.progress;
}
} catch(Exception x) { }
return null;
}
}

View File

@ -1,25 +1,100 @@
package com.hbm.tileentity.bomb;
import com.hbm.blocks.bomb.TurretBase;
import com.hbm.packet.LoopedSoundPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.TETurretPacket;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
public abstract class TileEntityTurretBase extends TileEntity {
public double rotationYaw;
public double rotationPitch;
public boolean isAI = false;
public String uuid;
public int use;
@Override
public void updateEntity() {
if(isAI) {
Object[] iter = worldObj.loadedEntityList.toArray();
double radius = 500;
Entity target = null;
for (int i = 0; i < iter.length; i++)
{
Entity e = (Entity) iter[i];
if (isInSight(e))
{
double distance = e.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5);
if (distance < radius)
{
radius = distance;
target = e;
}
}
}
if(target != null) {
Vec3 turret = Vec3.createVectorHelper(target.posX - (xCoord + 0.5), target.posY + target.getEyeHeight() - (yCoord + 1), target.posZ - (zCoord + 0.5));
rotationPitch = -Math.asin(turret.yCoord/turret.lengthVector()) * 180 / Math.PI;
rotationYaw = -Math.atan2(turret.xCoord, turret.zCoord) * 180 / Math.PI;
if(rotationPitch < -60)
rotationPitch = -60;
if(rotationPitch > 30)
rotationPitch = 30;
use++;
if(worldObj.getBlock(xCoord, yCoord, zCoord) instanceof TurretBase) {
((TurretBase)worldObj.getBlock(xCoord, yCoord, zCoord)).executeHoldAction(worldObj, use, rotationYaw, rotationPitch, xCoord, yCoord, zCoord);
}
} else {
use = 0;
}
}
if(!worldObj.isRemote)
PacketDispatcher.wrapper.sendToAll(new TETurretPacket(xCoord, yCoord, zCoord, rotationYaw, rotationPitch));
}
private boolean isInSight(Entity e) {
if(!(e instanceof EntityLivingBase))
return false;
if(e instanceof EntityPlayer && ((EntityPlayer)e).getUniqueID().toString().equals(uuid))
return false;
Vec3 turret = Vec3.createVectorHelper(xCoord + 0.5, yCoord + 1, zCoord + 0.5);
Vec3 entity = Vec3.createVectorHelper(e.posX, e.posY + e.getEyeHeight(), e.posZ);
Vec3 side = Vec3.createVectorHelper(entity.xCoord - turret.xCoord, entity.yCoord - turret.yCoord, entity.zCoord - turret.zCoord);
side = side.normalize();
turret.xCoord += side.xCoord * 1.5;
turret.yCoord += side.yCoord * 1.5;
turret.zCoord += side.zCoord * 1.5;
MovingObjectPosition pos = worldObj.rayTraceBlocks(entity, turret);
return true;
//return pos != null;
}
@Override
public AxisAlignedBB getRenderBoundingBox() {
return TileEntity.INFINITE_EXTENT_AABB;
@ -32,4 +107,22 @@ public abstract class TileEntityTurretBase extends TileEntity {
return 65536.0D;
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
rotationYaw = nbt.getDouble("yaw");
rotationPitch = nbt.getDouble("pitch");
isAI = nbt.getBoolean("AI");
uuid = nbt.getString("player");
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setDouble("yaw", rotationYaw);
nbt.setDouble("pitch", rotationPitch);
nbt.setBoolean("AI", isAI);
nbt.setString("player", uuid);
}
}

View File

@ -238,11 +238,11 @@ public class TileEntityMachineDiesel extends TileEntity implements ISidedInvento
public int getHEFromFuel() {
FluidType type = tank.getTankType();
if(type.name().equals(FluidType.DIESEL.name()))
return 250;
return 500;
if(type.name().equals(FluidType.PETROIL.name()))
return 150;
return 300;
if(type.name().equals(FluidType.BIOFUEL.name()))
return 200;
return 400;
return 0;
}

View File

@ -23,6 +23,8 @@ import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.TEIGeneratorPacket;
import com.hbm.packet.TETurbofanPacket;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ISidedInventory;
@ -555,4 +557,16 @@ public class TileEntityMachineTurbofan extends TileEntity implements ISidedInven
if(type.name().equals(tank.getTankType().name()))
tank.setFill(i);
}
@Override
public AxisAlignedBB getRenderBoundingBox() {
return TileEntity.INFINITE_EXTENT_AABB;
}
@Override
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared()
{
return 65536.0D;
}
}