Baby Skeletons, started work on Flamethrower

This commit is contained in:
Aidan C. Brady 2014-07-12 22:34:58 -04:00
parent cf6f5ab387
commit 9abc111ecd
9 changed files with 513 additions and 0 deletions

View file

@ -87,6 +87,7 @@ import mekanism.common.IElectricChest;
import mekanism.common.IInvConfiguration; import mekanism.common.IInvConfiguration;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.entity.EntityBabySkeleton;
import mekanism.common.entity.EntityBalloon; import mekanism.common.entity.EntityBalloon;
import mekanism.common.entity.EntityObsidianTNT; import mekanism.common.entity.EntityObsidianTNT;
import mekanism.common.entity.EntityRobit; import mekanism.common.entity.EntityRobit;
@ -133,6 +134,7 @@ import mekanism.common.tile.TileEntitySeismicVibrator;
import mekanism.common.tile.TileEntityTeleporter; import mekanism.common.tile.TileEntityTeleporter;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.renderer.entity.RenderSkeleton;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -313,6 +315,7 @@ public class ClientProxy extends CommonProxy
RenderingRegistry.registerEntityRenderingHandler(EntityObsidianTNT.class, new RenderObsidianTNTPrimed()); RenderingRegistry.registerEntityRenderingHandler(EntityObsidianTNT.class, new RenderObsidianTNTPrimed());
RenderingRegistry.registerEntityRenderingHandler(EntityRobit.class, new RenderRobit()); RenderingRegistry.registerEntityRenderingHandler(EntityRobit.class, new RenderRobit());
RenderingRegistry.registerEntityRenderingHandler(EntityBalloon.class, new RenderBalloon()); RenderingRegistry.registerEntityRenderingHandler(EntityBalloon.class, new RenderBalloon());
RenderingRegistry.registerEntityRenderingHandler(EntityBabySkeleton.class, new RenderSkeleton());
//Register item handler //Register item handler
ItemRenderingHandler handler = new ItemRenderingHandler(); ItemRenderingHandler handler = new ItemRenderingHandler();
@ -334,6 +337,7 @@ public class ClientProxy extends CommonProxy
MinecraftForgeClient.registerItemRenderer(Mekanism.FreeRunners, handler); MinecraftForgeClient.registerItemRenderer(Mekanism.FreeRunners, handler);
MinecraftForgeClient.registerItemRenderer(Mekanism.AtomicDisassembler, handler); MinecraftForgeClient.registerItemRenderer(Mekanism.AtomicDisassembler, handler);
MinecraftForgeClient.registerItemRenderer(Mekanism.GlowPanel, handler); MinecraftForgeClient.registerItemRenderer(Mekanism.GlowPanel, handler);
MinecraftForgeClient.registerItemRenderer(Mekanism.Flamethrower, handler);
//Register block handlers //Register block handlers
RenderingRegistry.registerBlockHandler(new MachineRenderingHandler()); RenderingRegistry.registerBlockHandler(new MachineRenderingHandler());

View file

