Jump to content

zero7717

Members
  • Posts

    2
  • Joined

  • Last visited

Posts posted by zero7717

  1. Sorry about that, I know about object inheritance but I kept most of the functions around in case I wanted to change them later. In any case, I'll try again with a trimmed-down file and post that one (I doubt it'll fix my problem but at least it'll be easier to read).

     

     

    EDIT: Holy batmobiles, it did fix it (the lighting works too now). That'll teach me to override as many things as possible ahead of time, I guess. Thanks!

  2. I've been trying to get a custom dimension to work for a while. I finally got past the "go to the nether instead of your custom dimension" issue that quite a few people seem to run into, but now I'm getting some weird errors:

     

     

    Firstly, when I travel to my custom dimension, it takes a while to load up the terrain and on one occasion I actually fell out of the world and died before the local area was loaded enough to stand on. This isn't the main issue I'm having, but as long as I'm here, is there anything I can do to fix that?

     

    Secondly, the first time I travel to the custom dimension, there is no light. Every block is very dark, and even torches and things don't make any light. This is purely visual; trees can be grown, mushrooms can't be planted, etc. If I exit the game and reload it, everything's lit like normal.

     

    Thirdly and most importantly, upon returning to the overworld, I can walk around for a second or two and then the game crashes.

     

     

    Console log

     

     

    == MCP 7.21 (data: 7.21, client: 1.4.4, server: 1.4.4) ==
    [19:48:16] 2012-11-15 19:48:16 [iNFO] [ForgeModLoader] Forge Mod Loader version
    4.4.4.442 for Minecraft 1.4.4 loading
    [19:48:16] 2012-11-15 19:48:16 [iNFO] [ForgeModLoader] Downloading file http://f
    iles.minecraftforge.net/fmllibs/argo-2.25.jar
    [19:48:16] 2012-11-15 19:48:16 [iNFO] [ForgeModLoader] Download complete
    [19:48:16] 2012-11-15 19:48:16 [iNFO] [ForgeModLoader] Downloading file http://f
    iles.minecraftforge.net/fmllibs/guava-12.0.1.jar
    [19:48:20] 2012-11-15 19:48:20 [iNFO] [ForgeModLoader] Download complete
    [19:48:20] 2012-11-15 19:48:20 [iNFO] [ForgeModLoader] Downloading file http://f
    iles.minecraftforge.net/fmllibs/asm-all-4.0.jar
    [19:48:20] 2012-11-15 19:48:20 [iNFO] [ForgeModLoader] Download complete
    [19:48:23] 2012-11-15 19:48:23 [iNFO] [sTDOUT] 27 achievements
    [19:48:23] 2012-11-15 19:48:23 [iNFO] [sTDOUT] 208 recipes
    [19:48:23] 2012-11-15 19:48:23 [iNFO] [sTDOUT] Setting user: Player789, -
    [19:48:23] 2012-11-15 19:48:23 [iNFO] [sTDERR] Client asked for parameter: serve
    r
    [19:48:23] 2012-11-15 19:48:23 [iNFO] [sTDOUT] LWJGL Version: 2.4.2
    [19:48:24] 2012-11-15 19:48:24 [iNFO] [ForgeModLoader] Attempting early Minecraf
    tForge initialization
    [19:48:24] 2012-11-15 19:48:24 [iNFO] [sTDOUT] MinecraftForge v6.3.0.372 Initial
    ized
    [19:48:24] 2012-11-15 19:48:24 [iNFO] [ForgeModLoader] MinecraftForge v6.3.0.372
    Initialized
    [19:48:24] 2012-11-15 19:48:24 [iNFO] [sTDOUT] Replaced 84 ore recipies
    [19:48:24] 2012-11-15 19:48:24 [iNFO] [ForgeModLoader] Completed early Minecraft
    Forge initialization
    [19:48:24] 2012-11-15 19:48:24 [iNFO] [ForgeModLoader] No mod directory found, c
    reating one: C:\Users\Joe\Desktop\minecraft mods\mcpInvfiniverse144\jars\mods
    [19:48:24] 2012-11-15 19:48:24 [iNFO] [ForgeModLoader] Mod directory created suc
    cessfully
    [19:48:24] 2012-11-15 19:48:24 [iNFO] [ForgeModLoader] Config directory created
    successfully
    [19:48:25] 2012-11-15 19:48:25 [iNFO] [ForgeModLoader] Searching C:\Users\Joe\De
    sktop\minecraft mods\mcpInvfiniverse144\jars\mods for mods
    [19:48:26] 2012-11-15 19:48:26 [iNFO] [ForgeModLoader] Forge Mod Loader has iden
    tified 4 mods to load
    [19:48:26] 2012-11-15 19:48:26 [iNFO] [ForgeModLoader] Configured a dormant chun
    k cache size of 0
    [19:48:26] 2012-11-15 19:48:26 [iNFO] [sTDOUT] Starting up SoundSystem...
    [19:48:27] 2012-11-15 19:48:27 [iNFO] [sTDOUT] Initializing LWJGL OpenAL
    [19:48:27] 2012-11-15 19:48:27 [iNFO] [sTDOUT]     (The LWJGL binding of OpenAL.
      For more information, see http://www.lwjgl.org)
    [19:48:27] 2012-11-15 19:48:27 [iNFO] [sTDOUT] OpenAL initialized.
    [19:48:28] 2012-11-15 19:48:28 [iNFO] [ForgeModLoader] Forge Mod Loader has succ
    essfully loaded 4 mods
    [19:48:38] 2012-11-15 19:48:38 [iNFO] [sTDOUT] Scanning folders...
    [19:48:38] 2012-11-15 19:48:38 [iNFO] [sTDOUT] Total conversion count is 0
    [19:48:39] 2012-11-15 19:48:39 [iNFO] [ForgeModLoader] Loading dimension 0 (New
    World) (net.minecraft.src.IntegratedServer@29dd8664)
    [19:48:39] 2012-11-15 19:48:39 [iNFO] [ForgeModLoader] Loading dimension 2 (New
    World) (net.minecraft.src.IntegratedServer@29dd8664)
    [19:48:39] 2012-11-15 19:48:39 [iNFO] [ForgeModLoader] Loading dimension 1 (New
    World) (net.minecraft.src.IntegratedServer@29dd8664)
    [19:48:39] 2012-11-15 19:48:39 [iNFO] [ForgeModLoader] Loading dimension -1 (New
    World) (net.minecraft.src.IntegratedServer@29dd8664)
    [19:51:25] 2012-11-15 19:51:25 [iNFO] [ForgeModLoader] Unloading dimension 0
    [19:51:25] 2012-11-15 19:51:25 [iNFO] [ForgeModLoader] Unloading dimension 1
    [19:51:36] 2012-11-15 19:51:36 [iNFO] [ForgeModLoader] Loading dimension 0 (New
    World) (net.minecraft.src.IntegratedServer@5987f36)
    [19:51:36] 2012-11-15 19:51:36 [iNFO] [ForgeModLoader] Loading dimension 2 (New
    World) (net.minecraft.src.IntegratedServer@5987f36)
    [19:51:36] 2012-11-15 19:51:36 [iNFO] [ForgeModLoader] Loading dimension 1 (New
    World) (net.minecraft.src.IntegratedServer@5987f36)
    [19:51:36] 2012-11-15 19:51:36 [iNFO] [ForgeModLoader] Loading dimension -1 (New
    World) (net.minecraft.src.IntegratedServer@5987f36)
    [19:52:13] 2012-11-15 19:52:13 [iNFO] [ForgeModLoader] Unloading dimension 0
    [19:52:13] 2012-11-15 19:52:13 [iNFO] [sTDERR] net.minecraft.src.ReportedExcepti
    on: Ticking memory connection
    [19:52:13] 2012-11-15 19:52:13 [iNFO] [sTDERR]  at net.minecraft.src.NetworkList
    enThread.networkTick(NetworkListenThread.java:62)
    [19:52:13] 2012-11-15 19:52:13 [iNFO] [sTDERR]  at net.minecraft.src.IntegratedS
    erverListenThread.networkTick(IntegratedServerListenThread.java:111)
    [19:52:13] 2012-11-15 19:52:13 [iNFO] [sTDERR]  at net.minecraft.server.Minecraf
    tServer.updateTimeLightAndEntities(MinecraftServer.java:691)
    [19:52:13] 2012-11-15 19:52:13 [iNFO] [sTDERR]  at net.minecraft.server.Minecraf
    tServer.tick(MinecraftServer.java:587)
    [19:52:13] 2012-11-15 19:52:13 [iNFO] [sTDERR]  at net.minecraft.src.IntegratedS
    erver.tick(IntegratedServer.java:110)
    [19:52:13] 2012-11-15 19:52:13 [iNFO] [sTDERR]  at net.minecraft.server.Minecraf
    tServer.run(MinecraftServer.java:494)
    [19:52:13] 2012-11-15 19:52:13 [iNFO] [sTDERR]  at net.minecraft.src.ThreadMinec
    raftServer.run(ThreadMinecraftServer.java:17)
    [19:52:13] 2012-11-15 19:52:13 [iNFO] [sTDERR] Caused by: java.lang.RuntimeExcep
    tion: Cannot Hotload Dim: Overworld is not Loaded!
    [19:52:13] 2012-11-15 19:52:13 [iNFO] [sTDERR]  at net.minecraftforge.common.Dim
    ensionManager.initDimension(DimensionManager.java:142)
    [19:52:13] 2012-11-15 19:52:13 [iNFO] [sTDERR]  at net.minecraft.server.Minecraf
    tServer.worldServerForDimension(MinecraftServer.java:746)
    [19:52:13] 2012-11-15 19:52:13 [iNFO] [sTDERR]  at net.minecraft.src.NetServerHa
    ndler.handleFlying(NetServerHandler.java:122)
    [19:52:14] 2012-11-15 19:52:13 [iNFO] [sTDERR]  at net.minecraft.src.Packet10Fly
    ing.processPacket(Packet10Flying.java:51)
    [19:52:14] 2012-11-15 19:52:13 [iNFO] [sTDERR]  at net.minecraft.src.MemoryConne
    ction.processReadPackets(MemoryConnection.java:79)
    [19:52:14] 2012-11-15 19:52:13 [iNFO] [sTDERR]  at net.minecraft.src.NetServerHa
    ndler.networkTick(NetServerHandler.java:82)
    [19:52:14] 2012-11-15 19:52:13 [iNFO] [sTDERR]  at net.minecraft.src.NetworkList
    enThread.networkTick(NetworkListenThread.java:55)
    [19:52:14] 2012-11-15 19:52:13 [iNFO] [sTDERR]  ... 6 more
    [19:52:14] 2012-11-15 19:52:14 [iNFO] [ForgeModLoader] Unloading dimension -1
    [19:52:14] 2012-11-15 19:52:14 [iNFO] [ForgeModLoader] Unloading dimension 0
    [19:52:24] 2012-11-15 19:52:24 [iNFO] [sTDOUT] Stopping!
    [19:52:24] 2012-11-15 19:52:24 [iNFO] [sTDOUT] SoundSystem shutting down...
    [19:52:24] 2012-11-15 19:52:24 [iNFO] [sTDOUT]     Author: Paul Lamb, www.paulsc
    ode.com
    

     

     

    Crash report

     

     

    ---- Minecraft Crash Report ----

    // Uh... Did I do that?

     

    Time: 11/15/12 8:41 PM

    Description: Ticking memory connection

     

    java.lang.RuntimeException: Cannot Hotload Dim: Overworld is not Loaded!

    at net.minecraftforge.common.DimensionManager.initDimension(DimensionManager.java:142)

    at net.minecraft.server.MinecraftServer.worldServerForDimension(MinecraftServer.java:746)

    at net.minecraft.src.NetServerHandler.handleFlying(NetServerHandler.java:122)

    at net.minecraft.src.Packet10Flying.processPacket(Packet10Flying.java:51)

    at net.minecraft.src.MemoryConnection.processReadPackets(MemoryConnection.java:79)

    at net.minecraft.src.NetServerHandler.networkTick(NetServerHandler.java:82)

    at net.minecraft.src.NetworkListenThread.networkTick(NetworkListenThread.java:55)

    at net.minecraft.src.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:111)

    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:691)

    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:587)

    at net.minecraft.src.IntegratedServer.tick(IntegratedServer.java:110)

    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:494)

    at net.minecraft.src.ThreadMinecraftServer.run(ThreadMinecraftServer.java:17)

     

     

    A detailed walkthrough of the error, its code path and all known details is as follows:

    ---------------------------------------------------------------------------------------

     

    -- System Details --

    Details:

    Minecraft Version: 1.4.4

    Operating System: Windows 7 (amd64) version 6.1

    Java Version: 1.6.0_27, Sun Microsystems Inc.

    Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Sun Microsystems Inc.

    Memory: 813221416 bytes (775 MB) / 1065025536 bytes (1015 MB) up to 1065025536 bytes (1015 MB)

    JVM Flags: 3 total; -Xincgc -Xms1024M -Xmx1024M

    AABB Pool Size: 9689 (542584 bytes; 0 MB) allocated, 4046 (226576 bytes; 0 MB) used

    Suspicious classes: $Proxy3, $Proxy4, $Proxy5, ...[com.google.common.base.Preconditions, Charsets, Splitter, ...], [com.google.common.cache.CacheLoader, CacheBuilder, Cache, ...], [com.google.common.collect.Multimap, ListMultimap, AbstractMultimap, ...], [com.google.common.eventbus.EventBus, HandlerFindingStrategy, AnnotatedHandlerFinder, ...], [com.google.common.hash.Hashing, HashFunction, AbstractStreamingHashFunction, ...], [com.google.common.io.LineProcessor, Resources, InputSupplier, ...], [com.google.common.primitives.Ints, UnsignedBytes, Bytes], [com.google.common.reflect.TypeCapture, TypeToken, SimpleTypeToken, ...], [com.google.common.util.concurrent.UncheckedExecutionException, ExecutionError, MoreExecutors, ...], [cpw.mods.fml.client.ITextureFX, FMLTextureFX, TextureFXManager, ...], [cpw.mods.fml.client.modloader.ModLoaderClientHelper, ModLoaderKeyBindingHandler], [cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler, KeyHandler, RenderingRegistry, ...], [cpw.mods.fml.common.Loader, LoaderException, WrongMinecraftVersionException, ...], [cpw.mods.fml.common.asm.FMLSanityChecker, MLDetectorClassVisitor, SideOnly], [cpw.mods.fml.common.asm.transformers.AccessTransformer, Modifier, MarkerTransformer, ...], [cpw.mods.fml.common.discovery.ModDiscoverer, ASMDataTable, ModCandidate, ...], [cpw.mods.fml.common.discovery.asm.ASMModParser, ModClassVisitor, ModAnnotationVisitor, ...], [cpw.mods.fml.common.event.FMLLoadEvent, FMLEvent, FMLStateEvent, ...], [cpw.mods.fml.common.functions.ModIdFunction], [cpw.mods.fml.common.modloader.IModLoaderSidedHelper, ModLoaderHelper, ModLoaderVillageTradeHandler, ...], [cpw.mods.fml.common.network.Player, IPacketHandler, IConnectionHandler, ...], [cpw.mods.fml.common.registry.BlockProxy, ItemProxy, LanguageRegistry, ...], [cpw.mods.fml.common.toposort.ModSortingException, ModSorter, DirectedGraph, ...], [cpw.mods.fml.common.versioning.ArtifactVersion, VersionParser, InvalidVersionSpecificationException, ...], [infiniverse.client.ClientProxyInfiniverse], [infiniverse.common.Infiniverse, CommonProxyInfiniverse, IVWorldProviderBasic, ...], [net.minecraft.src.CallableMinecraftVersion, IPlayerUsage, MinecraftError, ...], [net.minecraftforge.client.ForgeHooksClient, ModCompatibilityClient, MinecraftForgeClient, ...], [net.minecraftforge.client.event.TextureLoadEvent, DrawBlockHighlightEvent, RenderWorldLastEvent, ...], [net.minecraftforge.client.event.sound.SoundEvent, SoundLoadEvent, SoundResultEvent, ...], [net.minecraftforge.common.IPlantable, IShearable, ISidedInventory, ...], [net.minecraftforge.event.Event, ListenerList, EventBus, ...], [net.minecraftforge.event.entity.EntityEvent, EntityJoinWorldEvent, PlaySoundAtEntityEvent, ...], [net.minecraftforge.event.entity.item.ItemEvent, ItemExpireEvent, ItemTossEvent], [net.minecraftforge.event.entity.living.LivingEvent, LivingSpecialSpawnEvent, LivingUpdateEvent, ...], [net.minecraftforge.event.entity.player.PlayerEvent, ArrowLooseEvent, ArrowNockEvent, ...], [net.minecraftforge.event.world.WorldEvent, Load, Save, ...], [net.minecraftforge.oredict.OreDictionary, OreRegisterEvent, ShapedOreRecipe, ...], [net.minecraftforge.transformers.ForgeAccessTransformer, EventTransformer], [org.objectweb.asm.ClassVisitor, ClassWriter, MethodVisitor, ...], [org.objectweb.asm.tree.ClassNode, MethodNode, FieldNode, ...]

    IntCache: cache: 0, tcache: 0, allocated: 3, tallocated: 63

    FML: MCP v7.21 FML v4.4.4.442 Minecraft Forge 6.3.0.372 4 mods loaded, 4 mods active

    mcp [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available->Available

    FML [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available->Available

    Forge [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available->Available

    zero_infiniverse [infiniverse] (minecraft) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available->Available

    Profiler Position: N/A (disabled)

    Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used

    Player Count: 1 / 8; [EntityPlayerMP['Player32'/14893, l='New World', x=-214.10, y=57.23, z=226.95]]

    Type: Integrated Server (map_client.txt)

    Is Modded: Definitely; Client brand changed to 'forge,fml'

     

     

     

    Base mod class

     

     

    package infiniverse.common;
    
    import net.minecraft.src.Block;
    import net.minecraft.src.BlockPortal;
    import net.minecraft.src.Item;
    import net.minecraft.src.ItemStack;
    import net.minecraftforge.common.DimensionManager;
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.Init;
    import cpw.mods.fml.common.SidedProxy;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.network.NetworkMod;
    import cpw.mods.fml.common.registry.GameRegistry;
    import cpw.mods.fml.common.registry.LanguageRegistry;
    
    @Mod(modid = "zero_infiniverse", name = "Infiniverse", version = "0.1")
    @NetworkMod(clientSideRequired = true, serverSideRequired = false)
    
    public class Infiniverse
    {
    public static Block ivstabilizer;
    public static Block ivwormhole;
    private int maxworlds;
    //public int[] dimIDlist;
    public static int dimID;
    
    @SidedProxy(clientSide = "infiniverse.client.ClientProxyInfiniverse", serverSide = "infiniverse.common.CommonProxyInfiniverse")
    public static CommonProxyInfiniverse proxy;
    
    @Init
    public void load(FMLInitializationEvent event)
    {
    	// find some some dimension IDs and register them
    	/*dimIDlist = new int[maxworlds];
    	DimensionManager.registerProviderType(7717, IVWorldProviderBasic.class, false)
    	for (int i = 0; i < maxworlds; i++)
    	{
    		dimIDlist[i] = DimensionManager.getNextFreeDimId();
    		DimensionManager.registerDimension(dimIDlist[i], 7717);
    	}*/
    	dimID = DimensionManager.getNextFreeDimId();
    	DimensionManager.registerProviderType(dimID, IVWorldProviderBasic.class, false);
    	DimensionManager.registerDimension(dimID, dimID);
    
    
    	// register stabilizer block
    	ivstabilizer = new IVBlockStabilizer(230, 0).setStepSound(Block.soundStoneFootstep).setHardness(3F).setResistance(1.0F).setBlockName("ivstabilizer");
    	GameRegistry.registerBlock(ivstabilizer);
    	LanguageRegistry.addName(ivstabilizer, "Happy Fun Block");
    
    	// register portal block
    	ivwormhole = new IVBlockWormhole(231, 14).setHardness(-1F).setStepSound(Block.soundGlassFootstep).setLightValue(0.75F).setBlockName("ivwormhole");
    	GameRegistry.registerBlock(ivwormhole);
    	LanguageRegistry.addName(ivwormhole, "Happy Fun Wormhole");
    
    	// register stabilizer recipe
    	GameRegistry.addRecipe(new ItemStack(ivstabilizer), new Object[]
    			{
    				"WpW",
    				"rSr",
    				"WSW",
    
    				'W', Block.planks, 'S', Block.stone, 'p', Item.enderPearl, 'r', Item.redstone
    			});
    
    	// register texture files
    	proxy.registerRenderThings();
    }
    }
    
    

     

     

     

    Portal block class

     

     

    package infiniverse.common;
    
    import java.util.Random;
    
    import net.minecraft.server.MinecraftServer;
    import net.minecraft.src.AxisAlignedBB;
    import net.minecraft.src.Block;
    import net.minecraft.src.BlockBreakable;
    import net.minecraft.src.BlockPortal;
    import net.minecraft.src.Entity;
    import net.minecraft.src.EntityList;
    import net.minecraft.src.EntityPlayer;
    import net.minecraft.src.EntityPlayerMP;
    import net.minecraft.src.IBlockAccess;
    import net.minecraft.src.ItemMonsterPlacer;
    import net.minecraft.src.Material;
    import net.minecraft.src.World;
    import net.minecraft.src.WorldServer;
    import cpw.mods.fml.common.Side;
    import cpw.mods.fml.common.asm.SideOnly;
    
    public class IVBlockWormhole extends BlockPortal
    {
        public IVBlockWormhole(int par1, int par2)
        {
            super(par1, par2);
            this.setTickRandomly(true);
        }
    
        /**
         * Ticks the block if it's been scheduled
         */
        //public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random)
        
    
        /**
         * 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)
        {
            this.setBlockBounds(0, 0, 0, 1, 1, 1);	// wormhole portals are cubey for now
        }
    
        /**
         * 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 boolean tryToCreatePortal(World world, int i, int j, int k)
    {	// If blocks above block are air, air, iron, create portal
    	if(world.getBlockId(i, j+1, k) == 0 && world.getBlockId(i, j+2, k) == 0 && world.getBlockId(i, j+3, k) == Block.blockSteel.blockID)
    	{
    		world.editingBlocks = true;
            for (int n=1; n <= 2; n++)
            	world.setBlockWithNotify(i, j+n, k, Infiniverse.ivwormhole.blockID);
            		
            world.editingBlocks = false;
            return true;
    	}
    
    	return false;
    }
    
        /**
         * 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
         */
        @Override
    public void onNeighborBlockChange(World world, int i, int j, int k, int l)
    {	// kill self if any part of system breaks, or new portal placed nearby
    	if ((world.getBlockId(i, j-1, k) == 0) || (world.getBlockId(i, j+1, k) == 0))
    		world.setBlockWithNotify(i, j, k, 0);
    	if (arePortalsNear(world, i, j, k, 0, 1, false))
    		world.setBlockWithNotify(i, j, k, 0);
    }
        
    //check if portals exist in a vertical column at or above target
      	//warning! More recursion than necessary done if horiz > 1. Need to handle this if wider search needed.
      	public boolean arePortalsNear(World world, int i, int j, int k, int vert, int horiz, boolean self)
      	{	//if current block is portal
      		if (self == true && ((world.getBlockId(i, j, k) == 90) || (world.getBlockId(i, j, k) == 231)))
      		{
      			return true;
      		}
      		
      		//check horizontals
      		if (horiz > 0)
      		{
      			if (arePortalsNear(world, i+1, j, k, 0, horiz-1, true))
      				return true;
      			if (arePortalsNear(world, i-1, j, k, 0, horiz-1, true))
      				return true;
      			if (arePortalsNear(world, i, j, k+1, 0, horiz-1, true))
      				return true;
      			if (arePortalsNear(world, i, j, k-1, 0, horiz-1, true))
      				return true;
      		}
      		
      		//check level above
      		if (vert > 0)
      			return (arePortalsNear(world, i, j+1, k, vert-1, horiz, true));
      		return false;
      	}
    
        @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 x, int y, int z, int side)
        {
        	if (par1IBlockAccess.getBlockId(x, y, z) == this.blockID)
            {
                return false;
            }
            else
            {
                switch (side)
                {
                	case 0: return par1IBlockAccess.getBlockId(x, y-1, z) != this.blockID;
                	case 1: return par1IBlockAccess.getBlockId(x, y+1, z) != this.blockID;
                	case 2: return par1IBlockAccess.getBlockId(x, y, z-1) != this.blockID;
                	case 3: return par1IBlockAccess.getBlockId(x, y, z+1) != this.blockID;
                	case 4: return par1IBlockAccess.getBlockId(x-1, y, z) != this.blockID;
                	case 5: return par1IBlockAccess.getBlockId(x+1, y, z) != this.blockID;
                	default: return false;
                }
            }
        }
    
        /**
         * Triggered whenever an entity collides with this block (enters into the block). Args: world, x, y, z, entity
         */
        @Override
        public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity entityPlayer)
        {
        	if (!(entityPlayer.ridingEntity == null && entityPlayer.riddenByEntity == null && (entityPlayer instanceof EntityPlayerMP) && (entityPlayer.worldObj instanceof WorldServer)))
            	return;
        	
        	EntityPlayerMP ent = (EntityPlayerMP)entityPlayer;
        	WorldServer wserv = (WorldServer) ent.worldObj;
        	
        	if (ent.timeUntilPortal < 50)
        	{
        		ent.timeUntilPortal = 200;
        	}
        	
        	else if (ent.timeUntilPortal >= 50  && ent.timeUntilPortal <= 100)
        	{
        		ent.timeUntilPortal = 250;
            
            int currentdim = ent.dimension;
            
            if (currentdim != Infiniverse.dimID) // if not in other place yet, send them there
            {
            	ent.mcServer.getConfigurationManager().transferPlayerToDimension(ent, Infiniverse.dimID, new IVTeleporterBasic(wserv));
            }
            else
            {
            	ent.mcServer.getConfigurationManager().transferPlayerToDimension(ent, 0, new IVTeleporterBasic(wserv));
            }
        	}
        	
    }
        
    }
    

     

     

     

    World provider class

     

     

    package infiniverse.common;
    
    import net.minecraft.src.BiomeGenBase;
    import net.minecraft.src.Block;
    import net.minecraft.src.Chunk;
    import net.minecraft.src.ChunkCoordinates;
    import net.minecraft.src.Entity;
    import net.minecraft.src.EntityPlayer;
    import net.minecraft.src.EnumGameType;
    import net.minecraft.src.IChunkProvider;
    import net.minecraft.src.MathHelper;
    import net.minecraft.src.Vec3;
    import net.minecraft.src.World;
    import net.minecraft.src.WorldChunkManager;
    import net.minecraft.src.WorldChunkManagerHell;
    import net.minecraft.src.WorldInfo;
    import net.minecraft.src.WorldProvider;
    import net.minecraft.src.WorldProviderEnd;
    import net.minecraft.src.WorldProviderHell;
    import net.minecraft.src.WorldType;
    import net.minecraftforge.client.SkyProvider;
    import net.minecraftforge.common.DimensionManager;
    import cpw.mods.fml.common.Side;
    import cpw.mods.fml.common.asm.SideOnly;
    
    public class IVWorldProviderBasic extends WorldProvider
    {
        public final String saveFolder;
    
        /**
         * States whether the Hell world provider is used(true) or if the normal world provider is used(false)
         */
        public boolean isHellWorld = false;
    
        /**
         * A boolean that tells if a world does not have a sky. Used in calculating weather and skylight
         */
        public boolean hasNoSky = false;
    
        public int dimensionId = Infiniverse.dimID;
    
        public IVWorldProviderBasic()
        {
          setDimension(Infiniverse.dimID);
          this.saveFolder = ("IV-A-" + Infiniverse.dimID);
        }
    
        /**
         * creates a new world chunk manager for WorldProvider
         */
        protected void registerWorldChunkManager()
        {	// TODO change later?
            //this.worldChunkMgr = new IVWorldChunkManagerBasic(worldObj);
        	this.worldChunkMgr = new WorldChunkManagerHell(BiomeGenBase.plains, 1.0F, 0.0F);
            this.isHellWorld = false;
            this.hasNoSky = false;
            this.dimensionId = Infiniverse.dimID;
        }
    
        /**
         * Will check if the x, z position specified is alright to be set as the map spawn point
         */
        public boolean canCoordinateBeSpawn(int par1, int par2)
        {
            return false;
        }
    
        /**
         * True if the player can respawn in this dimension (true = overworld, false = nether).
         */
        public boolean canRespawnHere()
        {
            return false;
        }
    
       public String getDimensionName()
        {
            return "Another World";
        }
    
        /**
         * A message to display to the user when they transfer to this dimension.
         *
         * @return The message to be displayed
         */
        public String getWelcomeMessage()
        {
            return "Entering Another World";
        }
    
        /**
         * A Message to display to the user when they transfer out of this dismension.
         *
         * @return The message to be displayed
         */
        public String getDepartMessage()
        {
        	return "Leaving Another World";
        }
    }
    

     

     

     

     

    Is there any chance anyone else can figure out what I'm doing wrong? I've been trying to figure this out for a while.

     

     

    EDIT: Updated to MC 1.4.4 and appropriate MCP and Forge releases. Same problems still happening.

     

    EDIT 2: Added a crash report, forgot about that one.

×
×
  • Create New...

Important Information

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