Jump to content

CowedOffACliff

Members
  • Posts

    46
  • Joined

  • Last visited

Everything posted by CowedOffACliff

  1. this.provider.worldChunkMgr.cleanUpCache() calls this.biomeCache.cleanupCache() which is your BiomeCache subclass. Make sure the this.biomeCache is actually being initialized correctly, and then go look at the cleanupCache() method in the BiomeCache base class since I don't see an implementation of it in your file. Assuming the crash is actually being caused in this chain somewhere continue to trace from BiomeCache.cleanupCache().
  2. If you bothered to skim through the method names in ServerConfigurationManager I wouldn't need to be more specific.
  3. usePortal was removed from the Minecraft file. Dimension transfer is now handled in MinecraftServer.getServerConfigurationManager();
  4. Just re-copy the code for the default teleporter. A lot of stuff changed and it added a call to a new function (name may still be obfuscated) that is what actually handles making a new portal now.
  5. You're going to want to look at the WorldChunkManager for the overworld (WorldChunkManagerGenerate or something like that) and ChunkProviderGenerate to see how the normal game does this. The GenLayer files will be important for this. You may end up having to do a full re-implementation of GenLayer and its subclasses like I did at first to get things working. GenLayer is important because its subclasses do things like setting biomeIDs for coordinates and changing biomeIDs are locations into other biomes (i.e. desert to desertHills). GenLayer also does some terrain manipulation that creates things like rivers and mushroom islands. I'll warn you now that custom biomes can be a PITA. Make sure your reference to the WorldChunkManager and ChunkProvider for your dimension are always the correct ones during world generation, otherwise you could end up with frustrating NullPointerExceptions. Also, make sure that whatever array of Biomes/biomeIDs you end up using (you'll understand where this applies later) is never given a null value or an invalid biomeID (say, for a biome that doesn't exist). I've gone through a lot of pain getting my dimension project to work, but currently it generates properly with caves, ravines, biomes, etc. It's all possible, just not for the faint of heart.
  6. Forge has funtions to register tools and tool effecvtiveness on initialization. Also, when block metadata changes you should replace the old block with a new one with the new valuem which will cause it tup update.
  7. Okay, assuming you're trying to use an actual item inside the inventory to render the held item, and not something odd (it was a little ambiguous), then you have access to the ItemStack in the inventory, and if you have access to an ItemStack then you can get the metadata value of whatever the ItemStack is and evaluate that.
  8. Wait you're using a custom ItemRenderer or something aren't you? Because that looked 3D
  9. As far as I know it should do that automatically if you map the block metadata properly to an item that stores it. My block has no problem having different textures in the inventory based on the ItemStack's damage value.
  10. Use the Block.getTextureFromSideAndMetadata(int side, int metadata){} method to set what texture from a spritesheet the block should be using, and then use a custom BlockRenderer to cause a texture update based on metadata. When I needed a metadata sensitive renderer for my block that acts like sand, I passed in the metadata value, stored it in a field, and applied it to all of the places that render the sides of the block. Here's a copy of that file: It's basically a clone of RenderFallingSand but I moved BlockRenderer.renderFallingSand into a local method and renamed it to be relevant. Oh and HINT: Use a spritesheet for blocks, not seperate files. It makes things convenient.
  11. You should have been looking in ItemTool the entire time...or possibly the superclass of ItemTool if it extends something besides Item. ItemSword wouldn't have had a lot of the code you actually needed to see because all of that is invisibly inherited from its superclass, just like all of the other tools, which is kind of the point of the ItemTool class in the first place.
  12. Sorry, I just got in high school. You'll be a couple steps ahead then I would argue that you can't really make assumptions based on age/education. In my high school you learn basic trig in geometry, and then real trig is entirely optional.
  13. Pretty sure something besides Forge causes this bug.
  14. In the portion of code that will open the GUI run a check against the player's currently equipped inventory item. EntityPlayer.inventory (which is an instance of InventoryPlayer) will have methods for getting the currently equipped item.
  15. I haven't messed with keybinds, but to store permanent information for the item there are two things you can try: 1. Using metadata in the item and having it act based on the metadata values 2. Using NBTTagCompounds; enchantments are an example of how items do this (all enchantments are stored in tag compounds).
  16. If the numbers change but nothing happens, then nothing is acting upon those numbers. I would look at the code for how mobs turn to face the player and figure out how to use that rotation code here. Once you get a working example you can translate it into what you actually want.
  17. Is this NBTTag function used in networks? I wouldn't know if it the NBTTag data can be transferred directly over a network, but it's used on the server side for the same purpose; saving game data to disk. If you need to pass the values over the network that's what packets are for. You send packets containing data back and forth between the client and server, and then you can act upon the received data.
  18. The way to store information like this beyond quitting is to store it in NBTTagCompounds. You can look at just about every Entity for examples of how they do this. NBTTagCompounds persist after quitting because the game writes them to actual save file stored on disk.
  19. I'm working on it, I've just been delayed because I have to teach myself some things.
  20. At least it leads to better overall quality.
  21. For me the hardest part has been my own self-confidence. I still haven't released anything I've created yet, simply because my self-confidence won't let me release a version where I'm still missing some of the important things I need to add...
  22. It looks like one of your installed mods is attempting to use a method that Forge deprecates. Forge deprecates "getCurrentPlayerStrVsBlock()" for a version of the method that uses metadata. Unfortunately I wouldn't be able to tell you which one it is.
  23. So I put in modloader, then modloadermp Hint.
  24. I'm going to add modifying whether the Player loses their inventory on death or not, and modifying drops to existing monsters to the list, though these two will be resolved shortly. I think adding a "status effect" like fire (i.e. acts basically exactly the same) that affects all Entities as a whole, rather than on a per-class basis, also goes on the list, though this one may also get resolved shortly, I'll be the first one to test it.
  25. What he said, but make sure you give your mod's folder a non-generic name or you'll end up like me, with probably at least 200 lines that have to be changed to rename the freaking folder. In my mod I created a static variable in my BaseMod that gives the texture directories to all items and blocks. I could just change the variable and all the texture paths will change. You should try doing that next time. Yeah my problem is I just started learning from the beginning with a random idea that I've slowly built into what I have now. I had no clue what I was doing that far back, lol. Even after a few sessions of cleaning things up, I can still look back at some earlier stuff and see the learning progression... Really, if I need to, I could just make a new item that does absolutely nothing different from the classless items except loads textures from a forge spritesheet, but I've been both lazy and busy...
×
×
  • Create New...

Important Information

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