superckl / BiomeTweaker

Used to tweak various properties of biomes
Other
57 stars 9 forks source link

Please add an example custom biome to the Wiki #107

Closed Winddbourne closed 2 years ago

Winddbourne commented 7 years ago

It would be nice to see a biome built from the ground up added in addition to the desert world and changing the Tiaga into a nether biome.

Winddbourne commented 7 years ago

Another thing that generally should go under here . . . I don't see a command to add decorations to a biome. So if I'm creating a biome from scratch how do I add in different types of trees I want to spawn there?

Or if I want to add soul sand to the deserts how would I make nether wart spawn on it?

superckl commented 7 years ago

Keep in mind, this mod is called BiomeTweaker, not BiomeDesigner... I really only have the functionality to add new biomes in so you can create filler biomes to use with other mods.

Winddbourne commented 7 years ago

Very true, and I'm definitely getting good use out of it. I just always have issues telling what should be a valid tweak.

In 1.7.10 it seemed to be a minor tweak to just change what dimensions different biomes spawned in . . . but it turned out to not be possible at all. The same goes for height . . . I can lower it but then I get all this water flooding the world and getting rid of that would be problematic. I can solve it, of course, by removing all the water (I think) and adding more pond feature generation using another mod . . . but eeek! I certainly wasn't expecting all that water to begin with.

Here tweaking what decorations spawn in a biome seems like a valid tweak; but the only option I can find is removing features rather than adding them. Altering what sort of trees grow in a biome certainly seems like a minor/obvious thing but . . . then again I'm not looking at the code that would make it happen. lol

On the other hand as a custom spawn system it is 100% amazing. I can remove things from generating, add them to generation, set their spawn weight, even add them to different types of vanilla generators. I've got iron dropping silverfish spawning in caves now, and I completely removed skeletons, creepers, and zombies from my ever-day mod pack where they made no sense.

RiverC commented 6 years ago