@ -0,0 +1,215 @@
package mekanism.client.model;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class ModelFlamethrower extends ModelBase
{
ModelRenderer RingButtom;
ModelRenderer RingTop;
ModelRenderer Ring;
ModelRenderer Axle;
ModelRenderer AxleBLeft;
ModelRenderer AxleBRight;
ModelRenderer AxleTRight;
ModelRenderer AxleTLeft;
ModelRenderer Grasp;
ModelRenderer GraspRod;
ModelRenderer SupportCentre;
ModelRenderer SupportFront;
ModelRenderer SupportRear;
ModelRenderer LargeBarrel;
ModelRenderer LargeBarrelDecor;
ModelRenderer LargeBarrelDecor2;
ModelRenderer Barrel;
ModelRenderer BarrelRing;
ModelRenderer BarrelRing2;
ModelRenderer Flame;
ModelRenderer FlameStrut;
ModelRenderer HydrogenDecor;
ModelRenderer Hydrogen;
public ModelFlamethrower()
{
textureWidth = 64;
textureHeight = 64;
RingButtom = new ModelRenderer(this, 19, 14);
RingButtom.addBox(0F, 0F, 0F, 3, 1, 3);
RingButtom.setRotationPoint(-2F, 19.5F, 1.5F);
RingButtom.setTextureSize(64, 64);
RingButtom.mirror = true;
setRotation(RingButtom, 0F, 0F, 0F);
RingTop = new ModelRenderer(this, 19, 14);
RingTop.addBox(0F, 0F, 0F, 3, 1, 3);
RingTop.setRotationPoint(-2F, 13.5F, 1.466667F);
RingTop.setTextureSize(64, 64);
RingTop.mirror = true;
setRotation(RingTop, 0F, 0F, 0F);
Ring = new ModelRenderer(this, 0, 14);
Ring.addBox(0F, 0F, 0F, 5, 6, 4);
Ring.setRotationPoint(-3F, 14F, 1F);
Ring.setTextureSize(64, 64);
Ring.mirror = true;
setRotation(Ring, 0F, 0F, 0F);
Axle = new ModelRenderer(this, 32, 12);
Axle.addBox(0F, 0F, 0F, 4, 4, 7);
Axle.setRotationPoint(-2.5F, 15F, -6.5F);
Axle.setTextureSize(64, 64);
Axle.mirror = true;
setRotation(Axle, 0F, 0F, 0F);
AxleBLeft = new ModelRenderer(this, 0, 25);
AxleBLeft.addBox(-0.5F, -0.5F, 0F, 1, 1, 8);
AxleBLeft.setRotationPoint(-2F, 19F, -7F);
AxleBLeft.setTextureSize(64, 64);
AxleBLeft.mirror = true;
setRotation(AxleBLeft, 0F, 0F, 0.2094395F);
AxleBRight = new ModelRenderer(this, 0, 25);
AxleBRight.addBox(-0.5F, -0.5F, 0F, 1, 1, 8);
AxleBRight.setRotationPoint(1F, 19F, -7F);
AxleBRight.setTextureSize(64, 64);
AxleBRight.mirror = true;
setRotation(AxleBRight, 0.0174533F, 0F, -0.2094395F);
AxleTRight = new ModelRenderer(this, 0, 25);
AxleTRight.addBox(-0.5F, -0.5F, 0F, 1, 1, 8);
AxleTRight.setRotationPoint(1F, 15F, -7F);
AxleTRight.setTextureSize(64, 64);
AxleTRight.mirror = true;
setRotation(AxleTRight, 0F, 0F, 0.2094395F);
AxleTLeft = new ModelRenderer(this, 0, 25);
AxleTLeft.addBox(-0.5F, -0.5F, 0F, 1, 1, 8);
AxleTLeft.setRotationPoint(-2F, 15F, -7F);
AxleTLeft.setTextureSize(64, 64);
AxleTLeft.mirror = true;
setRotation(AxleTLeft, 0F, 0F, -0.2094395F);
Grasp = new ModelRenderer(this, 24, 19);
Grasp.addBox(0F, 0F, 0F, 2, 1, 1);
Grasp.setRotationPoint(-1.5F, 13F, -1.1F);
Grasp.setTextureSize(64, 64);
Grasp.mirror = true;
setRotation(Grasp, 0.7807508F, 0F, 0F);
Grasp.mirror = false;
GraspRod = new ModelRenderer(this, 19, 19);
GraspRod.addBox(0F, 0F, 0F, 1, 3, 1);
GraspRod.setRotationPoint(-1F, 13F, -1F);
GraspRod.setTextureSize(64, 64);
GraspRod.mirror = true;
setRotation(GraspRod, 0.2230717F, 0F, 0F);
SupportCentre = new ModelRenderer(this, 0, 40);
SupportCentre.addBox(0F, 0F, 0F, 2, 1, 6);
SupportCentre.setRotationPoint(-1.5F, 12.4F, 6.6F);
SupportCentre.setTextureSize(64, 64);
SupportCentre.mirror = true;
setRotation(SupportCentre, -0.1115358F, 0F, 0F);
SupportFront = new ModelRenderer(this, 19, 24);
SupportFront.addBox(0F, 0F, 0F, 1, 1, 4);
SupportFront.setRotationPoint(-1F, 13.1F, 12.5F);
SupportFront.setTextureSize(64, 64);
SupportFront.mirror = true;
setRotation(SupportFront, -1.226894F, 0F, 0F);
SupportRear = new ModelRenderer(this, 0, 35);
SupportRear.addBox(0F, 0F, 0F, 3, 1, 3);
SupportRear.setRotationPoint(-2F, 14F, 4F);
SupportRear.setTextureSize(64, 64);
SupportRear.mirror = true;
setRotation(SupportRear, 0.5424979F, 0F, 0F);
LargeBarrel = new ModelRenderer(this, 19, 48);
LargeBarrel.addBox(0F, 0F, 0F, 2, 3, 7);
LargeBarrel.setRotationPoint(-1.5F, 16F, 4F);
LargeBarrel.setTextureSize(64, 64);
LargeBarrel.mirror = true;
setRotation(LargeBarrel, 0F, 0F, 0F);
LargeBarrelDecor = new ModelRenderer(this, 0, 48);
LargeBarrelDecor.addBox(0F, 0F, 0F, 3, 3, 6);
LargeBarrelDecor.setRotationPoint(-2F, 15F, 4F);
LargeBarrelDecor.setTextureSize(64, 64);
LargeBarrelDecor.mirror = true;
setRotation(LargeBarrelDecor, -0.1115358F, 0F, 0F);
LargeBarrelDecor2 = new ModelRenderer(this, 17, 41);
LargeBarrelDecor2.addBox(0F, 0F, 0F, 4, 2, 4);
LargeBarrelDecor2.setRotationPoint(-2.5F, 16F, 4F);
LargeBarrelDecor2.setTextureSize(64, 64);
LargeBarrelDecor2.mirror = true;
setRotation(LargeBarrelDecor2, 0F, 0F, 0F);
Barrel = new ModelRenderer(this, 19, 30);
Barrel.addBox(0F, 0F, 0F, 2, 2, 8);
Barrel.setRotationPoint(-1.5F, 16.5F, 11F);
Barrel.setTextureSize(64, 64);
Barrel.mirror = true;
setRotation(Barrel, 0F, 0F, 0F);
BarrelRing = new ModelRenderer(this, 30, 25);
BarrelRing.addBox(0F, 0F, 0F, 3, 3, 1);
BarrelRing.setRotationPoint(-2F, 16F, 13F);
BarrelRing.setTextureSize(64, 64);
BarrelRing.mirror = true;
setRotation(BarrelRing, 0F, 0F, 0F);
BarrelRing2 = new ModelRenderer(this, 30, 25);
BarrelRing2.addBox(0F, 0F, 0F, 3, 3, 1);
BarrelRing2.setRotationPoint(-2F, 16F, 17F);
BarrelRing2.setTextureSize(64, 64);
BarrelRing2.mirror = true;
setRotation(BarrelRing2, 0F, 0F, 0F);
Flame = new ModelRenderer(this, 38, 0);
Flame.addBox(0F, 0F, 0F, 1, 1, 2);
Flame.setRotationPoint(-1F, 19.5F, 19F);
Flame.setTextureSize(64, 64);
Flame.mirror = true;
setRotation(Flame, 0.7063936F, 0F, 0F);
FlameStrut = new ModelRenderer(this, 27, 0);
FlameStrut.addBox(0F, 0F, 0F, 2, 1, 3);
FlameStrut.setRotationPoint(-1.466667F, 18.5F, 17F);
FlameStrut.setTextureSize(64, 64);
FlameStrut.mirror = true;
setRotation(FlameStrut, -0.2602503F, 0F, 0F);
HydrogenDecor = new ModelRenderer(this, 27, 5);
HydrogenDecor.addBox(0F, 0F, 0F, 3, 1, 5);
HydrogenDecor.setRotationPoint(1.5F, 15.66667F, -4.933333F);
HydrogenDecor.setTextureSize(64, 64);
HydrogenDecor.mirror = true;
setRotation(HydrogenDecor, 0F, 0F, 0.4438713F);
Hydrogen = new ModelRenderer(this, 0, 0);
Hydrogen.addBox(0F, 0F, 0F, 3, 3, 10);
Hydrogen.setRotationPoint(1.5F, 16F, -5.5F);
Hydrogen.setTextureSize(64, 64);
Hydrogen.mirror = true;
setRotation(Hydrogen, 0F, 0F, 0.4438713F);
}
public void render(float size)
{
RingButtom.render(size);
RingTop.render(size);
Ring.render(size);
Axle.render(size);
AxleBLeft.render(size);
AxleBRight.render(size);
AxleTRight.render(size);
AxleTLeft.render(size);
Grasp.render(size);
GraspRod.render(size);
SupportCentre.render(size);
SupportFront.render(size);
SupportRear.render(size);
LargeBarrel.render(size);
LargeBarrelDecor.render(size);
LargeBarrelDecor2.render(size);
Barrel.render(size);
BarrelRing.render(size);
BarrelRing2.render(size);
Flame.render(size);
FlameStrut.render(size);
HydrogenDecor.render(size);
Hydrogen.render(size);
}
private void setRotation(ModelRenderer model, float x, float y, float z)
{
model.rotateAngleX = x;
model.rotateAngleY = y;
model.rotateAngleZ = z;
}
}

