diff options
Diffstat (limited to 'src/Java')
9 files changed, 462 insertions, 5 deletions
diff --git a/src/Java/gregtech/api/util/Recipe_GT.java b/src/Java/gregtech/api/util/Recipe_GT.java index 402f355f88..5d74130f16 100644 --- a/src/Java/gregtech/api/util/Recipe_GT.java +++ b/src/Java/gregtech/api/util/Recipe_GT.java @@ -118,6 +118,13 @@ public class Recipe_GT extends GT_Recipe{ } } + public Recipe_GT(FluidStack aInput1, FluidStack aInput2, FluidStack aOutput1, int aDuration, int aEUt, int aSpecialValue) { + this(true, null, null, null, null, new FluidStack[]{aInput1, aInput2}, new FluidStack[]{aOutput1}, Math.max(aDuration, 1), aEUt, Math.max(Math.min(aSpecialValue, 160000000), 0)); + if (mInputs.length > 1) { + Gregtech_Recipe_Map.sLiquidFluorineThoriumReactorRecipes.addRecipe(this); + } + } + /*public GregtechRecipe(ItemStack aInput, FluidStack aFluid, ItemStack[] aOutput, int aDuration, int aEUt) { this(true, new ItemStack[]{aInput}, aOutput.clone(), null, null, new FluidStack[]{aFluid}, null, aDuration, aEUt, 0); if (mInputs.length > 0 && mOutputs[0] != null) { @@ -231,6 +238,9 @@ public class Recipe_GT extends GT_Recipe{ public static final GT_Recipe_Map sChemicalDehydratorRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.chemicaldehydrator", "Chemical Dehydrator", null, RES_PATH_GUI + "basicmachines/Dehydrator", 2, 9, 0, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sAlloyBlastSmelterRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.alloyblastsmelter", "Alloy Blast Smelter", null, RES_PATH_GUI + "basicmachines/BlastSmelter", 9, 1, 1, 0, 1, E, 1, E, true, true); + //LFTR recipes + public static final GT_Recipe_Map sLiquidFluorineThoriumReactorRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(50), "gt.recipe.lftr", "Liquid Fluorine Thorium Reactor", null, RES_PATH_GUI + "basicmachines/Default", 0, 0, 0, 2, 1, "Start: ", 1, " EU", true, true); + /** * HashMap of Recipes based on their Items */ diff --git a/src/Java/gtPlusPlus/core/block/base/BasicBlock.java b/src/Java/gtPlusPlus/core/block/base/BasicBlock.java index c95f37d9c5..364a849ebc 100644 --- a/src/Java/gtPlusPlus/core/block/base/BasicBlock.java +++ b/src/Java/gtPlusPlus/core/block/base/BasicBlock.java @@ -3,10 +3,12 @@ package gtPlusPlus.core.block.base; import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; -import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; -public class BasicBlock extends Block { +public class BasicBlock extends BlockContainer { public BasicBlock(final String unlocalizedName, final Material material) { super(material); @@ -48,5 +50,11 @@ public class BasicBlock extends Block { } } + + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return null; + } } diff --git a/src/Java/gtPlusPlus/core/block/general/FirePit.java b/src/Java/gtPlusPlus/core/block/general/FirePit.java new file mode 100644 index 0000000000..4dd58df6a4 --- /dev/null +++ b/src/Java/gtPlusPlus/core/block/general/FirePit.java @@ -0,0 +1,225 @@ +package gtPlusPlus.core.block.general; + +import static net.minecraftforge.common.util.ForgeDirection.*; +import gtPlusPlus.core.block.base.BasicBlock; +import gtPlusPlus.core.creative.AddToCreativeTab; +import gtPlusPlus.core.tileentities.general.TileEntityFirepit; + +import java.util.List; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.common.registry.LanguageRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class FirePit extends BasicBlock{ + private static IIcon[] TEXTURE; + public static final int META_ANTIBUILDER = 2; + private int meta; + + @SuppressWarnings("deprecation") + public FirePit() { + super("blockFirePit", Material.wood); + this.setBlockName("blockFirePit"); + this.setCreativeTab(AddToCreativeTab.tabMachines); + this.setHardness(10.0F); + this.setResistance(35.0F); + this.setStepSound(Block.soundTypeWood); + GameRegistry.registerBlock(this, "blockFirePit"); + LanguageRegistry.addName(this, "Fire Pit"); + } + + @Override + public int tickRate(World aParWorld) { + return 30; + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + return new TileEntityFirepit(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister par1IconRegister){ + TEXTURE = new IIcon[] {par1IconRegister.registerIcon(this.getTextureName() + "_layer_0"), par1IconRegister.registerIcon(this.getTextureName() + "_layer_1")}; + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + @Override + public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List){ + par3List.add(new ItemStack(par1, 1, 2)); + } + + @Override + public void updateTick(World par1World, int x, int y, int z, Random par5Random){ + if (!par1World.isRemote){ + //Sets meta. + meta = par1World.getBlockMetadata(x, y, z); + //If Raining, Put out. + if (par1World.isRaining() + && (par1World.canLightningStrikeAt(x, y, z) + || par1World.canLightningStrikeAt(x - 1, y, z) + || par1World.canLightningStrikeAt(x + 1, y, z) + || par1World.canLightningStrikeAt(x, y, z - 1) + || par1World.canLightningStrikeAt(x, y, z + 1))){ + //Fire goes out + par1World.setBlockMetadataWithNotify(x, y, z, 1, 4); + } + if (isNeighborBurning(par1World, x, y, z)){ + //Fire can ignite from a nearby flame source. + par1World.setBlockMetadataWithNotify(x, y, z, 2, 4); + } + } + } + + @Override + public Item getItemDropped(int meta, Random par2Random, int par3){ + switch (meta){ + case 0: + return null; + default: + break; + } + return Item.getItemFromBlock(this); + } + + @Override + public int damageDropped(int meta){ + return meta; + } + + @Override + public boolean isOpaqueCube(){ + return false; + } + + @Override + public int getRenderType(){ + return -1; + } + + @Override + @SideOnly(Side.CLIENT) + public int getRenderBlockPass(){ + return 1; + } + + @Override + public boolean renderAsNormalBlock(){ + return false; + } + + /*@Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World aParWorld, int x, int y, int z){ + return null; + }*/ + + @Override + protected boolean canSilkHarvest(){ + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World p_149734_1_, int p_149734_2_, int p_149734_3_, int p_149734_4_, Random p_149734_5_){ + int l; + float f; + float f1; + float f2; + if (meta == 2) + if (p_149734_5_.nextInt(24) == 0){ + p_149734_1_.playSound((double)((float)p_149734_2_ + 0.5F), (double)((float)p_149734_3_ + 0.5F), (double)((float)p_149734_4_ + 0.5F), "fire.fire", 1.0F + p_149734_5_.nextFloat(), p_149734_5_.nextFloat() * 0.7F + 0.3F, false); + } + if (meta == 2) + if (!World.doesBlockHaveSolidTopSurface(p_149734_1_, p_149734_2_, p_149734_3_ - 1, p_149734_4_) && !Blocks.fire.canCatchFire(p_149734_1_, p_149734_2_, p_149734_3_ - 1, p_149734_4_, UP)){ + if (Blocks.fire.canCatchFire(p_149734_1_, p_149734_2_ - 1, p_149734_3_, p_149734_4_, EAST)){ + for (l = 0; l < 2; ++l){ + f = (float)p_149734_2_ + p_149734_5_.nextFloat() * 0.1F; + f1 = (float)p_149734_3_ + p_149734_5_.nextFloat(); + f2 = (float)p_149734_4_ + p_149734_5_.nextFloat(); + p_149734_1_.spawnParticle("largesmoke", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D); + } + } + if (Blocks.fire.canCatchFire(p_149734_1_, p_149734_2_ + 1, p_149734_3_, p_149734_4_, WEST)){ + for (l = 0; l < 2; ++l){ + f = (float)(p_149734_2_ + 1) - p_149734_5_.nextFloat() * 0.1F; + f1 = (float)p_149734_3_ + p_149734_5_.nextFloat(); + f2 = (float)p_149734_4_ + p_149734_5_.nextFloat(); + p_149734_1_.spawnParticle("largesmoke", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D); + } + } + if (Blocks.fire.canCatchFire(p_149734_1_, p_149734_2_, p_149734_3_, p_149734_4_ - 1, SOUTH)){ + for (l = 0; l < 2; ++l){ + f = (float)p_149734_2_ + p_149734_5_.nextFloat(); + f1 = (float)p_149734_3_ + p_149734_5_.nextFloat(); + f2 = (float)p_149734_4_ + p_149734_5_.nextFloat() * 0.1F; + p_149734_1_.spawnParticle("largesmoke", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D); + } + } + if (Blocks.fire.canCatchFire(p_149734_1_, p_149734_2_, p_149734_3_, p_149734_4_ + 1, NORTH)){ + for (l = 0; l < 2; ++l){ + f = (float)p_149734_2_ + p_149734_5_.nextFloat(); + f1 = (float)p_149734_3_ + p_149734_5_.nextFloat(); + f2 = (float)(p_149734_4_ + 1) - p_149734_5_.nextFloat() * 0.1F; + p_149734_1_.spawnParticle("largesmoke", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D); + } + } + if (Blocks.fire.canCatchFire(p_149734_1_, p_149734_2_, p_149734_3_ + 1, p_149734_4_, DOWN)){ + for (l = 0; l < 2; ++l){ + f = (float)p_149734_2_ + p_149734_5_.nextFloat(); + f1 = (float)(p_149734_3_ + 1) - p_149734_5_.nextFloat() * 0.1F; + f2 = (float)p_149734_4_ + p_149734_5_.nextFloat(); + p_149734_1_.spawnParticle("largesmoke", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D); + } + } + } + else{ + if (meta == 2) + for (l = 0; l < 3; ++l){ + f = (float)p_149734_2_ + p_149734_5_.nextFloat(); + f1 = (float)p_149734_3_ + p_149734_5_.nextFloat() * 0.5F + 0.5F; + f2 = (float)p_149734_4_ + p_149734_5_.nextFloat(); + p_149734_1_.spawnParticle("largesmoke", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D); + } + } + } + + @SideOnly(Side.CLIENT) + public static IIcon getFireIcon(int p_149840_1_){ + return FirePit.TEXTURE[p_149840_1_]; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int p_149691_1_, int p_149691_2_){ + return FirePit.TEXTURE[0]; + } + + private static boolean isNeighborBurning(World world, int x, int y, int z){ + return canCatchFire(world, x + 1, y, z, WEST ) || + canCatchFire(world, x - 1, y, z, EAST ) || + canCatchFire(world, x, y - 1, z, UP ) || + canCatchFire(world, x, y + 1, z, DOWN ) || + canCatchFire(world, x, y, z - 1, SOUTH) || + canCatchFire(world, x, y, z + 1, NORTH); + } + + public static boolean canCatchFire(World world, int x, int y, int z, ForgeDirection face) + { + return world.getBlock(x, y, z).isFireSource(world, x, y, z, face); + } + +} diff --git a/src/Java/gtPlusPlus/core/handler/render/FirepitModel.java b/src/Java/gtPlusPlus/core/handler/render/FirepitModel.java new file mode 100644 index 0000000000..fbc0b22690 --- /dev/null +++ b/src/Java/gtPlusPlus/core/handler/render/FirepitModel.java @@ -0,0 +1,112 @@ +// Date: 20/12/2016 5:51:14 PM +// Template version 1.1 +// Java generated by Techne +// Keep in mind that you still need to fill in some blanks +// - ZeuX + +package gtPlusPlus.core.handler.render; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +public class FirepitModel extends ModelBase +{ + //fields + ModelRenderer Side_A; + ModelRenderer Side_B; + ModelRenderer Side_C; + ModelRenderer Side_D; + ModelRenderer Log1; + ModelRenderer Log2; + ModelRenderer Log3; + ModelRenderer Log4; + + public FirepitModel() + { + textureWidth = 16; + textureHeight = 16; + + Side_A = new ModelRenderer(this, 0, 0); + Side_A.addBox(0F, 0F, 0F, 12, 6, 1); + Side_A.setRotationPoint(-6F, 18F, -6F); + Side_A.setTextureSize(16, 16); + Side_A.mirror = true; + setRotation(Side_A, -0.3148822F, 0F, 0F); + Side_A.mirror = false; + Side_B = new ModelRenderer(this, 0, 0); + Side_B.addBox(0F, 0F, 0F, 12, 6, 1); + Side_B.setRotationPoint(-6F, 18F, 6F); + Side_B.setTextureSize(16, 16); + Side_B.mirror = true; + setRotation(Side_B, -0.3148822F, 1.570796F, 0F); + Side_C = new ModelRenderer(this, 0, 0); + Side_C.addBox(0F, 0F, 0F, 12, 6, 1); + Side_C.setRotationPoint(6F, 18F, 6F); + Side_C.setTextureSize(16, 16); + Side_C.mirror = true; + setRotation(Side_C, -0.3148822F, 3.141593F, 0F); + Side_C.mirror = false; + Side_D = new ModelRenderer(this, 0, 0); + Side_D.addBox(0F, 0F, 0F, 12, 6, 1); + Side_D.setRotationPoint(6F, 18F, -6F); + Side_D.setTextureSize(16, 16); + Side_D.mirror = true; + setRotation(Side_D, -0.3148822F, 4.712389F, 0F); + Log1 = new ModelRenderer(this, 0, 10); + Log1.addBox(0F, 0F, 0F, 14, 2, 2); + Log1.setRotationPoint(4F, 10F, -4F); + Log1.setTextureSize(16, 16); + Log1.mirror = true; + setRotation(Log1, 0F, 0F, 1.570796F); + Log2 = new ModelRenderer(this, -2, 10); + Log2.addBox(0F, 0F, 0F, 14, 2, 2); + Log2.setRotationPoint(-4F, 10F, -4F); + Log2.setTextureSize(16, 16); + Log2.mirror = true; + setRotation(Log2, 1.570796F, 0F, 1.570796F); + Log2.mirror = false; + Log3 = new ModelRenderer(this, 0, 10); + Log3.addBox(0F, 0F, 0F, 14, 2, 2); + Log3.setRotationPoint(-4F, 10F, 4F); + Log3.setTextureSize(16, 16); + Log3.mirror = true; + setRotation(Log3, 3.141593F, 0F, 1.570796F); + Log4 = new ModelRenderer(this, -2, 10); + Log4.addBox(0F, 0F, 0F, 14, 2, 2); + Log4.setRotationPoint(4F, 10F, 4F); + Log4.setTextureSize(16, 16); + Log4.mirror = true; + setRotation(Log4, 4.712389F, 0F, 1.570796F); + Log4.mirror = false; + } + + @Override +public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Side_A.render(f5); + Side_B.render(f5); + Side_C.render(f5); + Side_D.render(f5); + Log1.render(f5); + Log2.render(f5); + Log3.render(f5); + Log4.render(f5); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override +public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + } + +} diff --git a/src/Java/gtPlusPlus/core/handler/render/FirepitRender.java b/src/Java/gtPlusPlus/core/handler/render/FirepitRender.java new file mode 100644 index 0000000000..16ad016b97 --- /dev/null +++ b/src/Java/gtPlusPlus/core/handler/render/FirepitRender.java @@ -0,0 +1,54 @@ +package gtPlusPlus.core.handler.render; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +import org.lwjgl.opengl.GL11; +public class FirepitRender extends TileEntitySpecialRenderer{ + ResourceLocation texture = new ResourceLocation("miscutils" + ":"+ "textures/blocks/FirePit/mossyFirepit.png"); + + private FirepitModel model; + + public FirepitRender(){ + this.model = new FirepitModel(); + } + + private void adjustRotatePivotViaMeta(World world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + GL11.glPushMatrix(); + GL11.glRotatef(meta * (-90), 0.0F, 0.0F, 1.0F); + GL11.glPopMatrix(); + } + + @Override + public void renderTileEntityAt(TileEntity entity, double x, double y, double z, float i) { + GL11.glPushMatrix(); + GL11.glTranslatef((float)x + 0.1F, (float)y + 1.0F, (float)z + 0.5F); + GL11.glRotatef(180, 0F, 0F, 1F); + + this.bindTexture(texture); + GL11.glPushMatrix(); + this.model.render((Entity)null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + } + + //Set the lighting stuff, so it changes it's brightness properly. + private void adjustLightFixture(World world, int i, int j, int k, Block block) { + Tessellator tess = Tessellator.instance; + //float brightness = block.getBlockBrightness(world, i, j, k); + //As of MC 1.7+ block.getBlockBrightness() has become block.getLightValue(): + float brightness = block.getLightValue(world, i, j, k); + int skyLight = world.getLightBrightnessForSkyBlocks(i, j, k, 0); + int modulousModifier = skyLight % 65536; + int divModifier = skyLight / 65536; + tess.setColorOpaque_F(brightness, brightness, brightness); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) modulousModifier, divModifier); + } +} diff --git a/src/Java/gtPlusPlus/core/item/general/ItemBasicFirestarter.java b/src/Java/gtPlusPlus/core/item/general/ItemBasicFirestarter.java index 136a26d4d0..b785c57869 100644 --- a/src/Java/gtPlusPlus/core/item/general/ItemBasicFirestarter.java +++ b/src/Java/gtPlusPlus/core/item/general/ItemBasicFirestarter.java @@ -45,6 +45,7 @@ public class ItemBasicFirestarter extends CoreItem { } if (thisWorld.getBlock(blockX, blockY, blockZ) instanceof FirePit){ thisWorld.setBlockMetadataWithNotify(blockX, blockY, blockZ, 2, 4); + PlayerUtils.messagePlayer(thisPlayer, "You light the fire pit. "); } if (thisWorld.isAirBlock(blockX, blockY, blockZ)) { diff --git a/src/Java/gtPlusPlus/core/proxy/ClientProxy.java b/src/Java/gtPlusPlus/core/proxy/ClientProxy.java index b1d66fc773..26a2aa500a 100644 --- a/src/Java/gtPlusPlus/core/proxy/ClientProxy.java +++ b/src/Java/gtPlusPlus/core/proxy/ClientProxy.java @@ -2,10 +2,13 @@ package gtPlusPlus.core.proxy; import gtPlusPlus.GTplusplus; import gtPlusPlus.core.common.CommonProxy; +import gtPlusPlus.core.handler.render.FirepitRender; +import gtPlusPlus.core.tileentities.general.TileEntityFirepit; import gtPlusPlus.core.util.particles.EntityParticleFXMysterious; import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityFX; import net.minecraft.entity.Entity; +import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.event.*; @@ -40,6 +43,8 @@ public class ClientProxy extends CommonProxy{ //ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBloodSteelChest.class, new BloodSteelChestRenderer()); //MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.tutChest), new ItemRenderBloodSteelChest()); + + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFirepit.class, new FirepitRender()); } @Override diff --git a/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java b/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java index a228021c82..1f8b790c37 100644 --- a/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java +++ b/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java @@ -1,5 +1,6 @@ package gtPlusPlus.core.tileentities; +import gtPlusPlus.core.tileentities.general.TileEntityFirepit; import gtPlusPlus.core.tileentities.machines.TileEntityWorkbench; import gtPlusPlus.core.tileentities.machines.TileEntityWorkbenchAdvanced; import gtPlusPlus.core.util.Utils; @@ -7,16 +8,18 @@ import cpw.mods.fml.common.registry.GameRegistry; public class ModTileEntities { - + public static void init(){ Utils.LOG_INFO("Registering Tile Entities."); //GameRegistry.registerTileEntity(TileEntityReverter.class, "TE_blockGriefSaver"); //GameRegistry.registerTileEntity(TileEntityReverter.class, "Tower Reverter"); //GameRegistry.registerTileEntity(TileEntityNHG.class, "NuclearFueledHeliumGenerator"); //GameRegistry.registerTileEntity(TileEntityCharger.class, "TE_Charger"); - // GameRegistry.registerTileEntity(TileEntityHeliumGenerator.class, "Helium"); + // GameRegistry.registerTileEntity(TileEntityHeliumGenerator.class, "Helium"); GameRegistry.registerTileEntity(TileEntityWorkbench.class, "TileWorkbench"); GameRegistry.registerTileEntity(TileEntityWorkbenchAdvanced.class, "TileWorkbenchAdvanced"); + GameRegistry.registerTileEntity(TileEntityFirepit.class, "TileFirePit"); + } - + } diff --git a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityFirepit.java b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityFirepit.java new file mode 100644 index 0000000000..0f2cd3390e --- /dev/null +++ b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityFirepit.java @@ -0,0 +1,39 @@ +package gtPlusPlus.core.tileentities.general; + +import java.util.UUID; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; + +public class TileEntityFirepit extends TileEntity{ + + private UUID ownerUUID; + + public UUID getOwnerUUID() { + return ownerUUID; + } + + public void setOwnerUUID(UUID ownerUUID) { + this.ownerUUID = ownerUUID; + markDirty(); + } + + @Override + public void writeToNBT(NBTTagCompound tagCompound) { + super.writeToNBT(tagCompound); + + UUID ownerUUID = getOwnerUUID(); + if (ownerUUID != null){ + tagCompound.setLong("OwnerUUIDMost", ownerUUID.getMostSignificantBits()); + tagCompound.setLong("OwnerUUIDLeast", ownerUUID.getLeastSignificantBits()); + } + } + + @Override + public void readFromNBT(NBTTagCompound tagCompound) { + super.readFromNBT(tagCompound); + + setOwnerUUID(new UUID(tagCompound.getLong("OwnerUUIDMost"), tagCompound.getLong("OwnerUUIDLeast"))); + } + +} |