You can use Recurrent Complex to add custom trees (they're literally tree decorations!) but I'd like to see a working "adds a custom biome" because I've stumbled through a bunch of steps not knowing what I'm doing wrong. At the moment I can't get my new biome to have new dictionary types, and I don't really see an error...

superckl commented 6 years ago

Custom trees are now a feature actually.

As for new dictionary types, it should be working just fine with the addDicTypes command.

RiverC commented 6 years ago

yes, I discovered my error on that. Nonetheless, the biome does not generate even with 1000 weight set for both warm and cool. Custom trees with Recurrent Complex works; you simply define some trees with a very high generation weight (to overwhelm any vanilla trees) and define them to only appear when a Biome Dictionary entry is present (i.e. in my case LARCH_TREES) this technique worked fine when I was editing an existing biome to change its trees, but the new Biome is never selected for generation... unsure as to why. I'm going to try a few other things first.

EDIT: not really sure what to do. I get this output in the biomes dir, so the biome should be valid, but it never shows up. How would I troubleshoot this?

{
  "ID": 40,
  "Name": "Larch Forest",
  "Resource Location": "biometweaker:larch_forest",
  "Class": "net.minecraft.world.biome.BiomeForest",
  "Root Height": 0.1,
  "Height Variation": 0.2,
  "Top Block": "minecraft:grass[snowy\u003dfalse]",
  "Filler Block": "minecraft:dirt[snowy\u003dfalse,variant\u003ddirt]",
  "Ocean Top Block": "Disabled. Activate in BiomeTweakerCore.",
  "Ocean Filler Block": "Disabled. Activate in BiomeTweakerCore.",
  "Actual Filler Blocks": "Disabled. Activate in BiomeTweakerCore.",
  "Grass Color": "Disabled. Activate in BiomeTweakerCore.",
  "Foliage Color": "Disabled. Activate in BiomeTweakerCore.",
  "Water Color": "16777215",
  "Temperature": 0.6,
  "Humidity": 0.6,
  "Water Tint": 16777215,
  "Enable Rain": true,
  "Enable Snow": false,
  "Dictionary Types": [
    "FOREST",
    "LARCH_TREES"
  ],
  "BiomeManager Entries": {
    "WARM Weights": [
      1000
    ],
    "COOL Weights": [
      1000
    ]
  },
  "Spawnable Creatures": [
    {
      "Entity Class": "net.minecraft.entity.passive.EntitySheep",
      "Weight": 12,
      "Min Group Count": 4,
      "Max Group Count": 4
    },
    {
      "Entity Class": "net.minecraft.entity.passive.EntityPig",
      "Weight": 10,
      "Min Group Count": 4,
      "Max Group Count": 4
    },
    {
      "Entity Class": "net.minecraft.entity.passive.EntityChicken",
      "Weight": 10,
      "Min Group Count": 4,
      "Max Group Count": 4
    },
    {
      "Entity Class": "net.minecraft.entity.passive.EntityCow",
      "Weight": 8,
      "Min Group Count": 4,
      "Max Group Count": 4
    }
  ],
  "Spawnable Monsters": [
    {
      "Entity Class": "net.minecraft.entity.monster.EntitySpider",
      "Weight": 100,
      "Min Group Count": 4,
      "Max Group Count": 4
    },
    {
      "Entity Class": "net.minecraft.entity.monster.EntityZombie",
      "Weight": 95,
      "Min Group Count": 4,
      "Max Group Count": 4
    },
    {
      "Entity Class": "net.minecraft.entity.monster.EntityZombieVillager",
      "Weight": 5,
      "Min Group Count": 1,
      "Max Group Count": 1
    },
    {
      "Entity Class": "net.minecraft.entity.monster.EntitySkeleton",
      "Weight": 100,
      "Min Group Count": 4,
      "Max Group Count": 4
    },
    {
      "Entity Class": "net.minecraft.entity.monster.EntityCreeper",
      "Weight": 100,
      "Min Group Count": 4,
      "Max Group Count": 4
    },
    {
      "Entity Class": "net.minecraft.entity.monster.EntitySlime",
      "Weight": 100,
      "Min Group Count": 4,
      "Max Group Count": 4
    },
    {
      "Entity Class": "net.minecraft.entity.monster.EntityEnderman",
      "Weight": 10,
      "Min Group Count": 1,
      "Max Group Count": 4
    },
    {
      "Entity Class": "net.minecraft.entity.monster.EntityWitch",
      "Weight": 5,
      "Min Group Count": 1,
      "Max Group Count": 1
    },
    {
      "Entity Class": "vazkii.quark.world.entity.EntityDweller",
      "Weight": 10,
      "Min Group Count": 1,
      "Max Group Count": 2
    },
    {
      "Entity Class": "vazkii.quark.world.entity.EntityAshen",
      "Weight": 10,
      "Min Group Count": 1,
      "Max Group Count": 2
    }
  ],
  "Spawnable Water Creatures": [
    {
      "Entity Class": "net.minecraft.entity.passive.EntitySquid",
      "Weight": 10,
      "Min Group Count": 4,
      "Max Group Count": 4
    }
  ],
  "Spawnable Cave Creatures": [
    {
      "Entity Class": "net.minecraft.entity.passive.EntityBat",
      "Weight": 10,
      "Min Group Count": 8,
      "Max Group Count": 8
    }
  ],
  "Spawn Biome": false,
  "Tweaked": true
}
superckl commented 6 years ago

Are you using a vanilla world type? That biome should definitely be appearing if you are. If you aren't, you need to add the biome to that mods biome weighting system.

RiverC commented 6 years ago

Had that idea the same time as you, hah. I disabled geographicraft, which would be the only mod messing with biome generation, and the new forests don't show up.

A bit stumped here.

superckl commented 6 years ago

Note sure what to tell you, honestly. I tried the script below:

Tweaker.setStage("BIOME_REGISTRY")
Tweaker.createBiome("larch_forest", "minecraft:forest")
larch = forBiomes("biometweaker:larch_forest")
larch.set("name", "Larch Forest")
larch.addToGeneration("WARM", 1000)
larch.addToGeneration("COOL", 1000)

Spawned directly in a Larch Forest... 2018-01-11_12 11 05

RiverC commented 6 years ago

Well, it's good to know it CAN work. Though I wonder if it still works if you copy Birch Forest instead?

superckl commented 6 years ago

Yes, it does.

2018-01-11_12 33 44

RiverC commented 6 years ago

Okay. it seems to have worked when I used forest, but not when I used birch forest. 2018-01-11_15 37 01 And generation is a bit slower... on the topic of trees, it would be nice to at least be able to manipulate the trees list for a biome, which is much easier than trying to design trees (Recurrent Complex already allows this and its interface is pretty mature, so re-developing it seems a bit redundant)

So not really creating trees but at least manipulating the biome's tree properties i.e density, list of possible trees and their weights (if it even works that way.) etc. I'd love to be able to add the trees to these biomes with some normal weights like 1 or 2 rather than 100 or 1000,

Anyway, thanks for the help.

EDIT: Recurrent Complex CAN generate trees for a new biome, but there are some things about it that are tricky. Mainly, it will simply generate trees right on top of one another unless there is some solid block beside the trunk. If you make the only solid blocks the trunk (leaves don't count) it will generate them right next to each other and hog memory terribly. I'll put in a bug request.

superckl commented 6 years ago

This is starting to turn into a new topic. If you would like me to work on tree generation, please open a new issue detailing it.

RiverC commented 6 years ago

No. But I think this issue can be resolved by updating the wiki since we've confirmed a working script for making a new biome!

Note: Climate Control (Geographicraft) does not seem to "normally" support custom biomes. I'm sure there's a way to do it, but I can't find the documentation I need to know where to put the biome information so CC knows they exist and can be added to generation.

superckl commented 2 years ago

BiomeTweaker for MC 1.12 is now EOL, so I will not be addressing bugs that are related to BT - MC interactions. If this bug persists in BiomeTweaker for MC 1.18, please submit a new issue.