Ruins (Structure Spawning System)

Ruins (Structure Spawning System)

23M Downloads

RuinMod "dimensionsToSpawnIn" incompatable with AdvancedRocketry Dimensions

CaptainStalfoss opened this issue ยท 5 comments

commented

Version:
Ruin mod 1.12.2, (latest version on the site) 17.3.

The "AdvancedRocketry" mod lets you create dimensions via a Config file.
While these dimensions work perfectly fine with ruins mod, You cannot use the "dimensionsToSpawnIn=" Function, because the dimensions are registered differently (i assume).

Does "dimensionsToSpawnIn=" support Dimension ID Numbers?
If not, i would think adding that support could fix the issue.
(When i tested, I tried both my dimensions name AND Number on different occasions, neither worked.)

The custom dimensions does not get listed in any Output.
However adding the ID number to the Ruin.txt still works, it's just the dimensionsToSpawnIn that's not working.

commented

No. The setting works by looking at the String ID key of a given dimension type. Numeric ID could mean anything and would not necessarily be the same on different clients.

Looking at the open source AdvancedRocketry: https://github.com/zmaster587/AdvancedRocketry/blob/master/src/main/java/zmaster587/advancedRocketry/dimension/DimensionManager.java
the keys appear to be "planet" and "space"

commented

After asking AdvancedRocketry, "planet" is the name of ALL custom Dimensions, only the numeric IDs are different.

commented

Well, that is not the "vanilla" way of doing it. To get the function you ask for, you would be better off asking their mod to identify their dimensions with string id each.

commented

"space" is the space station dimension.
"planet" i think is some beta world that has something to do with creations of the dimensions.
But im not sure about that one.

The other dimensions doesn't exists yet because the config Creates them.
And they don't have a set name until you make one as far as im aware.
Unless it's something different than the name you input, i should ask them about that.

commented

This is kind of a gray area, unfortunately, at least through Minecraft 1.12.2. Dimensions don't have names; dimension types do. There's not necessarily a one-to-one correspondence between dimensions and dimension types, though, so some mods (AdvancedRocketry and Galacticraft, for example) reuse a particular type for multiple dimensions. Doing so isn't wrong--vanilla Minecraft code allows for it--but it can have unfortunate consequences when interacting with other mods needing to identify dimensions by name.

Since Advanced Rocketry uses one dimension type "planet" for all its dimensions, therefore, there's no way for Ruins to distinguish one planet from another by dimension. However, if each planet has its own unique biomes or surface blocks, clever use of parameters like biomesToSpawnIn and acceptable_target_blocks may suffice to achieve the desired effect.

Note, however, dimensions registered via Forge do have uniquely identifying names in Minecraft 1.14 (and possibly 1.13...but who cares about 1.13 at this point). Ruins should probably use dimension names instead of type names going forward. Maybe even both, analogous to biome/biome types.

As a reminder: Ruins' use of (type) names instead of integer IDs is by design. Template authors can't know which IDs are assigned to which dimensions, as such assignments are usually configuration-dependent.