
Jdb100
Members-
Posts
223 -
Joined
-
Last visited
Everything posted by Jdb100
-
I don't know how to do it but you could try taking a java decompiler and looking at how ars magica did there mana system.
-
How did DivineRPG do it then?
-
I have been working on a dimension and i got everything working but the biome crashes my game before it loads. Here is my code: Base File //This is where it says the error is in the top block part Biome File: Top block file Error log Thanks Edit: After derping around i found where the error was i am trying to call a byte but my id is over 127 does anyone know how to fix this right now i am looking in divinerpg to try and figure how they did it.
-
Put minecart.motionX * 3 minecart.motionZ * 3 What this does is it takes your x and z moumentum and times it by 3 the key here is that it times it because if it is not going along the x then adding moumentum to the x will be z will be 3 times the speed
-
useportal doesn't work without modifying base files
Jdb100 replied to Jdb100's topic in General Discussion
I looked through it before replying but all i can see is sending information to players in that dimension. -
useportal doesn't work without modifying base files
Jdb100 replied to Jdb100's topic in General Discussion
Can you be more specific -
we have to see your rendering code
-
It should look like this. if(player.posY <= 0){}
-
The error log is a java null pointer exception so that doesn't give us anything but it is probably to do with either your teleporter class or if you made a custom world biome then that so post those two.
-
The only explanation is you didn't render the arrow at all or you rendered it incorrectly.
-
my BlockPortal.class gets an error when using the usePortal method and it wants me to add the usePortal function into Minecraft.class I can't run the game so no error logs but here is my mod files P.S. I know I am not very organized. BaseMod package net.dimension.src; import net.minecraft.src.*; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.common.Mod; 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.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.common.SidedProxy; @Mod (modid = "DimensionCraftmod", name = "SorceryCraft", version = "0.0.1pre-alpha") @NetworkMod (clientSideRequired = true, serverSideRequired = false) public class DimensionBase { public static Block rubyore; public static Item ruby; public static Item ceular; public static Block ceularore; public static Item bopperbone; public static Block compressedbopperbones; public static Item bopperflesh; public static Item hammer; public static BiomeGenBase arctic = new BiomegenArtic(10); public static Tundra_Teleporter teleporter = new Tundra_Teleporter(); public static WorldProvider tundra = new Tundra_WorldProvider1(); public static Block tundraportal = new BlockTundraPortal(); public static Item rubyshards; public static Item chisel; public static Item circuit; public static Block computer; @Instance("DimensionBase") public static DimensionBase instance; @SidedProxy(clientSide = "net.dimensionClient.src.ClientProxy", serverSide = "net.dimension.src.CommonProxy") public static CommonProxy proxy; @Init public void load(FMLInitializationEvent event) { rubyore = (new BlockRubyOre(500, 0)).setBlockName("rubyo"); LanguageRegistry.addName(rubyore, "Ruby Ore"); MinecraftForge.setBlockHarvestLevel(rubyore, "pickaxe", 2); GameRegistry.registerBlock(rubyore); GameRegistry.registerWorldGenerator(new WorldGenerator()); ruby = (new ItemRuby(501).setItemName("ruby").setIconIndex(1)); LanguageRegistry.addName(ruby, "Ruby"); proxy.registerRenderThings(); ceular = (new ItemCeular(502).setItemName("ceular").setIconIndex(3)); LanguageRegistry.addName(ceular, "Ceular"); GameRegistry.registerFuelHandler(new Fuel()); ceularore = (new BlockCeularOre(503,2).setBlockName("ceularo")); LanguageRegistry.addName(ceularore, "Ceular Ore"); MinecraftForge.setBlockHarvestLevel(ceularore, "pickaxe", 1); GameRegistry.registerBlock(ceularore); proxy.registerRenderThings(); EntityRegistry.registerModEntity(EntityBopper.class, "Bopper", 1, this, 70, 2, true); EntityRegistry.addSpawn(EntityBopper.class, 10, 1, 2, EnumCreatureType.monster, BiomeGenBase.beach, BiomeGenBase.extremeHills, BiomeGenBase.extremeHillsEdge, BiomeGenBase.forest, BiomeGenBase.forestHills, BiomeGenBase.jungle, BiomeGenBase.jungleHills, BiomeGenBase.mushroomIsland, BiomeGenBase.mushroomIslandShore, BiomeGenBase.ocean, BiomeGenBase.plains, BiomeGenBase.river, BiomeGenBase.swampland, BiomeGenBase.iceMountains); bopperbone = (new ItemBopperBone(504).setItemName("bbones").setIconIndex(4)); LanguageRegistry.addName(bopperbone, "BopperBone"); compressedbopperbones = (new BlockCBones(505,5).setBlockName("cbones").setHardness(1.5f)); LanguageRegistry.addName(compressedbopperbones, "Compressed BopperBones"); GameRegistry.registerBlock(compressedbopperbones); proxy.addRecipe(); bopperflesh = (new overworldFood(506, 4, 4F, false).setItemName("bopperflesh").setIconIndex(7)); LanguageRegistry.addName(bopperflesh, "Bopper Flesh"); hammer = (new ItemHammer(507).setItemName("hammer").setIconIndex(6)); LanguageRegistry.addName(hammer, "Hammer"); DimensionManager.registerProviderType(10, Tundra_WorldProvider1.class, true); DimensionManager.registerDimension(10, 10); //tundraportal = (new BlockTundraPortal(3000,255).setBlockName("tundraportal").setHardness(10000000.0f)); LanguageRegistry.addName(tundraportal, "Tundra Portal"); GameRegistry.registerCraftingHandler(new CraftingHandler()); //GameRegistry.addRecipe(new ItemStack(compressedbopperbones, 1), new Object[] { "CCC", "CCC", "CCC", Character.valueOf('C'), bopperbone}); //GameRegistry.addRecipe(new ItemStack(hammer, 1), new Object[] { "AAA", "AB ", " B ", Character.valueOf('A'), ruby, Character.valueOf('B'), bopperbone}); ModLoader.addRecipe(new ItemStack(hammer,1), new Object[] { "AAA", "AB ", " B ", Character.valueOf('A'), ruby, Character.valueOf('B'), bopperbone}); rubyshards = (new ItemRubyShards(508).setItemName("rshards").setIconIndex(); LanguageRegistry.addName(rubyshards, "Ruby Shards"); chisel = (new ItemScrewdriver(509).setItemName("chisel").setIconIndex(9)); LanguageRegistry.addName(chisel, "Chisel"); ModLoader.addRecipe(new ItemStack(chisel,1), new Object[] { " ", " A ", " B ", Character.valueOf('A'), Item.ingotIron, Character.valueOf('B'), Item.stick}); circuit = (new ItemCircuit(510).setItemName("circuit").setIconIndex(10)); LanguageRegistry.addName(circuit, "Cirucit"); ModLoader.addShapelessRecipe(new ItemStack(circuit, 1), new ItemStack(rubyshards), new ItemStack(chisel)); ModLoader.addShapelessRecipe(new ItemStack(rubyshards,2), new ItemStack(ruby), new ItemStack(hammer)); computer = new BlockComputer(511, 11).setBlockName("computer"); LanguageRegistry.addName(computer, "Computer"); ModLoader.addRecipe(new ItemStack(computer,1), new Object[] {"AAA", "DCB", "ABA", Character.valueOf('A'), Item.ingotIron, Character.valueOf('B'), Block.redstoneWire, Character.valueOf('C'), this.circuit, Character.valueOf('D'), Block.glass}); } @PreInit public void init(FMLPreInitializationEvent preEvent) { instance = this; } @PostInit public static void postinit(FMLPostInitializationEvent event) { } } teleporter class package net.dimension.src; import java.util.Random; import net.minecraft.src.Entity; import net.minecraft.src.MathHelper; import net.minecraft.src.Teleporter; import net.minecraft.src.World; import net.minecraft.src.WorldServer; public class Tundra_Teleporter extends Teleporter { public Tundra_Teleporter() { super(null); // TODO Auto-generated constructor stub } private Random random = new Random(); public void placeInPortal(World par1World, Entity par2Entity) { if (par1World.provider.dimensionId != 0) { if (!this.placeInExistingPortal(par1World, par2Entity)) { this.createPortal(par1World, par2Entity); this.placeInExistingPortal(par1World, par2Entity); } } else { int var3 = MathHelper.floor_double(par2Entity.posX); int var4 = MathHelper.floor_double(par2Entity.posY) - 1; int var5 = MathHelper.floor_double(par2Entity.posZ); byte var6 = 1; byte var7 = 0; for (int var8 = -2; var8 <= 2; ++var8) { for (int var9 = -2; var9 <= 2; ++var9) { for (int var10 = -1; var10 < 3; ++var10) { int var11 = var3 + var9 * var6 + var8 * var7; int var12 = var4 + var10; int var13 = var5 + var9 * var7 - var8 * var6; boolean var14 = var10 < 0; par1World.setBlockWithNotify(var11, var12, var13, var14 ? DimensionBase.compressedbopperbones.blockID : 0); } } } par2Entity.setLocationAndAngles((double)var3, (double)var4, (double)var5, par2Entity.rotationYaw, 0.0F); par2Entity.motionX = par2Entity.motionY = par2Entity.motionZ = 0.0D; } } /** * Place an entity in a nearby portal which already exists. */ public boolean placeInExistingPortal(World par1World, Entity par2Entity) { short var3 = 128; double var4 = -1.0D; int var6 = 0; int var7 = 0; int var8 = 0; int var9 = MathHelper.floor_double(par2Entity.posX); int var10 = MathHelper.floor_double(par2Entity.posZ); double var18; for (int var11 = var9 - var3; var11 <= var9 + var3; ++var11) { double var12 = (double)var11 + 0.5D - par2Entity.posX; for (int var14 = var10 - var3; var14 <= var10 + var3; ++var14) { double var15 = (double)var14 + 0.5D - par2Entity.posZ; for (int var17 = 127; var17 >= 0; --var17) { if (par1World.getBlockId(var11, var17, var14) == DimensionBase.tundraportal.blockID) { while (par1World.getBlockId(var11, var17 - 1, var14) == DimensionBase.tundraportal.blockID) { --var17; } var18 = (double)var17 + 0.5D - par2Entity.posY; double var20 = var12 * var12 + var18 * var18 + var15 * var15; if (var4 < 0.0D || var20 < var4) { var4 = var20; var6 = var11; var7 = var17; var8 = var14; } } } } } if (var4 >= 0.0D) { double var22 = (double)var6 + 0.5D; double var16 = (double)var7 + 0.5D; var18 = (double)var8 + 0.5D; if (par1World.getBlockId(var6 - 1, var7, var8) == DimensionBase.tundraportal.blockID) { var22 -= 0.5D; } if (par1World.getBlockId(var6 + 1, var7, var8) == DimensionBase.tundraportal.blockID) { var22 += 0.5D; } if (par1World.getBlockId(var6, var7, var8 - 1) == DimensionBase.tundraportal.blockID) { var18 -= 0.5D; } if (par1World.getBlockId(var6, var7, var8 + 1) == DimensionBase.tundraportal.blockID) { var18 += 0.5D; } par2Entity.setLocationAndAngles(var22, var16, var18, par2Entity.rotationYaw, 0.0F); par2Entity.motionX = par2Entity.motionY = par2Entity.motionZ = 0.0D; return true; } else { return false; } } /** * Create a new portal near an entity. */ public boolean createPortal(World par1World, Entity par2Entity) { byte var3 = 16; double var4 = -1.0D; int var6 = MathHelper.floor_double(par2Entity.posX); int var7 = MathHelper.floor_double(par2Entity.posY); int var8 = MathHelper.floor_double(par2Entity.posZ); int var9 = var6; int var10 = var7; int var11 = var8; int var12 = 0; int var13 = this.random.nextInt(4); int var14; double var15; int var17; double var18; int var21; int var20; int var23; int var22; int var25; int var24; int var27; int var26; int var28; double var34; double var32; for (var14 = var6 - var3; var14 <= var6 + var3; ++var14) { var15 = (double)var14 + 0.5D - par2Entity.posX; for (var17 = var8 - var3; var17 <= var8 + var3; ++var17) { var18 = (double)var17 + 0.5D - par2Entity.posZ; label274: for (var20 = 127; var20 >= 0; --var20) { if (par1World.isAirBlock(var14, var20, var17)) { while (var20 > 0 && par1World.isAirBlock(var14, var20 - 1, var17)) { --var20; } for (var21 = var13; var21 < var13 + 4; ++var21) { var22 = var21 % 2; var23 = 1 - var22; if (var21 % 4 >= 2) { var22 = -var22; var23 = -var23; } for (var24 = 0; var24 < 3; ++var24) { for (var25 = 0; var25 < 4; ++var25) { for (var26 = -1; var26 < 4; ++var26) { var27 = var14 + (var25 - 1) * var22 + var24 * var23; var28 = var20 + var26; int var29 = var17 + (var25 - 1) * var23 - var24 * var22; if (var26 < 0 && !par1World.getBlockMaterial(var27, var28, var29).isSolid() || var26 >= 0 && !par1World.isAirBlock(var27, var28, var29)) { continue label274; } } } } var32 = (double)var20 + 0.5D - par2Entity.posY; var34 = var15 * var15 + var32 * var32 + var18 * var18; if (var4 < 0.0D || var34 < var4) { var4 = var34; var9 = var14; var10 = var20; var11 = var17; var12 = var21 % 4; } } } } } } if (var4 < 0.0D) { for (var14 = var6 - var3; var14 <= var6 + var3; ++var14) { var15 = (double)var14 + 0.5D - par2Entity.posX; for (var17 = var8 - var3; var17 <= var8 + var3; ++var17) { var18 = (double)var17 + 0.5D - par2Entity.posZ; label222: for (var20 = 127; var20 >= 0; --var20) { if (par1World.isAirBlock(var14, var20, var17)) { while (var20 > 0 && par1World.isAirBlock(var14, var20 - 1, var17)) { --var20; } for (var21 = var13; var21 < var13 + 2; ++var21) { var22 = var21 % 2; var23 = 1 - var22; for (var24 = 0; var24 < 4; ++var24) { for (var25 = -1; var25 < 4; ++var25) { var26 = var14 + (var24 - 1) * var22; var27 = var20 + var25; var28 = var17 + (var24 - 1) * var23; if (var25 < 0 && !par1World.getBlockMaterial(var26, var27, var28).isSolid() || var25 >= 0 && !par1World.isAirBlock(var26, var27, var28)) { continue label222; } } } var32 = (double)var20 + 0.5D - par2Entity.posY; var34 = var15 * var15 + var32 * var32 + var18 * var18; if (var4 < 0.0D || var34 < var4) { var4 = var34; var9 = var14; var10 = var20; var11 = var17; var12 = var21 % 2; } } } } } } } int var30 = var9; int var16 = var10; var17 = var11; int var31 = var12 % 2; int var19 = 1 - var31; if (var12 % 4 >= 2) { var31 = -var31; var19 = -var19; } boolean var33; if (var4 < 0.0D) { if (var10 < 70) { var10 = 70; } if (var10 > 118) { var10 = 118; } var16 = var10; for (var20 = -1; var20 <= 1; ++var20) { for (var21 = 1; var21 < 3; ++var21) { for (var22 = -1; var22 < 3; ++var22) { var23 = var30 + (var21 - 1) * var31 + var20 * var19; var24 = var16 + var22; var25 = var17 + (var21 - 1) * var19 - var20 * var31; var33 = var22 < 0; par1World.setBlockWithNotify(var23, var24, var25, var33 ? DimensionBase.compressedbopperbones.blockID : 0); } } } } for (var20 = 0; var20 < 4; ++var20) { par1World.editingBlocks = true; for (var21 = 0; var21 < 4; ++var21) { for (var22 = -1; var22 < 4; ++var22) { var23 = var30 + (var21 - 1) * var31; var24 = var16 + var22; var25 = var17 + (var21 - 1) * var19; var33 = var21 == 0 || var21 == 3 || var22 == -1 || var22 == 3; par1World.setBlockWithNotify(var23, var24, var25, var33 ? DimensionBase.compressedbopperbones.blockID : DimensionBase.tundraportal.blockID); } } par1World.editingBlocks = false; for (var21 = 0; var21 < 4; ++var21) { for (var22 = -1; var22 < 4; ++var22) { var23 = var30 + (var21 - 1) * var31; var24 = var16 + var22; var25 = var17 + (var21 - 1) * var19; par1World.notifyBlocksOfNeighborChange(var23, var24, var25, par1World.getBlockId(var23, var24, var25)); } } } return true; } } BlockPortal class package net.dimension.src; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.common.Side; import cpw.mods.fml.common.asm.SideOnly; import java.util.Random; import net.minecraft.src.AxisAlignedBB; import net.minecraft.src.Block; import net.minecraft.src.BlockBreakable; import net.minecraft.src.CreativeTabs; import net.minecraft.src.Entity; import net.minecraft.src.EntityPlayer; import net.minecraft.src.EntityPlayerMP; import net.minecraft.src.EntityPlayerSP; import net.minecraft.src.EntityPortalFX; import net.minecraft.src.IBlockAccess; import net.minecraft.src.Material; import net.minecraft.src.ModLoader; import net.minecraft.src.World; import net.minecraft.src.WorldServer; import net.dimension.src.DimensionBase; import net.dimension.src.Tundra_Teleporter; public class BlockTundraPortal extends Block { public Tundra_Teleporter teleporter = new Tundra_Teleporter(); public BlockTundraPortal(){ super(3000, 0, Material.iron); this.setBlockName("tundraportal"); setCreativeTab(CreativeTabs.tabBlock); this.setResistance(100000000.0f); } @Override public void onEntityCollidedWithBlock(World world, int i, int j, int k, Entity entity) { if(entity.ridingEntity == null && entity.riddenByEntity == null && entity instanceof EntityPlayerSP) { if(ModLoader.getMinecraftInstance().thePlayer.timeUntilPortal == 0) { if(ModLoader.getMinecraftInstance().thePlayer.dimension != 10) { ModLoader.getMinecraftInstance().thePlayer.timeUntilPortal = 5; ModLoader.getMinecraftInstance().usePortal(10, teleporter); }else { ModLoader.getMinecraftInstance().thePlayer.timeUntilPortal = 5; ModLoader.getMinecraftInstance().usePortal(0, teleporter); } } else{ ModLoader.getMinecraftInstance().thePlayer.timeUntilPortal = 5; } } } public String getTextureFile() { return ("/mods/SpriteSheet.png"); } } WorldProvider class package net.dimension.src; import net.minecraft.src.WorldProvider; public class Tundra_WorldProvider1 extends WorldProvider{ // Returns the dimension's name, e.g. "The End", "Nether", or "Overworld". public String getDimensionName() { return "Tundra"; } }
-
in the teleporter class you are not telling it to make a new portal so to me i think you used the end teleporter class. public void placeInPortal(World par1World, Entity par2Entity) { if (par1World.provider.dimensionId != 0) { if (!this.placeInExistingPortal(par1World, par2Entity)) { this.createPortal(par1World, par2Entity); this.placeInExistingPortal(par1World, par2Entity); } } else { int var3 = MathHelper.floor_double(par2Entity.posX); int var4 = MathHelper.floor_double(par2Entity.posY) - 1; int var5 = MathHelper.floor_double(par2Entity.posZ); byte var6 = 1; byte var7 = 0; for (int var8 = -2; var8 <= 2; ++var8) { for (int var9 = -2; var9 <= 2; ++var9) { for (int var10 = -1; var10 < 3; ++var10) { int var11 = var3 + var9 * var6 + var8 * var7; int var12 = var4 + var10; int var13 = var5 + var9 * var7 - var8 * var6; boolean var14 = var10 < 0; par1World.setBlockWithNotify(var11, var12, var13, var14 ? DimensionBase.compressedbopperbones.blockID : 0); } } } par2Entity.setLocationAndAngles((double)var3, (double)var4, (double)var5, par2Entity.rotationYaw, 0.0F); par2Entity.motionX = par2Entity.motionY = par2Entity.motionZ = 0.0D; } } this is how it should look because you forgot to add this line: this.createPortal(par1World, par2Entity);
-
is this going to be for one of your tutorials because i really need a dimension tutorial.I just keep messing it up.
-
Dropping another item/block when a block is destroyed with a tool
Jdb100 replied to Robertof's topic in Modder Support
//This tells it what to drop public int idDropped(int par1, Random par2Random, int par3) { //This is what it drops. DimensionBase is my base mod file,ruby is what i want it to drop and shiftedIndex is for items and BlockID is for blocks. return DimensionBase.ruby.shiftedIndex; } //Amount it drops public int quantityDropped(Random random) { return 4; } EDIT:this goes in the Block.java