Jump to content

LogicTechCorp

Forge Modder
  • Posts

    260
  • Joined

  • Last visited

Posts posted by LogicTechCorp

  1. I have it all working correctly, but would like to know if there is something I am doing incorrectly. I decide to use a world capability that saves the necessary data for each chunk. When generating Nether chunks, I check to see if they contain a certain biome and if they do, I add them to a map which the world capability uses to store data about each chunk. I then tick the chunk data if the corresponding chunk is loaded. Here are the classes:

     

    Capability:

    https://github.com/MineEx/NetherEx/blob/243f2e00389e8b8ac024f80100e1bc2ce9b7b6bb/src/main/java/nex/capability/CapabilityBlightChunkData.java

     

    Tick Handler:

    https://github.com/MineEx/NetherEx/blob/243f2e00389e8b8ac024f80100e1bc2ce9b7b6bb/src/main/java/nex/handler/WorldHandler.java#L65-L76

     

    Chunk Generator:

    https://github.com/MineEx/NetherEx/blob/243f2e00389e8b8ac024f80100e1bc2ce9b7b6bb/src/main/java/nex/world/gen/ChunkGeneratorNetherEx.java#L386-L409

  2. Hello. I want to create a biome that slowly spreads to surrounding biomes. What would be the best way to achieve this? Also, I want its placement based the locations of a biome in the Nether. For example, biome A is at 80 x and 800 z in the Nether and biome B is at 10 x and 100 z in the Overworld. How feasible would this be? I am already overriding the Nether to generate my own biomes and structures. I don't want the biome to generate naturally with other biomes, but I want it to appear as a few blocks that slowly spread out. Any help is appreciated.

  3. When creating a config using the Configuration class, I can provide a config version, but if I create an annotation based config there is no option to provide a config version. Is there something I am not seeing or do I just have to do it another way?

  4. I was able to get Villages to spawn in the Nether by copying the original MapGenVillage class and making one adjustment. Everything works fine except for the fact that they have a tendency to spawn in walls. Instead of using World#getTopSolidOrLiquidBlock I created my own modified version. I know this is the reason why the Villages are spawning in walls but I am not sure on how to issue a fix. The only thing I can think of is trying to find a part of the chunk that is mostly air but I am unsure how.

     

    Relevant Classes:

    Modiefied getTopSolidOrLiquidBlock

    MapGenVillage

    StructureNetherVillage

     

     

  5. I ended up changing the abstract BiomeGenerator class into an interface which mod developers can implement. I also changed the how custom generators are registered. The registry now requires an instance of the custom generator. I use this instance to invoke the deserialize method that the interface provides.

     

    Updated classes if anyone is interested:

     

    Generator Interface:

    https://github.com/LogicTechCorp/NetherEx/blob/279a3f40294c5cb347a6ef308babfd2001272231/src/main/java/nex/api/world/gen/feature/IBiomeFeature.java#L27

     

    Generator Registry:

    https://github.com/LogicTechCorp/NetherEx/blob/279a3f40294c5cb347a6ef308babfd2001272231/src/main/java/nex/world/gen/feature/BiomeFeatureManager.java#L33

  6. In my mod, I have a custom world generation system that allows the player to define their own generators per biome via json files. The system works fine, but I am trying to allow other mod developers to define their own custom generator class that the player can use. To define a custom generator, a class must extend my AbstractGenerator class. The AbstractGenerator class is abstract and it provides two abstract methods, one to generate blocks in the world and the other to deserialize a json file into the custom generator. The mod developers have to register their custom generator class and a string to identify the class with my mod. To start the deserialization process, I search the json for the string identifier that the generator class was registered with and then I use it to lookup the class it was registered with. Once the class has been found, I call GeneratorClass.newInstance().deserialize(jsonConfig) to deserialize the json file into a new instance of the generator. I know that this is not the most ideal way of handling it and that it can lead to a crash if the mod developer does not provide a no argument constructor. My question is, how I can improve this system to make it better? Sorry if my post is confusing, hopefully the provided files clear up any questions.

     

    Generator Registry:

    https://github.com/LogicTechCorp/NetherEx/blob/b7375eb2fd89d122ceaa312eb3cb5766a66ec72f/src/main/java/nex/init/NetherExBiomeFeatures.java#L34

     

    Generator Json File:

    https://github.com/LogicTechCorp/NetherEx/blob/b7375eb2fd89d122ceaa312eb3cb5766a66ec72f/src/main/resources/assets/nex/biome_configs/NetherEx/Hell/feature_scatter_fire_nex_hell.json#L3

     

    Generator Class Lookup:

    https://github.com/LogicTechCorp/NetherEx/blob/b7375eb2fd89d122ceaa312eb3cb5766a66ec72f/src/main/java/nex/world/gen/BiomeFeatureManager.java#L48

     

    Generator Class:

    https://github.com/LogicTechCorp/NetherEx/blob/b7375eb2fd89d122ceaa312eb3cb5766a66ec72f/src/main/java/nex/world/gen/feature/BiomeFeatureScatter.java#L35

     

    Abstract Generator Class:

    https://github.com/LogicTechCorp/NetherEx/blob/b7375eb2fd89d122ceaa312eb3cb5766a66ec72f/src/main/java/nex/world/gen/feature/BiomeFeature.java#L30

  7. I use Intellij IDEA for my IDE and I would like to know how to develop for two different versions of Minecraft. Is it possible to use the same project or would I need to set up another one for the other version? I do use GitHub for my mod and I have different branches for each version.

  8. I am trying to make a portal that works just like the Nether Portal, but I am stuck on implementing my own version of BlockPortal.Size. I would like for my portal to work standing up and laying down, so on all axes, but I am not sure on how I would adapt the class to make this work. What would be the best way to achieve this? All help is appreciated.

  9. I am replacing the Nether with a custom version and I am having an issue where the world stops loading chunks. If you cause a block update, the chunk the update was in loads, but when you go to quit the game it hangs and does not exit to the main menu. I have narrowed it down to be an issue with my custom biomes. I determined this by removing my biomes from the Nether and adding in random ones from Vanilla. The issue does not happen very often, but it becomes a lot more noticeable when the mod is played with Optifine.

     

    Biome Registry:

    https://github.com/LogicTechCorp/NetherEx/blob/d182c5790d7d1781982e750e94b0a41bcef4bcca/src/main/java/nex/init/NetherExBiomes.java

     

    Abstract Biome Class:

    https://github.com/LogicTechCorp/NetherEx/blob/d182c5790d7d1781982e750e94b0a41bcef4bcca/src/main/java/nex/world/biome/BiomeNetherEx.java

     

    Biome Classes:

    https://github.com/LogicTechCorp/NetherEx/blob/d182c5790d7d1781982e750e94b0a41bcef4bcca/src/main/java/nex/world/biome/BiomeHell.java

    https://github.com/LogicTechCorp/NetherEx/blob/d182c5790d7d1781982e750e94b0a41bcef4bcca/src/main/java/nex/world/biome/BiomeRuthlessSands.java

    https://github.com/LogicTechCorp/NetherEx/blob/d182c5790d7d1781982e750e94b0a41bcef4bcca/src/main/java/nex/world/biome/BiomeFungiForest.java

    https://github.com/LogicTechCorp/NetherEx/blob/d182c5790d7d1781982e750e94b0a41bcef4bcca/src/main/java/nex/world/biome/BiomeTorridWasteland.java

    https://github.com/LogicTechCorp/NetherEx/blob/d182c5790d7d1781982e750e94b0a41bcef4bcca/src/main/java/nex/world/biome/BiomeArcticAbyss.java

  10. I have implemented my own villages. They work as expected, but when It spawns in a golem, the golem does not move and it cannot be hit. I have tested it with my own golem and vanilla's golem and it is the same result. It is the same code as that the Vanilla villages use.

     

    Here is the related class:

    https://github.com/LogicTechCorp/NetherEx/blob/1ed4386bc29f493b65aa3802129fc244b43ebd9f/src/main/java/nex/village/NetherVillage.java#L70-L100

     

    EDIT: I was passing in the wrong world type in the WorldTickEvent.

  11. Hello, I am copying some files from my mods Assets folder to the Config Folder. It works correctly in the Dev Environment, but when the mod is exported to a Jar, it throws a FileNotFoundException when it loads. Here is how I do it: https://github.com/LogicTechCorp/NetherEx/blob/1.11.x/src/main/java/nex/village/trade/TradeListManager.java#L69. What am I doing wrong?

  12. 46 minutes ago, Choonster said:

    I found the issue: Only the class for the top-level category (i.e. the one annotated with @Config) can have static fields, all other category classes must use non-static fields.

     

    I've fixed this and pushed the fix to a fork of your repository. You can view the changes and/or merge them here.

    Thank you for all of your help. I really appreciate it.

  13. 1 hour ago, Choonster said:

    What exactly do you mean by "not working"?

    It creates a Config file that contains categories but no options.

     

    Edit:

     

    It looks like this

    # Configuration file
    
    nex {
    
        client {
        }
    
        dimension {
        }
    
        block {
        }
    
        potion_effect {
        }
    
        entity {
        }
    
        biome {
        }
    
    }

     

    Before I updated it had more sub categories and it had a lot of config options.

×
×
  • Create New...

Important Information

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