View file

@ -8,6 +8,7 @@ import mekanism.client.model.ModelArmoredJetpack;
import mekanism.client.model.ModelAtomicDisassembler; import mekanism.client.model.ModelAtomicDisassembler;
import mekanism.client.model.ModelEnergyCube; import mekanism.client.model.ModelEnergyCube;
import mekanism.client.model.ModelEnergyCube.ModelEnergyCore; import mekanism.client.model.ModelEnergyCube.ModelEnergyCore;
import mekanism.client.model.ModelFlamethrower;
import mekanism.client.model.ModelFreeRunners; import mekanism.client.model.ModelFreeRunners;
import mekanism.client.model.ModelGasMask; import mekanism.client.model.ModelGasMask;
import mekanism.client.model.ModelGasTank; import mekanism.client.model.ModelGasTank;
@ -31,6 +32,7 @@ import mekanism.common.item.ItemAtomicDisassembler;
import mekanism.common.item.ItemBalloon; import mekanism.common.item.ItemBalloon;
import mekanism.common.item.ItemBlockBasic; import mekanism.common.item.ItemBlockBasic;
import mekanism.common.item.ItemBlockMachine; import mekanism.common.item.ItemBlockMachine;
import mekanism.common.item.ItemFlamethrower;
import mekanism.common.item.ItemFreeRunners; import mekanism.common.item.ItemFreeRunners;
import mekanism.common.item.ItemGasMask; import mekanism.common.item.ItemGasMask;
import mekanism.common.item.ItemRobit; import mekanism.common.item.ItemRobit;
@ -83,6 +85,7 @@ public class ItemRenderingHandler implements IItemRenderer
public ModelFreeRunners freeRunners = new ModelFreeRunners(); public ModelFreeRunners freeRunners = new ModelFreeRunners();
public ModelAtomicDisassembler atomicDisassembler = new ModelAtomicDisassembler(); public ModelAtomicDisassembler atomicDisassembler = new ModelAtomicDisassembler();
public ModelPortableTank portableTank = new ModelPortableTank(); public ModelPortableTank portableTank = new ModelPortableTank();
public ModelFlamethrower flamethrower = new ModelFlamethrower();
private final RenderBalloon balloonRenderer = new RenderBalloon(); private final RenderBalloon balloonRenderer = new RenderBalloon();
private final RenderBin binRenderer = (RenderBin)TileEntityRendererDispatcher.instance.mapSpecialRenderers.get(TileEntityBin.class); private final RenderBin binRenderer = (RenderBin)TileEntityRendererDispatcher.instance.mapSpecialRenderers.get(TileEntityBin.class);
@ -435,6 +438,15 @@ public class ItemRenderingHandler implements IItemRenderer
GL11.glEnable(GL11.GL_CULL_FACE); GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glPopAttrib(); GL11.glPopAttrib();
} }
else if(item.getItem() instanceof ItemFlamethrower)
{
GL11.glPushMatrix();
GL11.glRotatef(180, 0.0F, 0.0F, 1.0F);
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "Flamethrower.png"));
flamethrower.render(0.0625F);
GL11.glPopMatrix();
}
else if(MachineType.get(item) == MachineType.PORTABLE_TANK) else if(MachineType.get(item) == MachineType.PORTABLE_TANK)
{ {
GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F); GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);

