elucent / eidolon

Spooky Minecraft mod.
Other
30 stars 27 forks source link

Feature Request - dimension config whitelist #122

Open CuboidDroid opened 3 years ago

CuboidDroid commented 3 years ago

First of all - love the mod! Amazing work :-)

Would it be possible to add configuration options to world-gen and spawning options to limit by dimension?

For example, a whitelist approach rather than just true/false so that as a modpack developer we have options to fine-tune the gameplay experience? e.g. rather than just true / false, be able to specify an array that is a whitelist of dimensions. e.g.

# current global behaviour to allow labs to spawn:
labEnabled = true

# current global behaviour to stop labs from spawning:
labEnabled = false

# suggested whitelist concept - this one allows labs to spawn in the overworld, and in 
# 2 of 3 of my custom dimensions, by not in my_mod:my_dimension2 or mythicbotany:alheim
# for example
labEnabled = ["minecraft:overworld", "my_mod:my_dimension1", "my_mod:my_dimension3" ]

I'm looking at putting together an new magic-focussed modpack but don't want everything immediately available, and for the world to be "littered" with tons of extra blocks and mobs from the various magic mods - instead I am hoping to be able to create custom dimensions, and then have a couple of magic mods per dimension to avoid "overload", and have an opportunity to properly walk players through a mod in some detail without them being distracted by all the other bits and bobs.

At the moment it seems my choices are essentially "on" or "off" globally, which limits my options for modpack inclusion.

If you're not able to do this, then do you know if I were to turn off spawning globally, would I be able to selectively include things like mobs and features and structures in my custom dimensions anyway by creating custom biome JSON's that explicitly include them even with the global config off? e.g.

{
  "name": "my_mod:my_dimension2",
  "surface_builder": "minecraft:grass",

... trimmed ...

  "starts": [
    "eidolon:lab", // <--------- something like this?
    "minecraft:mineshaft"
  ],
  "spawners": {
    "monster": [
      {
        "type": "eidolon:wraith", // <--------- something like this?
        "weight": 100,
        "minCount": 4,
        "maxCount": 4
      },

... trimmed ...

    ],
    "creature": [],
    "ambient": [],
    "water_creature": [],
    "water_ambient": [],
    "misc": []
  },

... trimmed ...

  "features": [
    [],
    [
      "minecraft:lake_water",
      "minecraft:lake_lava"
    ],
    [],
    [
      "minecraft:monster_room"
    ],
    [],
    [],
    [
      "eidolon:lead_ore",  // <--------- something like this?
... trimmed ...
      "minecraft:disk_gravel"
    ],
    [
    ],
    [
      "minecraft:patch_tall_grass_2",
      "minecraft:plain_vegetation",
      "minecraft:flower_plain_decorated",
      "minecraft:patch_grass_plain",
      "minecraft:brown_mushroom_normal",
      "minecraft:red_mushroom_normal",
      "minecraft:patch_sugar_cane",
      "minecraft:patch_pumpkin",
      "minecraft:spring_water",
      "minecraft:spring_lava",
      "botania:mystical_flowers"
    ],
    [
      "minecraft:freeze_top_layer"
    ]
  ]
}

Any help (or advice if this is already possible in some other way to achieve the same goal) would be greatly appreciated! I'd really love to be able to showcase Eidolon in a modpack in as "clean" a way as possible.

Even if you decide not to do anything with this feature request - thanks for all the effort you've put into creating such a wonderful magic mod!

CuboidDroid commented 3 years ago

p.s. related to similar request in issue #98