Jump to content

Jdb100

Members
  • Posts

    223
  • Joined

  • Last visited

Everything posted by Jdb100

  1. I have been looking into making a command to let you add a spell to your wand before i start making my infuser block to do it but i don't know how to make i started doing it like this
  2. Ok before anything i want to say i know there is rotation pitch and yaw ok anyways what i am trying to do is get the players rotation and make the player move 10 blocks in that direction so basically how do you get a players rotation and move them in that direction
  3. thanks that worked i can't believe i didn't think of that.
  4. i have been working on making a custom api for my mod to add spells to the game, they are being added like enchantments so everyone can make custom spells. I am pretty close from what i think but i am stuck because i can't get the size of a stack. my first try Error: needs me to change getItemStack to static //how enchantments do it but has it in the Item class instead public boolean isItemWand(ItemStack par1ItemStack) { return Item.getItemStackLimit() == 1; } second try Error: needs me to change getItemStack to static public boolean isItemWand(ItemStack par1ItemStack) { if(Item.getItemStackLimit() == 1) { return true; } } third try Error: needs me to change the visiblity to public public boolean isItemWand(ItemStack par1ItemStack) { if(Item.maxStackSize == 1) { return true; } }
  5. Start simple then move on to the hard stuff and there is tons of documentation you just need to know where to look
  6. so i got the structure generation but then this happened house code(big): generater:
  7. you are registering your recipe before you block just move the recipes under the block registry and item registry
  8. just do it like this GameRegistry.addRecipe(new ItemStack(tes_BaseMod.moonstone, 1), new Object[]{ " X ", " X ", "XXX", 'X', Block.blockClay, 'P', Item.paper }); and this GameRegistry.addSmelting(Block.bedrock.blockID, new ItemStack(this.moonstone), 100);
  9. Sorry, I don't know try looking in the default class that is how i made mine
  10. when i click on the block with the damage thing it crashes my game at first i thought it was because i forgot to put a enum on it but that still didn't work also the block can't be pillared with because it is checking for updates
  11. I made my custom stone and put it in the chunk provider of my dimension but it doesn't generate the stone chunk provider
  12. Thanks everyone for trying to help this is what worked public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer entityplayer, int par6, float par7, float par8, float par9) { Item equipped = entityplayer.getCurrentEquippedItem() != null ? entityplayer.getCurrentEquippedItem().getItem() : null; if (equipped instanceof Wand1) { world.setBlock(i , j , k, ModBase.nexussoil.blockID); } return true; } EDIT: I am probably pretty stupid but is there anyway to damage the item from the block class because i can't get the item one to work.
  13. Here is an easier way Loading class
  14. Just make a class like this as the structure then just load the file
  15. I tried that again but it doesn't work i also tried it with @Override. sorry for the hassle
  16. That is what i am using right now for it.
  17. Thanks for trying to help but it didn't fix the issue
  18. I made some code to take a block and replace it with a different one but it doesn't replace the block it puts the block on the side i clicked Code
  19. I got the dimension working and then the custom biome but when i connect them together i get an error Error Log 2013-01-08 16:05:17 [iNFO] [ForgeModLoader] Forge Mod Loader version 4.6.12.511 for Minecraft 1.4.6 loading 2013-01-08 16:05:26 [iNFO] [sTDOUT] 27 achievements 2013-01-08 16:05:27 [iNFO] [sTDOUT] 210 recipes 2013-01-08 16:05:27 [iNFO] [sTDOUT] Setting user: Player424, - 2013-01-08 16:05:27 [iNFO] [sTDERR] Client asked for parameter: server 2013-01-08 16:05:27 [iNFO] [sTDOUT] LWJGL Version: 2.4.2 2013-01-08 16:05:29 [iNFO] [ForgeModLoader] Attempting early MinecraftForge initialization 2013-01-08 16:05:29 [iNFO] [sTDOUT] MinecraftForge v6.5.0.467 Initialized 2013-01-08 16:05:29 [iNFO] [ForgeModLoader] MinecraftForge v6.5.0.467 Initialized 2013-01-08 16:05:30 [iNFO] [sTDOUT] Replaced 84 ore recipies 2013-01-08 16:05:30 [iNFO] [ForgeModLoader] Completed early MinecraftForge initialization 2013-01-08 16:05:30 [iNFO] [ForgeModLoader] Searching C:\Users\Joe\Desktop\my mods\Youtube\forge\mcp\jars\mods for mods 2013-01-08 16:05:37 [iNFO] [ForgeModLoader] Forge Mod Loader has identified 4 mods to load 2013-01-08 16:05:39 [iNFO] [ForgeModLoader] Configured a dormant chunk cache size of 0 2013-01-08 16:05:41 [iNFO] [ForgeModLoader] Forge Mod Loader has successfully loaded 4 mods 2013-01-08 16:06:18 [iNFO] [sTDOUT] Scanning folders... 2013-01-08 16:06:18 [iNFO] [sTDOUT] Total conversion count is 0 2013-01-08 16:06:20 [iNFO] [ForgeModLoader] Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@36d5ee2) 2013-01-08 16:06:20 [iNFO] [sTDOUT] Unable to find spawn biome 2013-01-08 16:06:20 [iNFO] [ForgeModLoader] Loading dimension 2 (New World) (net.minecraft.server.integrated.IntegratedServer@36d5ee2) 2013-01-08 16:06:21 [iNFO] [ForgeModLoader] Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@36d5ee2) 2013-01-08 16:06:21 [iNFO] [ForgeModLoader] Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@36d5ee2) 2013-01-08 16:08:20 [iNFO] [sTDERR] net.minecraft.util.ReportedException: Exception getting block type in world 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:64) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:108) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:702) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:598) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:123) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:497) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16) 2013-01-08 16:08:20 [iNFO] [sTDERR] Caused by: java.lang.NullPointerException 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.World.getBlockMaterial(World.java:616) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.gen.feature.WorldGenDungeons.generate(WorldGenDungeons.java:33) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.gen.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:571) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.gen.ChunkProviderServer.populate(ChunkProviderServer.java:258) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.chunk.Chunk.populateChunk(Chunk.java:1258) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:153) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.gen.ChunkProviderServer.provideChunk(ChunkProviderServer.java:166) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.World.getChunkFromChunkCoords(World.java:524) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.World.getBlockId(World.java:407) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.modbase.NexusTeleporter.placeInExistingPortal(NexusTeleporter.java:109) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.modbase.NexusTeleporter.placeInPortal(NexusTeleporter.java:38) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.server.management.ServerConfigurationManager.transferEntityToWorld(ServerConfigurationManager.java:494) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.server.management.ServerConfigurationManager.transferPlayerToDimension(ServerConfigurationManager.java:419) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.modbase.BlockNexusPortal.onEntityCollidedWithBlock(BlockNexusPortal.java:253) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.entity.Entity.doBlockCollisions(Entity.java:1008) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.entity.Entity.moveEntity(Entity.java:952) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.network.NetServerHandler.handleFlying(NetServerHandler.java:347) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.network.packet.Packet10Flying.processPacket(Packet10Flying.java:51) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:80) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:136) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:57) 2013-01-08 16:08:20 [iNFO] [sTDERR] ... 6 more 2013-01-08 16:08:24 [iNFO] [ForgeModLoader] Unloading dimension 0 2013-01-08 16:08:24 [iNFO] [ForgeModLoader] Unloading dimension -1 2013-01-08 16:08:24 [iNFO] [ForgeModLoader] Unloading dimension 1 2013-01-08 16:08:24 [iNFO] [ForgeModLoader] Unloading dimension 2 2013-01-08 16:08:35 [iNFO] [sTDOUT] Stopping! 2013-01-08 16:09:29 [iNFO] [sTDERR] Someone is closing me! Teleporter package net.modbase; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.src.*; import net.minecraft.util.Direction; import net.minecraft.util.LongHashMap; import net.minecraft.util.MathHelper; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.PortalPosition; import net.minecraft.world.Teleporter; import net.minecraft.world.WorldServer; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Random; public class NexusTeleporter extends Teleporter { private final WorldServer field_85192_a; private final Random random; private final LongHashMap field_85191_c = new LongHashMap(); private final List field_85190_d = new ArrayList(); public NexusTeleporter(WorldServer par1WorldServer) { super(par1WorldServer); this.field_85192_a = par1WorldServer; this.random = new Random(par1WorldServer.getSeed()); } @Override public void placeInPortal(Entity par1Entity, double par2, double par4, double par6, float par8) { if (this.field_85192_a.provider.dimensionId != 1) { if (!this.placeInExistingPortal(par1Entity, par2, par4, par6, par8)) { this.func_85188_a(par1Entity); this.placeInExistingPortal(par1Entity, par2, par4, par6, par8); } } else { int var9 = MathHelper.floor_double(par1Entity.posX); int var10 = MathHelper.floor_double(par1Entity.posY) - 1; int var11 = MathHelper.floor_double(par1Entity.posZ); byte var12 = 1; byte var13 = 0; for (int var14 = -2; var14 <= 2; ++var14) { for (int var15 = -2; var15 <= 2; ++var15) { for (int var16 = -1; var16 < 3; ++var16) { int var17 = var9 + var15 * var12 + var14 * var13; int var18 = var10 + var16; int var19 = var11 + var15 * var13 - var14 * var12; boolean var20 = var16 < 0; this.field_85192_a.setBlockWithNotify(var17, var18, var19, var20 ? Block.glowStone.blockID : 0); } } } par1Entity.setLocationAndAngles((double)var9, (double)var10, (double)var11, par1Entity.rotationYaw, 0.0F); par1Entity.motionX = par1Entity.motionY = par1Entity.motionZ = 0.0D; } } @Override public boolean placeInExistingPortal(Entity par1Entity, double par2, double par4, double par6, float par8) { short var9 = 128; double var10 = -1.0D; int var12 = 0; int var13 = 0; int var14 = 0; int var15 = MathHelper.floor_double(par1Entity.posX); int var16 = MathHelper.floor_double(par1Entity.posZ); long var17 = ChunkCoordIntPair.chunkXZ2Int(var15, var16); boolean var19 = true; double var27; int var48; if (this.field_85191_c.containsItem(var17)) { PortalPosition var20 = (PortalPosition)this.field_85191_c.getValueByKey(var17); var10 = 0.0D; var12 = var20.posX; var13 = var20.posY; var14 = var20.posZ; var20.field_85087_d = this.field_85192_a.getTotalWorldTime(); var19 = false; } else { for (var48 = var15 - var9; var48 <= var15 + var9; ++var48) { double var21 = (double)var48 + 0.5D - par1Entity.posX; for (int var23 = var16 - var9; var23 <= var16 + var9; ++var23) { double var24 = (double)var23 + 0.5D - par1Entity.posZ; for (int var26 = this.field_85192_a.getActualHeight() - 1; var26 >= 0; --var26) { if (this.field_85192_a.getBlockId(var48, var26, var23) == ModBase.nexusportal.blockID) { while (this.field_85192_a.getBlockId(var48, var26 - 1, var23) == ModBase.nexusportal.blockID) { --var26; } var27 = (double)var26 + 0.5D - par1Entity.posY; double var29 = var21 * var21 + var27 * var27 + var24 * var24; if (var10 < 0.0D || var29 < var10) { var10 = var29; var12 = var48; var13 = var26; var14 = var23; } } } } } } if (var10 >= 0.0D) { if (var19) { this.field_85191_c.add(var17, new PortalPosition(this, var12, var13, var14, this.field_85192_a.getTotalWorldTime())); this.field_85190_d.add(Long.valueOf(var17)); } double var49 = (double)var12 + 0.5D; double var25 = (double)var13 + 0.5D; var27 = (double)var14 + 0.5D; int var50 = -1; if (this.field_85192_a.getBlockId(var12 - 1, var13, var14) == ModBase.nexusportal.blockID) { var50 = 2; } if (this.field_85192_a.getBlockId(var12 + 1, var13, var14) == ModBase.nexusportal.blockID) { var50 = 0; } if (this.field_85192_a.getBlockId(var12, var13, var14 - 1) == ModBase.nexusportal.blockID) { var50 = 3; } if (this.field_85192_a.getBlockId(var12, var13, var14 + 1) == ModBase.nexusportal.blockID) { var50 = 1; } int var30 = par1Entity.func_82148_at(); if (var50 > -1) { int var31 = Direction.field_71578_g[var50]; int var32 = Direction.offsetX[var50]; int var33 = Direction.offsetZ[var50]; int var34 = Direction.offsetX[var31]; int var35 = Direction.offsetZ[var31]; boolean var36 = !this.field_85192_a.isAirBlock(var12 + var32 + var34, var13, var14 + var33 + var35) || !this.field_85192_a.isAirBlock(var12 + var32 + var34, var13 + 1, var14 + var33 + var35); boolean var37 = !this.field_85192_a.isAirBlock(var12 + var32, var13, var14 + var33) || !this.field_85192_a.isAirBlock(var12 + var32, var13 + 1, var14 + var33); if (var36 && var37) { var50 = Direction.footInvisibleFaceRemap[var50]; var31 = Direction.footInvisibleFaceRemap[var31]; var32 = Direction.offsetX[var50]; var33 = Direction.offsetZ[var50]; var34 = Direction.offsetX[var31]; var35 = Direction.offsetZ[var31]; var48 = var12 - var34; var49 -= (double)var34; int var22 = var14 - var35; var27 -= (double)var35; var36 = !this.field_85192_a.isAirBlock(var48 + var32 + var34, var13, var22 + var33 + var35) || !this.field_85192_a.isAirBlock(var48 + var32 + var34, var13 + 1, var22 + var33 + var35); var37 = !this.field_85192_a.isAirBlock(var48 + var32, var13, var22 + var33) || !this.field_85192_a.isAirBlock(var48 + var32, var13 + 1, var22 + var33); } float var38 = 0.5F; float var39 = 0.5F; if (!var36 && var37) { var38 = 1.0F; } else if (var36 && !var37) { var38 = 0.0F; } else if (var36 && var37) { var39 = 0.0F; } var49 += (double)((float)var34 * var38 + var39 * (float)var32); var27 += (double)((float)var35 * var38 + var39 * (float)var33); float var40 = 0.0F; float var41 = 0.0F; float var42 = 0.0F; float var43 = 0.0F; if (var50 == var30) { var40 = 1.0F; var41 = 1.0F; } else if (var50 == Direction.footInvisibleFaceRemap[var30]) { var40 = -1.0F; var41 = -1.0F; } else if (var50 == Direction.enderEyeMetaToDirection[var30]) { var42 = 1.0F; var43 = -1.0F; } else { var42 = -1.0F; var43 = 1.0F; } double var44 = par1Entity.motionX; double var46 = par1Entity.motionZ; par1Entity.motionX = var44 * (double)var40 + var46 * (double)var43; par1Entity.motionZ = var44 * (double)var42 + var46 * (double)var41; par1Entity.rotationYaw = par8 - (float)(var30 * 90) + (float)(var50 * 90); } else { par1Entity.motionX = par1Entity.motionY = par1Entity.motionZ = 0.0D; } par1Entity.setLocationAndAngles(var49 + 3, var25, var27 + 3, par1Entity.rotationYaw, par1Entity.rotationPitch); return true; } else { return false; } } @Override public boolean func_85188_a(Entity par1Entity) { byte var2 = 16; double var3 = -1.0D; int var5 = MathHelper.floor_double(par1Entity.posX); int var6 = MathHelper.floor_double(par1Entity.posY); int var7 = MathHelper.floor_double(par1Entity.posZ); int var8 = var5; int var9 = var6; int var10 = var7; int var11 = 0; int var12 = this.random.nextInt(4); int var13; double var14; double var17; int var16; int var19; int var21; int var20; int var23; int var22; int var25; int var24; int var27; int var26; double var31; double var32; for (var13 = var5 - var2; var13 <= var5 + var2; ++var13) { var14 = (double)var13 + 0.5D - par1Entity.posX; for (var16 = var7 - var2; var16 <= var7 + var2; ++var16) { var17 = (double)var16 + 0.5D - par1Entity.posZ; label274: for (var19 = this.field_85192_a.getActualHeight() - 1; var19 >= 0; --var19) { if (this.field_85192_a.isAirBlock(var13, var19, var16)) { while (var19 > 0 && this.field_85192_a.isAirBlock(var13, var19 - 1, var16)) { --var19; } for (var20 = var12; var20 < var12 + 4; ++var20) { var21 = var20 % 2; var22 = 1 - var21; if (var20 % 4 >= 2) { var21 = -var21; var22 = -var22; } for (var23 = 0; var23 < 3; ++var23) { for (var24 = 0; var24 < 4; ++var24) { for (var25 = -1; var25 < 4; ++var25) { var26 = var13 + (var24 - 1) * var21 + var23 * var22; var27 = var19 + var25; int var28 = var16 + (var24 - 1) * var22 - var23 * var21; if (var25 < 0 && !this.field_85192_a.getBlockMaterial(var26, var27, var28).isSolid() || var25 >= 0 && !this.field_85192_a.isAirBlock(var26, var27, var28)) { continue label274; } } } } var32 = (double)var19 + 0.5D - par1Entity.posY; var31 = var14 * var14 + var32 * var32 + var17 * var17; if (var3 < 0.0D || var31 < var3) { var3 = var31; var8 = var13; var9 = var19; var10 = var16; var11 = var20 % 4; } } } } } } if (var3 < 0.0D) { for (var13 = var5 - var2; var13 <= var5 + var2; ++var13) { var14 = (double)var13 + 0.5D - par1Entity.posX; for (var16 = var7 - var2; var16 <= var7 + var2; ++var16) { var17 = (double)var16 + 0.5D - par1Entity.posZ; label222: for (var19 = this.field_85192_a.getActualHeight() - 1; var19 >= 0; --var19) { if (this.field_85192_a.isAirBlock(var13, var19, var16)) { while (var19 > 0 && this.field_85192_a.isAirBlock(var13, var19 - 1, var16)) { --var19; } for (var20 = var12; var20 < var12 + 2; ++var20) { var21 = var20 % 2; var22 = 1 - var21; for (var23 = 0; var23 < 4; ++var23) { for (var24 = -1; var24 < 4; ++var24) { var25 = var13 + (var23 - 1) * var21; var26 = var19 + var24; var27 = var16 + (var23 - 1) * var22; if (var24 < 0 && !this.field_85192_a.getBlockMaterial(var25, var26, var27).isSolid() || var24 >= 0 && !this.field_85192_a.isAirBlock(var25, var26, var27)) { continue label222; } } } var32 = (double)var19 + 0.5D - par1Entity.posY; var31 = var14 * var14 + var32 * var32 + var17 * var17; if (var3 < 0.0D || var31 < var3) { var3 = var31; var8 = var13; var9 = var19; var10 = var16; var11 = var20 % 2; } } } } } } } int var29 = var8; int var15 = var9; var16 = var10; int var30 = var11 % 2; int var18 = 1 - var30; if (var11 % 4 >= 2) { var30 = -var30; var18 = -var18; } boolean var33; if (var3 < 0.0D) { if (var9 < 70) { var9 = 70; } if (var9 > this.field_85192_a.getActualHeight() - 10) { var9 = this.field_85192_a.getActualHeight() - 10; } var15 = var9; for (var19 = -1; var19 <= 1; ++var19) { for (var20 = 1; var20 < 3; ++var20) { for (var21 = -1; var21 < 3; ++var21) { var22 = var29 + (var20 - 1) * var30 + var19 * var18; var23 = var15 + var21; var24 = var16 + (var20 - 1) * var18 - var19 * var30; var33 = var21 < 0; this.field_85192_a.setBlockWithNotify(var22, var23, var24, var33 ? Block.glowStone.blockID: 0); } } } } for (var19 = 0; var19 < 4; ++var19) { this.field_85192_a.editingBlocks = true; for (var20 = 0; var20 < 4; ++var20) { for (var21 = -1; var21 < 4; ++var21) { var22 = var29 + (var20 - 1) * var30; var23 = var15 + var21; var24 = var16 + (var20 - 1) * var18; var33 = var20 == 0 || var20 == 3 || var21 == -1 || var21 == 3; this.field_85192_a.setBlockWithNotify(var22, var23, var24, var33 ? Block.glowStone.blockID : ModBase.nexusportal.blockID); } } this.field_85192_a.editingBlocks = false; for (var20 = 0; var20 < 4; ++var20) { for (var21 = -1; var21 < 4; ++var21) { var22 = var29 + (var20 - 1) * var30; var23 = var15 + var21; var24 = var16 + (var20 - 1) * var18; this.field_85192_a.notifyBlocksOfNeighborChange(var22, var23, var24, this.field_85192_a.getBlockId(var22, var23, var24)); } } } return true; } @Override public void func_85189_a(long par1) { if (par1 % 100L == 0L) { Iterator var3 = this.field_85190_d.iterator(); long var4 = par1 - 600L; while (var3.hasNext()) { Long var6 = (Long)var3.next(); PortalPosition var7 = (PortalPosition)this.field_85191_c.getValueByKey(var6.longValue()); if (var7 == null || var7.field_85087_d < var4) { var3.remove(); this.field_85191_c.remove(var6.longValue()); } } } } } Portal Block [package net.modbase; import java.util.Random; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.BlockBreakable; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemMonsterPlacer; import net.minecraft.server.MinecraftServer; import net.minecraft.src.*; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockNexusPortal extends BlockBreakable { public BlockNexusPortal(int par1, int par2) { super(par1, par2, Material.portal, false); this.setTickRandomly(true); } /** * Ticks the block if it's been scheduled */ public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) { super.updateTick(par1World, par2, par3, par4, par5Random); if (par1World.provider.isSurfaceWorld() && par5Random.nextInt(2000) < par1World.difficultySetting) { int var6; for (var6 = par3; !par1World.doesBlockHaveSolidTopSurface(par2, var6, par4) && var6 > 0; --var6) { ; } if (var6 > 0 && !par1World.isBlockNormalCube(par2, var6 + 1, par4)) { ItemMonsterPlacer.spawnCreature(par1World, 57, (double)par2 + 0.5D, (double)var6 + 1.1D, (double)par4 + 0.5D); } } } /** * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been * cleared to be reused) */ public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) { return null; } /** * Updates the blocks bounds based on its current state. Args: world, x, y, z */ public void setBlockBoundsBasedOnState(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) { float var5; float var6; if (par1IBlockAccess.getBlockId(par2 - 1, par3, par4) != this.blockID && par1IBlockAccess.getBlockId(par2 + 1, par3, par4) != this.blockID) { var5 = 0.125F; var6 = 0.5F; this.setBlockBounds(0.5F - var5, 0.0F, 0.5F - var6, 0.5F + var5, 1.0F, 0.5F + var6); } else { var5 = 0.5F; var6 = 0.125F; this.setBlockBounds(0.5F - var5, 0.0F, 0.5F - var6, 0.5F + var5, 1.0F, 0.5F + var6); } } /** * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. */ public boolean isOpaqueCube() { return false; } /** * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) */ public boolean renderAsNormalBlock() { return false; } /** * Checks to see if this location is valid to create a portal and will return True if it does. Args: world, x, y, z */ public static boolean tryToCreatePortal(World par1World, int par2, int par3, int par4) { byte var5 = 0; byte var6 = 0; if (par1World.getBlockId(par2 - 1, par3, par4) == Block.glowStone.blockID || par1World.getBlockId(par2 + 1, par3, par4) == Block.glowStone.blockID ) { var5 = 1; } if (par1World.getBlockId(par2, par3, par4 - 1) == Block.glowStone.blockID || par1World.getBlockId(par2, par3, par4 + 1) == Block.glowStone.blockID ) { var6 = 1; } if (var5 == var6) { return false; } else { if (par1World.getBlockId(par2 - var5, par3, par4 - var6) == 0) { par2 -= var5; par4 -= var6; } int var7; int var8; for (var7 = -1; var7 <= 2; ++var7) { for (var8 = -1; var8 <= 3; ++var8) { boolean var9 = var7 == -1 || var7 == 2 || var8 == -1 || var8 == 3; if (var7 != -1 && var7 != 2 || var8 != -1 && var8 != 3) { int var10 = par1World.getBlockId(par2 + var5 * var7, par3 + var8, par4 + var6 * var7); if (var9) { if (var10 != Block.glowStone.blockID ) { return false; } } else if (var10 != 0 && var10 != Block.stone.blockID) { return false; } } } } par1World.editingBlocks = true; for (var7 = 0; var7 < 2; ++var7) { for (var8 = 0; var8 < 3; ++var8) { par1World.setBlockWithNotify(par2 + var5 * var7, par3 + var8, par4 + var6 * var7, ModBase.nexusportal.blockID); } } par1World.editingBlocks = false; return true; } } /** * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are * their own) Args: x, y, z, neighbor blockID */ public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) { byte var6 = 0; byte var7 = 1; if (par1World.getBlockId(par2 - 1, par3, par4) == this.blockID || par1World.getBlockId(par2 + 1, par3, par4) == this.blockID) { var6 = 1; var7 = 0; } int var8; for (var8 = par3; par1World.getBlockId(par2, var8 - 1, par4) == this.blockID; --var8) { ; } if (par1World.getBlockId(par2, var8 - 1, par4) != Block.glowStone.blockID ) { par1World.setBlockWithNotify(par2, par3, par4, 0); } else { int var9; for (var9 = 1; var9 < 4 && par1World.getBlockId(par2, var8 + var9, par4) == this.blockID; ++var9) { ; } if (var9 == 3 && par1World.getBlockId(par2, var8 + var9, par4) == Block.glowStone.blockID ) { boolean var10 = par1World.getBlockId(par2 - 1, par3, par4) == this.blockID || par1World.getBlockId(par2 + 1, par3, par4) == this.blockID; boolean var11 = par1World.getBlockId(par2, par3, par4 - 1) == this.blockID || par1World.getBlockId(par2, par3, par4 + 1) == this.blockID; if (var10 && var11) { par1World.setBlockWithNotify(par2, par3, par4, 0); } else { if ((par1World.getBlockId(par2 + var6, par3, par4 + var7) != Block.glowStone.blockID || par1World.getBlockId(par2 - var6, par3, par4 - var7) != this.blockID) && (par1World.getBlockId(par2 - var6, par3, par4 - var7) != Block.glowStone.blockID || par1World.getBlockId(par2 + var6, par3, par4 + var7) != this.blockID)) { par1World.setBlockWithNotify(par2, par3, par4, 0); } } } else { par1World.setBlockWithNotify(par2, par3, par4, 0); } } } /** * Returns the quantity of items to drop on block destruction. */ public int quantityDropped(Random par1Random) { return 0; } /** * Triggered whenever an entity collides with this block (enters into the block). Args: world, x, y, z, entity */ public void onEntityCollidedWithBlock(World world, int i, int j, int k, Entity entity) { if (entity.ridingEntity == null && entity.riddenByEntity == null && entity instanceof EntityPlayerMP) { if (entity instanceof EntityPlayerMP) { EntityPlayerMP thePlayer = (EntityPlayerMP) entity; if (entity.dimension != 2) { thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, 2 , new NexusTeleporter(thePlayer.mcServer.worldServerForDimension(2))); } else { thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, 0, new NexusTeleporter(thePlayer.mcServer.worldServerForDimension(0))); } } } } @SideOnly(Side.CLIENT) /** * Returns true if the given side of this block type should be rendered, if the adjacent block is at the given * coordinates. Args: blockAccess, x, y, z, side */ public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) { if (par1IBlockAccess.getBlockId(par2, par3, par4) == this.blockID) { return false; } else { boolean var6 = par1IBlockAccess.getBlockId(par2 - 1, par3, par4) == this.blockID && par1IBlockAccess.getBlockId(par2 - 2, par3, par4) != this.blockID; boolean var7 = par1IBlockAccess.getBlockId(par2 + 1, par3, par4) == this.blockID && par1IBlockAccess.getBlockId(par2 + 2, par3, par4) != this.blockID; boolean var8 = par1IBlockAccess.getBlockId(par2, par3, par4 - 1) == this.blockID && par1IBlockAccess.getBlockId(par2, par3, par4 - 2) != this.blockID; boolean var9 = par1IBlockAccess.getBlockId(par2, par3, par4 + 1) == this.blockID && par1IBlockAccess.getBlockId(par2, par3, par4 + 2) != this.blockID; boolean var10 = var6 || var7; boolean var11 = var8 || var9; return var10 && par5 == 4 ? true : (var10 && par5 == 5 ? true : (var11 && par5 == 2 ? true : var11 && par5 == 3)); } } @SideOnly(Side.CLIENT) /** * Returns which pass should this block be rendered on. 0 for solids and 1 for alpha */ public int getRenderBlockPass() { return 1; } @SideOnly(Side.CLIENT) /** * A randomly called display update to be able to add particles or other items for display */ public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) { if (par5Random.nextInt(100) == 0) { par1World.playSound((double)par2 + 0.5D, (double)par3 + 0.5D, (double)par4 + 0.5D, "portal.portal", 0.5F, par5Random.nextFloat() * 0.4F + 0.8F, false); } for (int var6 = 0; var6 < 4; ++var6) { double var7 = (double)((float)par2 + par5Random.nextFloat()); double var9 = (double)((float)par3 + par5Random.nextFloat()); double var11 = (double)((float)par4 + par5Random.nextFloat()); double var13 = 0.0D; double var15 = 0.0D; double var17 = 0.0D; int var19 = par5Random.nextInt(2) * 2 - 1; var13 = ((double)par5Random.nextFloat() - 0.5D) * 0.5D; var15 = ((double)par5Random.nextFloat() - 0.5D) * 0.5D; var17 = ((double)par5Random.nextFloat() - 0.5D) * 0.5D; if (par1World.getBlockId(par2 - 1, par3, par4) != this.blockID && par1World.getBlockId(par2 + 1, par3, par4) != this.blockID) { var7 = (double)par2 + 0.5D + 0.25D * (double)var19; var13 = (double)(par5Random.nextFloat() * 2.0F * (float)var19); } else { var11 = (double)par4 + 0.5D + 0.25D * (double)var19; var17 = (double)(par5Random.nextFloat() * 2.0F * (float)var19); } par1World.spawnParticle("portal", var7, var9, var11, var13, var15, var17); } } @SideOnly(Side.CLIENT) /** * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) */ public int idPicked(World par1World, int par2, int par3, int par4) { return 0; } public String getTextureFile() { return ("/mods/SpriteSheet.png"); } }/code] Base Mod [code]package net.modbase; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.EnumArmorMaterial; import net.minecraft.item.EnumToolMaterial; import net.minecraft.item.Item; import net.minecraft.src.*; import net.minecraft.stats.Achievement; import net.minecraft.stats.AchievementList; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.AchievementPage; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.EnumHelper; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.common.*; import cpw.mods.fml.common.Mod.Init; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.Mod.PostInit; import cpw.mods.fml.common.Mod.PreInit; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.network.NetworkMod.SidedPacketHandler; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.common.SidedProxy; @Mod (modid = "AncientCraftRPG", name = "AncientCraftRPG", version = "0.1.0") @NetworkMod (clientSideRequired = true, serverSideRequired = false) public class ModBase { //Properties @MLProp public static int blocknexussoil = 2500; @MLProp public static int blocknexusdirt = 2501; @MLProp public static int blocknexusstone = 2502; @MLProp public static int blocknexuscobble = 2503; @MLProp public static int blocknexusportal = 2504; @MLProp public static int blockfire = 2505; @MLProp public static int blockfroststone = 2506; @MLProp public static int blockearthstone = 2507; @MLProp public static int blockdrystone = 2508; @MLProp public static int blockinfernostone = 2509; @MLProp public static int blockoceanusstone = 2510; @MLProp public static int itemfireshard = 2511; @MLProp public static int itemfireshardchunk = 2512; @MLProp public static int iteminfernostone = 2513; @MLProp public static int iteminfernostonechunk = 2514; @MLProp public static int itemfrostshard = 2515; @MLProp public static int itemfrostshardchunk = 2516; @MLProp public static int itemfroststone = 2517; @MLProp public static int itemsfroststonechunk = 2518; @MLProp public static int itemearthshard = 2519; @MLProp public static int itemearthshardchunk = 2520; @MLProp public static int itemearthstone = 2521; @MLProp public static int itemearthstonechunk = 2522; @MLProp public static int itemdryshard = 2523; @MLProp public static int itemdryshardchunk = 2524; @MLProp public static int itemdrystone = 2525; @MLProp public static int itemdrystonechunk = 2526; @MLProp public static int itemoceanusshard = 2527; @MLProp public static int itemoceanusshardchunk = 2528; @MLProp public static int itemoceanusstone = 2529; @MLProp public static int itemoceanusstonechunk = 2530; @MLProp public static int itemfrostshardsword = 2531; @MLProp public static int itemfroststonesword = 2532; @MLProp public static int itemfireshardsword = 2533; @MLProp public static int iteminfernostonesword = 2534; @MLProp public static int itemdryshardsword = 2535; @MLProp public static int itemdrystonesword = 2536; @MLProp public static int itemearthshardsword = 2537; @MLProp public static int itemearthstonesword = 2538; @MLProp public static int itemoceanusshardsword = 2539; @MLProp public static int itemoceanusstonesword = 2540; @MLProp public static int itemsacrifice = 2541; @MLProp public static int itemwand1 = 2542; //Enums //weapons public static EnumToolMaterial shardweapons = EnumHelper.addToolMaterial("shard", 0, 1000, 0, 3, 12); public static EnumToolMaterial stoneweapons = EnumHelper.addToolMaterial("stone", 0, 1200, 0, 4, 20); //tools public static EnumToolMaterial shardtools = EnumHelper.addToolMaterial("shard", 2, 1000, 6, 1, 12); public static EnumToolMaterial stonetools = EnumHelper.addToolMaterial("stone", 3, 1200, 6, 1, 20); //armors public static EnumArmorMaterial shardarmor = EnumHelper.addArmorMaterial("shard", 2, new int[]{2, 6, 5 ,2}, 12); public static EnumArmorMaterial stonearmor = EnumHelper.addArmorMaterial("stone", 25, new int[]{3, 7, 6, 2}, 20); //Blocks public static Block nexussoil = new BlockNexusSoil(blocknexussoil).setBlockName("nexussoil"); public static Block nexusdirt = new BlockNexusDirt(blocknexusdirt, 1).setBlockName("nexusdirt"); public static Block nexusstone = new BlockNexusStone(blocknexusstone, 3).setBlockName("nexusstone"); public static Block Fire; public static Block nexuscobble; public static Block nexusportal; public static Block froststoneblock; public static Block earthstoneblock; public static Block drystoneblock; public static Block infernoblock; public static Block oceanusblock; //Items public static Item frostshard; public static Item frostshardchunk; public static Item froststone; public static Item froststonechunk; public static Item earthshard; public static Item earthshardchunk; public static Item earthstone; public static Item earthstonechunk; public static Item dryshard; public static Item dryshardchunk; public static Item dryStone; public static Item drystonechunk; public static Item fireshard; public static Item fireshardchunk; public static Item infernostone; public static Item infernostonechunk; public static Item oceanusshard; public static Item oceanusshardchunk; public static Item oceanusstone; public static Item oceanusstonechunk; public static Item sacrifice; public static Item wand1; //Tools //Armor //Meelee weapons public static Item frostshardsword; public static Item froststonesword; public static Item fireshardsword; public static Item infernostonesword; public static Item dryshardsword; public static Item drystonesword; public static Item earthshardsword; public static Item earthstonesword; public static Item oceanusshardsword; public static Item oceanusstonesword; //Ranged Weapons //Magic weapons //Biomes public static final BiomeGenBase nexusbiome = (new BiomeGenNexus(25)).setColor(2900485); //Creative Tabs public static final CreativeTabs AncientCraftRPGTab = new AncientCraftRpgTab("AncientCraftRPGTab"); //Achievements public static AchievementPage page1 = new AchievementPage("AncientCraftRPG"); @Init public void load(FMLInitializationEvent event) { //Nexus ground GameRegistry.registerBlock(nexussoil); LanguageRegistry.addName(nexussoil, "Nexus Grass"); GameRegistry.registerBlock(nexusdirt); LanguageRegistry.addName(nexusdirt, "Nexus Dirt"); GameRegistry.registerBlock(nexusstone); LanguageRegistry.addName(nexusstone, "Nexus Stone"); nexuscobble = new BlockNexusCobble(blocknexuscobble, 4).setBlockName("nexuscobble"); GameRegistry.registerBlock(nexuscobble); LanguageRegistry.addName(nexuscobble, "Nexus Cobblestone"); //Dimension nexusportal = new BlockNexusPortal(blocknexusportal, 5).setBlockName("nexusportal"); GameRegistry.registerBlock(nexusportal); LanguageRegistry.addName(nexusportal, "Nexus Portal"); Fire = new BlockFire(blockfire, 31).setBlockName("nexusfire"); GameRegistry.registerBlock(Fire); LanguageRegistry.addName(Fire, "Fire"); DimensionManager.registerProviderType(2, NexusWorldProvider.class, false); DimensionManager.registerDimension(2, 2); GameRegistry.registerWorldGenerator(new WorldGenNexus()); //Stones & Shards fireshard = new FireShard(itemfireshard).setItemName("fireshard").setIconIndex(6); LanguageRegistry.addName(fireshard, "Fire Shard"); fireshardchunk = new FireShard(itemfireshardchunk).setItemName("fireshardchunk").setIconIndex(16); LanguageRegistry.addName(fireshardchunk, "Fire Shardchunk"); infernostone = new InfernoStone(iteminfernostone).setItemName("firestone").setIconIndex(7); LanguageRegistry.addName(infernostone, "Inferno Stone"); infernostonechunk = new InfernoStone(iteminfernostonechunk).setItemName("infernostonechunk").setIconIndex(17); LanguageRegistry.addName(infernostonechunk, "Inferno Stonechunk"); dryshard = new DryShard(itemdryshard).setItemName("dryshard").setIconIndex(; LanguageRegistry.addName(dryshard, "Dry Shard"); dryshardchunk = new DryShard(itemdryshardchunk).setItemName("dryshardchunk").setIconIndex(18); LanguageRegistry.addName(dryshardchunk, "Dry Shardchunk"); dryStone = new DryStone(itemdrystone).setItemName("drystone").setIconIndex(9); LanguageRegistry.addName(dryStone, "Dry Stone"); drystonechunk = new DryStone(itemdrystonechunk).setItemName("dryshardchunk").setIconIndex(19); LanguageRegistry.addName(drystonechunk, "Dry Stonechunk"); earthshard = new EarthShard(itemearthshard).setItemName("earthshard").setIconIndex(10); LanguageRegistry.addName(earthshard, "Earth Shard"); earthshardchunk = new EarthShard(itemearthshardchunk).setItemName("earthshardchunk").setIconIndex(20); LanguageRegistry.addName(earthshardchunk, "Earth Shardchunk"); earthstone = new EarthStone(itemearthstone).setItemName("earthstone").setIconIndex(11); LanguageRegistry.addName(earthstone, "Earth Stone"); earthstonechunk = new EarthStone(itemearthstonechunk).setItemName("earthstonechunk").setIconIndex(21); LanguageRegistry.addName(earthstonechunk, "Earth Stonechunk"); frostshard = new FrostShard(itemfrostshard).setItemName("frostshard").setIconIndex(12); LanguageRegistry.addName(frostshard, "Frost Shard"); frostshardchunk = new FrostShard(itemfrostshardchunk).setItemName("frostshardchunk").setIconIndex(22); LanguageRegistry.addName(frostshardchunk, "Frost Shardchunk"); froststone = new FrostStone(itemfroststone).setItemName("froststone").setIconIndex(13); LanguageRegistry.addName(froststone, "Frost Stone"); froststonechunk = new FrostStone(itemsfroststonechunk).setItemName("froststonechunk").setIconIndex(23); LanguageRegistry.addName(froststonechunk, "Frost Stonechunk"); oceanusshard = new OceanusShard(itemoceanusshard).setItemName("oceanusshard").setIconIndex(14); LanguageRegistry.addName(oceanusshard, "Oceanus Shard"); oceanusshardchunk = new OceanusShard(itemoceanusshardchunk).setItemName("oceanusshardchunk").setIconIndex(24); LanguageRegistry.addName(oceanusshardchunk, "Oceanus Shardchunk"); oceanusstone = new OceanusStone(itemoceanusstone).setItemName("oceanusstone").setIconIndex(15); LanguageRegistry.addName(oceanusstone, "OceanusStone"); oceanusstonechunk = new OceanusStone(itemoceanusstonechunk).setItemName("oceanusstonechunk").setIconIndex(25); LanguageRegistry.addName(oceanusstonechunk, "Oceanus Stonechunk"); //Misc Items sacrifice = new Sacrifice(itemsacrifice).setItemName("sacrifice").setIconIndex(36); LanguageRegistry.addName(sacrifice, "Sacrifice"); //Wands wand1 = new Wand1(itemwand1).setItemName("wand1").setIconIndex(37); LanguageRegistry.addName(wand1, "Oceanus Wand"); //Biomes GameRegistry.addBiome(nexusbiome); //Weapons frostshardsword = new FrostShardSword(itemfrostshardsword,shardweapons).setItemName("frostshardsword").setIconIndex(26); LanguageRegistry.addName(frostshardsword, "Frostshardsword"); froststonesword = new FrostStoneSword(itemfroststonesword,stoneweapons).setItemName("froststonesword").setIconIndex(27); LanguageRegistry.addName(froststonesword, "Frost Stone Sword"); earthshardsword = new EarthShardSword(itemearthshardsword,shardweapons).setItemName("earthshardsword").setIconIndex(28); LanguageRegistry.addName(earthshardsword, "Earth Shard Sword"); earthstonesword = new EarthStoneSword(itemearthstonesword,stoneweapons).setItemName("earthstonesword").setIconIndex(29); LanguageRegistry.addName(earthstonesword, "Earth Stone Sword"); dryshardsword = new DryShardSword(itemdryshardsword,shardweapons).setItemName("dryshardsword").setIconIndex(30); LanguageRegistry.addName(dryshardsword, "Dry Shard Sword"); drystonesword = new DryStoneSword(itemdrystonesword,stoneweapons).setItemName("drystonesword").setIconIndex(31); LanguageRegistry.addName(drystonesword, "Dry Stone Sword"); fireshardsword = new FireShardSword(itemfireshardsword,shardweapons).setItemName("fireshardsword").setIconIndex(32); LanguageRegistry.addName(fireshardsword, "Fire Shard Sword"); infernostonesword = new InfernoStoneSword(iteminfernostonesword,stoneweapons).setItemName("firestonesword").setIconIndex(33); LanguageRegistry.addName(infernostonesword, "Inferno Stone Sword"); oceanusshardsword = new OceanusShardSword(itemoceanusshardsword,shardweapons).setItemName("oceanusshardsword").setIconIndex(34); LanguageRegistry.addName(oceanusshardsword, "Oceanus Shard Sword"); oceanusstonesword = new OceanusStoneSword(itemoceanusstonesword,stoneweapons).setItemName("oceanusstonesword").setIconIndex(35); LanguageRegistry.addName(oceanusstonesword, "Oceanus Stone Sword"); //Recipes //Creative Tabs LanguageRegistry.instance().addStringLocalization("itemGroup.AncientCraftRPGTab", "en_US", "AncientCraftRPG"); nexussoil.setCreativeTab(AncientCraftRPGTab); nexusdirt.setCreativeTab(AncientCraftRPGTab); nexusstone.setCreativeTab(AncientCraftRPGTab); nexuscobble.setCreativeTab(AncientCraftRPGTab); fireshard.setCreativeTab(AncientCraftRPGTab); infernostone.setCreativeTab(AncientCraftRPGTab); frostshard.setCreativeTab(AncientCraftRPGTab); froststone.setCreativeTab(AncientCraftRPGTab); dryshard.setCreativeTab(AncientCraftRPGTab); dryStone.setCreativeTab(AncientCraftRPGTab); oceanusshard.setCreativeTab(AncientCraftRPGTab); oceanusstone.setCreativeTab(AncientCraftRPGTab); earthshard.setCreativeTab(AncientCraftRPGTab); earthstone.setCreativeTab(AncientCraftRPGTab); nexusportal.setCreativeTab(AncientCraftRPGTab); fireshardchunk.setCreativeTab(AncientCraftRPGTab); infernostonechunk.setCreativeTab(AncientCraftRPGTab); frostshardchunk.setCreativeTab(AncientCraftRPGTab); froststonechunk.setCreativeTab(AncientCraftRPGTab); dryshardchunk.setCreativeTab(AncientCraftRPGTab); drystonechunk.setCreativeTab(AncientCraftRPGTab); oceanusshardchunk.setCreativeTab(AncientCraftRPGTab); oceanusstonechunk.setCreativeTab(AncientCraftRPGTab); earthshardchunk.setCreativeTab(AncientCraftRPGTab); earthstonechunk.setCreativeTab(AncientCraftRPGTab); fireshardsword.setCreativeTab(AncientCraftRPGTab); infernostonesword.setCreativeTab(AncientCraftRPGTab); frostshardsword.setCreativeTab(AncientCraftRPGTab); froststonesword.setCreativeTab(AncientCraftRPGTab); dryshardsword.setCreativeTab(AncientCraftRPGTab); drystonesword.setCreativeTab(AncientCraftRPGTab); oceanusshardsword.setCreativeTab(AncientCraftRPGTab); oceanusstonesword.setCreativeTab(AncientCraftRPGTab); earthshardsword.setCreativeTab(AncientCraftRPGTab); earthstonesword.setCreativeTab(AncientCraftRPGTab); sacrifice.setCreativeTab(AncientCraftRPGTab); wand1.setCreativeTab(AncientCraftRPGTab); //Achievements AchievementPage.registerAchievementPage(page1); this.addAchievementLocalizations(); } private void addAchievementName(String ach, String name) { LanguageRegistry.instance().addStringLocalization("achievement." + ach, "en_US", name); } private void addAchievementDesc(String ach, String desc) { LanguageRegistry.instance().addStringLocalization("achievement." + ach + ".desc", "en_US", desc); } private void addAchievementLocalizations() { this.addAchievementName("Nexus", "Nexus?!?!"); this.addAchievementDesc("Nexus", "Enter The Nexus"); } public void PreInit(FMLPreInitializationEvent event) { } public void PostInit(FMLPostInitializationEvent event) { } }
  20. It is because it is sent server side and client side so it sends it twice
  21. Thanks Man
  22. I don't know what is wrong Error Log
  23. How can i make a custom biome with the blocks as custom grass and dirt.
  24. does anyone know who to make it so when i right click a block with an item it will change blocks like the research table in thaumcraft 3?
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.