View file

@ -189,6 +189,7 @@ public class CommonProxy
Mekanism.voiceServerEnabled = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "VoiceServerEnabled", true).getBoolean(true); Mekanism.voiceServerEnabled = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "VoiceServerEnabled", true).getBoolean(true);
Mekanism.cardboardSpawners = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "AllowSpawnerBoxPickup", true).getBoolean(true); Mekanism.cardboardSpawners = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "AllowSpawnerBoxPickup", true).getBoolean(true);
Mekanism.enableWorldRegeneration = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "EnableWorldRegeneration", false).getBoolean(false); Mekanism.enableWorldRegeneration = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "EnableWorldRegeneration", false).getBoolean(false);
Mekanism.spawnBabySkeletons = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "SpawnBabySkeletons", true).getBoolean(true);
Mekanism.obsidianTNTDelay = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ObsidianTNTDelay", 100).getInt(); Mekanism.obsidianTNTDelay = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ObsidianTNTDelay", 100).getInt();
Mekanism.obsidianTNTBlastRadius = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ObsidianTNTBlastRadius", 12).getInt(); Mekanism.obsidianTNTBlastRadius = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ObsidianTNTBlastRadius", 12).getInt();
Mekanism.UPDATE_DELAY = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ClientUpdateDelay", 10).getInt(); Mekanism.UPDATE_DELAY = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ClientUpdateDelay", 10).getInt();

View file

@ -49,6 +49,7 @@ import mekanism.common.block.BlockOre;
import mekanism.common.block.BlockPlastic; import mekanism.common.block.BlockPlastic;
import mekanism.common.block.BlockPlasticFence; import mekanism.common.block.BlockPlasticFence;
import mekanism.common.block.BlockSalt; import mekanism.common.block.BlockSalt;
import mekanism.common.entity.EntityBabySkeleton;
import mekanism.common.entity.EntityBalloon; import mekanism.common.entity.EntityBalloon;
import mekanism.common.entity.EntityObsidianTNT; import mekanism.common.entity.EntityObsidianTNT;
import mekanism.common.entity.EntityRobit; import mekanism.common.entity.EntityRobit;
@ -73,6 +74,7 @@ import mekanism.common.item.ItemDust;
import mekanism.common.item.ItemElectricBow; import mekanism.common.item.ItemElectricBow;
import mekanism.common.item.ItemEnergized; import mekanism.common.item.ItemEnergized;
import mekanism.common.item.ItemFilterCard; import mekanism.common.item.ItemFilterCard;
import mekanism.common.item.ItemFlamethrower;
import mekanism.common.item.ItemFreeRunners; import mekanism.common.item.ItemFreeRunners;
import mekanism.common.item.ItemGasMask; import mekanism.common.item.ItemGasMask;
import mekanism.common.item.ItemHDPE; import mekanism.common.item.ItemHDPE;
@ -111,6 +113,7 @@ import mekanism.common.util.MekanismUtils.ResourceType;
import mekanism.common.voice.VoiceServerManager; import mekanism.common.voice.VoiceServerManager;
import mekanism.common.world.GenHandler; import mekanism.common.world.GenHandler;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.Item; import net.minecraft.item.Item;
@ -120,6 +123,8 @@ import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.ChunkCoordIntPair;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.biome.WorldChunkManager;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.event.world.ChunkDataEvent; import net.minecraftforge.event.world.ChunkDataEvent;
@ -258,6 +263,7 @@ public class Mekanism
public static ItemJetpack Jetpack; public static ItemJetpack Jetpack;
public static ItemScubaTank ScubaTank; public static ItemScubaTank ScubaTank;
public static ItemGasMask GasMask; public static ItemGasMask GasMask;
public static ItemFlamethrower Flamethrower;
public static Item Dictionary; public static Item Dictionary;
public static Item Balloon; public static Item Balloon;
public static Item ElectrolyticCore; public static Item ElectrolyticCore;
@ -309,6 +315,7 @@ public class Mekanism
public static boolean cardboardSpawners = true; public static boolean cardboardSpawners = true;
public static boolean machineEffects = true; public static boolean machineEffects = true;
public static boolean enableWorldRegeneration = true; public static boolean enableWorldRegeneration = true;
public static boolean spawnBabySkeletons = true;
public static int obsidianTNTBlastRadius = 12; public static int obsidianTNTBlastRadius = 12;
public static int osmiumPerChunk = 12; public static int osmiumPerChunk = 12;
public static int copperPerChunk = 16; public static int copperPerChunk = 16;
@ -967,6 +974,7 @@ public class Mekanism
Jetpack = (ItemJetpack)new ItemJetpack().setUnlocalizedName("Jetpack"); Jetpack = (ItemJetpack)new ItemJetpack().setUnlocalizedName("Jetpack");
ArmoredJetpack = (ItemJetpack)new ItemJetpack().setUnlocalizedName("ArmoredJetpack"); ArmoredJetpack = (ItemJetpack)new ItemJetpack().setUnlocalizedName("ArmoredJetpack");
FreeRunners = new ItemFreeRunners().setUnlocalizedName("FreeRunners"); FreeRunners = new ItemFreeRunners().setUnlocalizedName("FreeRunners");
Flamethrower = (ItemFlamethrower)new ItemFlamethrower().setUnlocalizedName("Flamethrower");
BrineBucket = new ItemMekanism().setMaxStackSize(1).setContainerItem(Items.bucket).setUnlocalizedName("BrineBucket"); BrineBucket = new ItemMekanism().setMaxStackSize(1).setContainerItem(Items.bucket).setUnlocalizedName("BrineBucket");
Sawdust = new ItemMekanism().setUnlocalizedName("Sawdust"); Sawdust = new ItemMekanism().setUnlocalizedName("Sawdust");
Salt = new ItemMekanism().setUnlocalizedName("Salt"); Salt = new ItemMekanism().setUnlocalizedName("Salt");
@ -1033,6 +1041,7 @@ public class Mekanism
GameRegistry.registerItem(Polyethene, "Polyethene"); GameRegistry.registerItem(Polyethene, "Polyethene");
GameRegistry.registerItem(BioFuel, "BioFuel"); GameRegistry.registerItem(BioFuel, "BioFuel");
GameRegistry.registerItem(GlowPanel, "GlowPanel"); GameRegistry.registerItem(GlowPanel, "GlowPanel");
GameRegistry.registerItem(Flamethrower, "Flamethrower");
} }
/** /**
@ -1237,11 +1246,13 @@ public class Mekanism
EntityRegistry.registerGlobalEntityID(EntityObsidianTNT.class, "ObsidianTNT", EntityRegistry.findGlobalUniqueEntityId()); EntityRegistry.registerGlobalEntityID(EntityObsidianTNT.class, "ObsidianTNT", EntityRegistry.findGlobalUniqueEntityId());
EntityRegistry.registerGlobalEntityID(EntityRobit.class, "Robit", EntityRegistry.findGlobalUniqueEntityId()); EntityRegistry.registerGlobalEntityID(EntityRobit.class, "Robit", EntityRegistry.findGlobalUniqueEntityId());
EntityRegistry.registerGlobalEntityID(EntityBalloon.class, "Balloon", EntityRegistry.findGlobalUniqueEntityId()); EntityRegistry.registerGlobalEntityID(EntityBalloon.class, "Balloon", EntityRegistry.findGlobalUniqueEntityId());
EntityRegistry.registerGlobalEntityID(EntityBabySkeleton.class, "BabySkeleton", EntityRegistry.findGlobalUniqueEntityId());
//Registrations //Registrations
EntityRegistry.registerModEntity(EntityObsidianTNT.class, "ObsidianTNT", 0, this, 40, 5, true); EntityRegistry.registerModEntity(EntityObsidianTNT.class, "ObsidianTNT", 0, this, 40, 5, true);
EntityRegistry.registerModEntity(EntityRobit.class, "Robit", 1, this, 40, 2, true); EntityRegistry.registerModEntity(EntityRobit.class, "Robit", 1, this, 40, 2, true);
EntityRegistry.registerModEntity(EntityBalloon.class, "Balloon", 2, this, 40, 1, true); EntityRegistry.registerModEntity(EntityBalloon.class, "Balloon", 2, this, 40, 1, true);
EntityRegistry.registerModEntity(EntityBabySkeleton.class, "BabySkeleton", 3, this, 64, 5, true);
//Tile entities //Tile entities
GameRegistry.registerTileEntity(TileEntityBoundingBlock.class, "BoundingBlock"); GameRegistry.registerTileEntity(TileEntityBoundingBlock.class, "BoundingBlock");
@ -1380,6 +1391,18 @@ public class Mekanism
//Load configuration //Load configuration
proxy.loadConfiguration(); proxy.loadConfiguration();
//Add baby skeleton spawner
if(spawnBabySkeletons)
{
for(BiomeGenBase biome : WorldChunkManager.allowedBiomes)
{
if(biome.getSpawnableList(EnumCreatureType.monster) != null && biome.getSpawnableList(EnumCreatureType.monster).size() > 0)
{
EntityRegistry.addSpawn(EntityBabySkeleton.class, 6, 1, 3, EnumCreatureType.monster, new BiomeGenBase[] {biome});
}
}
}
//Load this module //Load this module
addItems(); addItems();
addBlocks(); addBlocks();

View file

@ -0,0 +1,85 @@
package mekanism.common.entity;
import java.util.UUID;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.ai.attributes.IAttributeInstance;
import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
public class EntityBabySkeleton extends EntitySkeleton
{
private static final UUID babySpeedBoostUUID = UUID.fromString("B9766B59-9566-4402-BC1F-2EE2A276D836");
private static final AttributeModifier babySpeedBoostModifier = new AttributeModifier(babySpeedBoostUUID, "Baby speed boost", 0.5D, 1);
public EntityBabySkeleton(World world)
{
super(world);
setChild(true);
System.out.println("Spawned");
}
@Override
protected void entityInit()
{
super.entityInit();
getDataWatcher().addObject(12, new Byte((byte)0));
}
@Override
public void onUpdate()
{
super.onUpdate();
System.out.println(posX + " " + posY + " " + posZ);
}
public void setChild(boolean child)
{
getDataWatcher().updateObject(12, Byte.valueOf((byte)(child ? 1 : 0)));
if(worldObj != null && !worldObj.isRemote)
{
IAttributeInstance iattributeinstance = this.getEntityAttribute(SharedMonsterAttributes.movementSpeed);
iattributeinstance.removeModifier(babySpeedBoostModifier);
if(child)
{
iattributeinstance.applyModifier(babySpeedBoostModifier);
}
}
updateChildSize(child);
}
@Override
public boolean isChild()
{
return getDataWatcher().getWatchableObjectByte(12) == 1;
}
@Override
protected int getExperiencePoints(EntityPlayer p_70693_1_)
{
if(isChild())
{
experienceValue = (int)((float)experienceValue * 2.5F);
}
return super.getExperiencePoints(p_70693_1_);
}
public void updateChildSize(boolean child)
{
updateSize(child ? 0.5F : 1.0F);
}
protected final void updateSize(float size)
{
super.setSize(size, size);
}
}

View file

@ -0,0 +1,172 @@
package mekanism.common.item;
import java.util.List;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import mekanism.api.gas.Gas;
import mekanism.api.gas.GasRegistry;
import mekanism.api.gas.GasStack;
import mekanism.api.gas.IGasItem;
import mekanism.common.item.ItemJetpack.JetpackMode;
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.nbt.NBTTagCompound;
public class ItemFlamethrower extends ItemMekanism implements IGasItem
{
public int MAX_GAS = 24000;
public int TRANSFER_RATE = 16;
public ItemFlamethrower()
{
setMaxStackSize(1);
setMaxDamage(100);
setNoRepair();
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister register) {}
public void useGas(ItemStack stack)
{
setGas(stack, new GasStack(getGas(stack).getGas(), getGas(stack).amount-1));
}
@Override
public int getMaxGas(ItemStack itemstack)
{
return MAX_GAS;
}
@Override
public int getRate(ItemStack itemstack)
{
return TRANSFER_RATE;
}
@Override
public int addGas(ItemStack itemstack, GasStack stack)
{
if(getGas(itemstack) != null && getGas(itemstack).getGas() != stack.getGas())
{
return 0;
}
if(stack.getGas() != GasRegistry.getGas("hydrogen"))
{
return 0;
}
int toUse = Math.min(getMaxGas(itemstack)-getStored(itemstack), Math.min(getRate(itemstack), stack.amount));
setGas(itemstack, new GasStack(stack.getGas(), getStored(itemstack)+toUse));
return toUse;
}
@Override
public GasStack removeGas(ItemStack itemstack, int amount)
{
if(getGas(itemstack) == null)
{
return null;
}
Gas type = getGas(itemstack).getGas();
int gasToUse = Math.min(getStored(itemstack), Math.min(getRate(itemstack), amount));
setGas(itemstack, new GasStack(type, getStored(itemstack)-gasToUse));
return new GasStack(type, gasToUse);
}
public int getStored(ItemStack itemstack)
{
return getGas(itemstack) != null ? getGas(itemstack).amount : 0;
}
@Override
public boolean canReceiveGas(ItemStack itemstack, Gas type)
{
return type == GasRegistry.getGas("hydrogen");
}
@Override
public boolean canProvideGas(ItemStack itemstack, Gas type)
{
return false;
}
@Override
public GasStack getGas(ItemStack itemstack)
{
if(itemstack.stackTagCompound == null)
{
return null;
}
GasStack stored = GasStack.readFromNBT(itemstack.stackTagCompound.getCompoundTag("stored"));
if(stored == null)
{
itemstack.setItemDamage(100);
}
else {
itemstack.setItemDamage((int)Math.max(1, (Math.abs((((float)stored.amount/getMaxGas(itemstack))*100)-100))));
}
return stored;
}
@Override
public boolean isMetadataSpecific(ItemStack itemStack)
{
return false;
}
@Override
public void setGas(ItemStack itemstack, GasStack stack)
{
if(itemstack.stackTagCompound == null)
{
itemstack.setTagCompound(new NBTTagCompound());
}
if(stack == null || stack.amount == 0)
{
itemstack.setItemDamage(100);
itemstack.stackTagCompound.removeTag("stored");
}
else {
int amount = Math.max(0, Math.min(stack.amount, getMaxGas(itemstack)));
GasStack gasStack = new GasStack(stack.getGas(), amount);
itemstack.setItemDamage((int)Math.max(1, (Math.abs((((float)amount/getMaxGas(itemstack))*100)-100))));
itemstack.stackTagCompound.setTag("stored", gasStack.write(new NBTTagCompound()));
}
}
public ItemStack getEmptyItem()
{
ItemStack empty = new ItemStack(this);
setGas(empty, null);
empty.setItemDamage(100);
return empty;
}
@Override
public void getSubItems(Item item, CreativeTabs tabs, List list)
{
ItemStack empty = new ItemStack(this);
setGas(empty, null);
empty.setItemDamage(100);
list.add(empty);
ItemStack filled = new ItemStack(this);
setGas(filled, new GasStack(GasRegistry.getGas("hydrogen"), ((IGasItem)filled.getItem()).getMaxGas(filled)));
list.add(filled);
}
}

View file

@ -40,6 +40,7 @@ item.HDPERod.name=HDPE Rod
item.HDPESheet.name=HDPE Sheet item.HDPESheet.name=HDPE Sheet
item.PlaStick.name=PlaStick item.PlaStick.name=PlaStick
item.Substrate.name=Substrate item.Substrate.name=Substrate
item.Flamethrower.name=Flamethrower
//Control Circuits //Control Circuits
item.BasicControlCircuit.name=Basic Control Circuit item.BasicControlCircuit.name=Basic Control Circuit

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB