From d3fcd89b336c0a675449ec9def363b06bdf70f81 Mon Sep 17 00:00:00 2001 From: kalwantspizza Date: Mon, 3 Nov 2025 19:32:47 -0500 Subject: [PATCH 1/4] Dimension Datagen Take 1 --- .../assets/creatingspace/lang/en_ud.json | 4 +- .../tags/block/mineable/pickaxe.json | 1 + .../content/datagen/CSDatagen.java | 4 + .../content/datagen/CSWorldGenProvider.java | 26 +++ .../datagen/worldgen/CSDimensionGen.java | 153 ++++++++++++++++++ .../datagen/worldgen/CSDimensionTypeGen.java | 145 +++++++++++++++++ .../CSRocketAccessibleDimensionGen.java | 108 +++++++++++++ .../init/worldgen/DimensionInit.java | 61 ++++--- .../earth_orbit.json | 0 .../mars.json | 0 .../mars_orbit.json | 0 .../moon_orbit.json | 0 .../the_moon.json | 0 .../venus.json | 0 .../earth_orbit.json | 0 .../{dimension => dimension-x}/mars.json | 0 .../mars_orbit.json | 0 .../moon_orbit.json | 0 .../{dimension => dimension-x}/the_moon.json | 0 .../{dimension => dimension-x}/venus.json | 0 .../earth_orbit.json | 0 .../mars.json | 0 .../mars_orbit.json | 0 .../moon_orbit.json | 0 .../the_moon.json | 0 .../venus.json | 0 26 files changed, 479 insertions(+), 23 deletions(-) create mode 100644 src/main/java/com/rae/creatingspace/content/datagen/CSWorldGenProvider.java create mode 100644 src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSDimensionGen.java create mode 100644 src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSDimensionTypeGen.java create mode 100644 src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSRocketAccessibleDimensionGen.java rename src/main/resources/data/creatingspace/creatingspace/{rocket_accessible_dimension => rocket_accessible_dimension-x}/earth_orbit.json (100%) rename src/main/resources/data/creatingspace/creatingspace/{rocket_accessible_dimension => rocket_accessible_dimension-x}/mars.json (100%) rename src/main/resources/data/creatingspace/creatingspace/{rocket_accessible_dimension => rocket_accessible_dimension-x}/mars_orbit.json (100%) rename src/main/resources/data/creatingspace/creatingspace/{rocket_accessible_dimension => rocket_accessible_dimension-x}/moon_orbit.json (100%) rename src/main/resources/data/creatingspace/creatingspace/{rocket_accessible_dimension => rocket_accessible_dimension-x}/the_moon.json (100%) rename src/main/resources/data/creatingspace/creatingspace/{rocket_accessible_dimension => rocket_accessible_dimension-x}/venus.json (100%) rename src/main/resources/data/creatingspace/{dimension => dimension-x}/earth_orbit.json (100%) rename src/main/resources/data/creatingspace/{dimension => dimension-x}/mars.json (100%) rename src/main/resources/data/creatingspace/{dimension => dimension-x}/mars_orbit.json (100%) rename src/main/resources/data/creatingspace/{dimension => dimension-x}/moon_orbit.json (100%) rename src/main/resources/data/creatingspace/{dimension => dimension-x}/the_moon.json (100%) rename src/main/resources/data/creatingspace/{dimension => dimension-x}/venus.json (100%) rename src/main/resources/data/creatingspace/{dimension_type => dimension_type-x}/earth_orbit.json (100%) rename src/main/resources/data/creatingspace/{dimension_type => dimension_type-x}/mars.json (100%) rename src/main/resources/data/creatingspace/{dimension_type => dimension_type-x}/mars_orbit.json (100%) rename src/main/resources/data/creatingspace/{dimension_type => dimension_type-x}/moon_orbit.json (100%) rename src/main/resources/data/creatingspace/{dimension_type => dimension_type-x}/the_moon.json (100%) rename src/main/resources/data/creatingspace/{dimension_type => dimension_type-x}/venus.json (100%) diff --git a/src/generated/resources/assets/creatingspace/lang/en_ud.json b/src/generated/resources/assets/creatingspace/lang/en_ud.json index e7a97ea4..3c7f3ed0 100644 --- a/src/generated/resources/assets/creatingspace/lang/en_ud.json +++ b/src/generated/resources/assets/creatingspace/lang/en_ud.json @@ -37,6 +37,8 @@ "block.creatingspace.hastelloy_block": "ʞɔoןᗺ ʎoןןǝʇsɐH", "block.creatingspace.inconel_block": "ʞɔoןᗺ ןǝuoɔuI", "block.creatingspace.large_nickel_sulfate_bud": "pnᗺ ǝʇɐɟןnS ןǝʞɔıN ǝbɹɐꞀ", + "block.creatingspace.ladder_nickel": "ןǝʞɔıN ɹǝppɐꞀ", + "block.creatingspace.large_crystal_bud": "pnᗺ ןɐʇsʎɹƆ ǝbɹɐꞀ", "block.creatingspace.mars_regolith": "ɥʇıןobǝᴚ sɹɐW", "block.creatingspace.mars_stone": "ǝuoʇS sɹɐW", "block.creatingspace.mars_surface_regolith": "ɥʇıןobǝᴚ ǝɔɐɟɹnS sɹɐW", @@ -324,8 +326,6 @@ "item.creatingspace.nickel_ingot": "ʇobuI ןǝʞɔıN", "item.creatingspace.nickel_nugget": "ʇǝbbnN ןǝʞɔıN", "item.creatingspace.nickel_sheet": "ʇǝǝɥS ןǝʞɔıN", - "item.creatingspace.nickel_sulfate_catalyst": "ʇsʎןɐʇɐƆ ǝʇɐɟןnS ןǝʞɔıN", - "item.creatingspace.nickel_sulfate_shard": "pɹɐɥS ǝʇɐɟןnS ןǝʞɔıN", "item.creatingspace.power_pack": "ʞɔɐԀ ɹǝʍoԀ", "item.creatingspace.raw_aluminum": "ɯnuıɯnןⱯ ʍɐᴚ", "item.creatingspace.raw_cobalt": "ʇןɐqoƆ ʍɐᴚ", diff --git a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json index ed7eab6b..a3c88428 100644 --- a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -25,6 +25,7 @@ "creatingspace:moon_nickel_ore", "creatingspace:raw_nickel_block", "creatingspace:nickel_block", + "creatingspace:ladder_nickel", "creatingspace:moon_cobalt_ore", "creatingspace:raw_cobalt_block", "creatingspace:moon_aluminum_ore", diff --git a/src/main/java/com/rae/creatingspace/content/datagen/CSDatagen.java b/src/main/java/com/rae/creatingspace/content/datagen/CSDatagen.java index 29b4b370..0e4461d2 100644 --- a/src/main/java/com/rae/creatingspace/content/datagen/CSDatagen.java +++ b/src/main/java/com/rae/creatingspace/content/datagen/CSDatagen.java @@ -8,6 +8,7 @@ import com.simibubi.create.Create; import com.simibubi.create.foundation.utility.FilesHelper; import com.tterrag.registrate.providers.ProviderType; +import com.tterrag.registrate.providers.RegistrateDataProvider; import net.minecraft.core.HolderLookup; import net.minecraft.data.DataGenerator; import net.minecraft.data.PackOutput; @@ -18,6 +19,8 @@ import java.util.concurrent.CompletableFuture; import java.util.function.BiConsumer; +import static com.rae.creatingspace.CreatingSpace.REGISTRATE; + public class CSDatagen { public static void gatherDataHighPriority(GatherDataEvent event) { if (event.getMods().contains(CreatingSpace.MODID)) @@ -52,6 +55,7 @@ public static void gatherData(GatherDataEvent event) { //generator.addProvider(true, new EngineSequencedAssemblyProvider(output)); // it doesn't quite work. the output is wrong right now and it's missing some of it + generator.addProvider(true, new CSWorldGenProvider(output, lookupProvider)); // event.getGenerator().addProvider(true, new RegistrateDataProvider(REGISTRATE, CreatingSpace.MODID, event)); } diff --git a/src/main/java/com/rae/creatingspace/content/datagen/CSWorldGenProvider.java b/src/main/java/com/rae/creatingspace/content/datagen/CSWorldGenProvider.java new file mode 100644 index 00000000..6869e728 --- /dev/null +++ b/src/main/java/com/rae/creatingspace/content/datagen/CSWorldGenProvider.java @@ -0,0 +1,26 @@ +package com.rae.creatingspace.content.datagen; + +import com.rae.creatingspace.CreatingSpace; +import com.rae.creatingspace.api.planets.RocketAccessibleDimension; +import com.rae.creatingspace.content.datagen.worldgen.CSDimensionGen; +import com.rae.creatingspace.content.datagen.worldgen.CSDimensionTypeGen; +import com.rae.creatingspace.content.datagen.worldgen.CSRocketAccessibleDimensionGen; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.RegistrySetBuilder; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.PackOutput; +import net.neoforged.neoforge.common.data.DatapackBuiltinEntriesProvider; + +import java.util.Set; +import java.util.concurrent.CompletableFuture; + +public class CSWorldGenProvider extends DatapackBuiltinEntriesProvider { + public static final RegistrySetBuilder BUILDER = new RegistrySetBuilder() + .add(Registries.DIMENSION_TYPE, CSDimensionTypeGen::bootstrap) + .add(Registries.LEVEL_STEM, CSDimensionGen::bootstrap) + .add(RocketAccessibleDimension.REGISTRY_KEY, CSRocketAccessibleDimensionGen::bootstrap); + + public CSWorldGenProvider(PackOutput output, CompletableFuture registries) { + super(output, registries, BUILDER, Set.of(CreatingSpace.MODID)); + } +} \ No newline at end of file diff --git a/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSDimensionGen.java b/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSDimensionGen.java new file mode 100644 index 00000000..5fddde11 --- /dev/null +++ b/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSDimensionGen.java @@ -0,0 +1,153 @@ +package com.rae.creatingspace.content.datagen.worldgen; + +import com.mojang.datafixers.util.Pair; +import net.minecraft.core.Holder; +import net.minecraft.core.HolderGetter; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.worldgen.BootstrapContext; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.biome.FixedBiomeSource; +import net.minecraft.world.level.biome.MultiNoiseBiomeSource; +import net.minecraft.world.level.biome.Climate; +import net.minecraft.world.level.dimension.DimensionType; +import net.minecraft.world.level.dimension.LevelStem; +import net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator; +import net.minecraft.world.level.levelgen.NoiseGeneratorSettings; +import net.minecraft.world.level.levelgen.FlatLevelSource; +import net.minecraft.world.level.levelgen.flat.FlatLevelGeneratorSettings; + +import java.util.List; +import java.util.Optional; + +import static com.rae.creatingspace.CreatingSpace.resource; +import static com.rae.creatingspace.init.worldgen.DimensionInit.*; + +record BiomeParams( + String name, + float tempMin, float tempMax, + float humidMin, float humidMax, + float contMin, float contMax, + float erosionMin, float erosionMax, + float weirdMin, float weirdMax, + float depthMin, float depthMax, + float offset +) { + public Climate.ParameterPoint toParameterPoint() { + return Climate.parameters( + Climate.Parameter.span(tempMin, tempMax), + Climate.Parameter.span(humidMin, humidMax), + Climate.Parameter.span(contMin, contMax), + Climate.Parameter.span(erosionMin, erosionMax), + Climate.Parameter.span(depthMin, depthMax), + Climate.Parameter.span(weirdMin, weirdMax), + offset + ); + } +} + +public class CSDimensionGen { + + private static ResourceKey key(String name) { + return ResourceKey.create(Registries.LEVEL_STEM, resource(name)); + } + + public static void bootstrap(BootstrapContext context) { + HolderGetter dimTypeGetter = context.lookup(Registries.DIMENSION_TYPE); + HolderGetter noiseGetter = context.lookup(Registries.NOISE_SETTINGS); + HolderGetter biomeGetter = context.lookup(Registries.BIOME); + + // Orbits (flat) + registerFlatOrbit(context, EARTH_ORBIT_STEM_KEY, EARTH_ORBIT_TYPE, biomeGetter); + registerFlatOrbit(context, MARS_ORBIT_STEM_KEY, MARS_ORBIT_TYPE, biomeGetter); + registerFlatOrbit(context, MOON_ORBIT_STEM_KEY, MOON_ORBIT_TYPE, biomeGetter); +// registerFlatOrbit(context, VENUS_ORBIT_STEM_KEY, VENUS_ORBIT_TYPE, biomeGetter); + + // Terrain worlds (noise-based) + registerFixedNoiseWorld(context, MARS_STEM_KEY, MARS_TYPE, "mars_noise", "mars_plains", noiseGetter, biomeGetter); + registerMultiNoiseWorld(context, MOON_STEM_KEY, MOON_TYPE, "moon_noise", + List.of( + new BiomeParams("moon_plains", -1F, 1F, -1F, 1F, -1F, 1F, -1F, 1F, -1F, 1F, 0.0F, 0.0F, 0.0F), + new BiomeParams("moon_cave", -1F, 1F, -1F, 1F, -1F, 1F, -1F, 1F, -1F, 1F, 0.2F, 0.9F, 0.0F) + ), + noiseGetter, biomeGetter); + registerMultiNoiseWorld(context, VENUS_STEM_KEY, VENUS_TYPE, "venus", + List.of( + new BiomeParams("venus", 0.0F, 0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F), + new BiomeParams("venus_hellground", 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, 1.0F, 0.0F, 0.0F, 0.0F) + ), + noiseGetter, biomeGetter); + } + + private static void registerFlatOrbit(BootstrapContext context, + ResourceKey stemKey, + ResourceKey typeKey, + HolderGetter biomeGetter) { + + var biomeHolder = biomeGetter.getOrThrow(ResourceKey.create(Registries.BIOME, resource("space"))); + + // --- Create an empty flat world (no structures, no layers, no features) --- + var flatSettings = new FlatLevelGeneratorSettings( + Optional.empty(), // no structures + biomeHolder, // space biome + List.of() // no layers + ); + + var flatGenerator = new FlatLevelSource(flatSettings); + + context.register(stemKey, new LevelStem( + context.lookup(Registries.DIMENSION_TYPE).getOrThrow(typeKey), + flatGenerator + )); + } + + private static void registerFixedNoiseWorld(BootstrapContext context, + ResourceKey stemKey, + ResourceKey typeKey, + String noise, String biomeName, + HolderGetter noiseGetter, + HolderGetter biomeGetter) { + var biomeSource = new FixedBiomeSource( + biomeGetter.getOrThrow(ResourceKey.create(Registries.BIOME, resource(biomeName))) + ); + + context.register(stemKey, new LevelStem( + context.lookup(Registries.DIMENSION_TYPE).getOrThrow(typeKey), + new NoiseBasedChunkGenerator( + biomeSource, + noiseGetter.getOrThrow(ResourceKey.create(Registries.NOISE_SETTINGS, resource(noise))) + ) + )); + } + + private static void registerMultiNoiseWorld( + BootstrapContext context, + ResourceKey stemKey, + ResourceKey typeKey, + String noise, + List biomeParams, + HolderGetter noiseGetter, + HolderGetter biomeGetter) { + + var biomeEntries = biomeParams.stream() + .map(params -> { + var biomeKey = ResourceKey.create(Registries.BIOME, resource(params.name())); + var biomeHolder = biomeGetter.getOrThrow(biomeKey); + return Pair.of(params.toParameterPoint(), biomeHolder); + }) + .toList(); + + var parameterList = new Climate.ParameterList>( + biomeEntries.stream() + .map(entry -> Pair.of(entry.getFirst(), (Holder) entry.getSecond())) + .toList() + ); + var biomeSource = MultiNoiseBiomeSource.createFromList(parameterList); + var noiseSettings = noiseGetter.getOrThrow(ResourceKey.create(Registries.NOISE_SETTINGS, resource(noise))); + + context.register(stemKey, new LevelStem( + context.lookup(Registries.DIMENSION_TYPE).getOrThrow(typeKey), + new NoiseBasedChunkGenerator(biomeSource, noiseSettings) + )); + } +} \ No newline at end of file diff --git a/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSDimensionTypeGen.java b/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSDimensionTypeGen.java new file mode 100644 index 00000000..6e2ab06a --- /dev/null +++ b/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSDimensionTypeGen.java @@ -0,0 +1,145 @@ +package com.rae.creatingspace.content.datagen.worldgen; + +import net.minecraft.tags.BlockTags; +import net.minecraft.world.level.dimension.DimensionType; +import net.minecraft.data.worldgen.BootstrapContext; + +import java.util.OptionalLong; + +import static com.rae.creatingspace.CreatingSpace.resource; +import static com.rae.creatingspace.init.worldgen.DimensionInit.*; + +public class CSDimensionTypeGen { + private static final int minY = -64; + private static final int dimHeight = 384; + private static final int dimLogicalHeight = 384; + + public static DimensionType earthOrbit() { + return new DimensionType( + OptionalLong.empty(), // normal day/night cycle + true, // has skylight + false, // no ceiling + false, // not ultrawarm (Nether-like) + true, // natural + 1.0, // coordinate scale + true, // beds work + true, // respawn anchor works + minY, // minY + dimHeight, // height + dimLogicalHeight, // logical height + BlockTags.INFINIBURN_OVERWORLD, + resource("earth_orbit"), + 0, + new DimensionType.MonsterSettings(true, false, net.minecraft.util.valueproviders.ConstantInt.of(0), 7) + ); + } + + public static DimensionType mars() { + return new DimensionType( + OptionalLong.empty(), // normal day/night cycle + true, // has skylight + false, // no ceiling + false, // not ultrawarm (Nether-like) + true, // natural + 1.0, // coordinate scale + true, // beds work + true, // respawn anchor works + minY, // minY + dimHeight, // height + dimLogicalHeight, // logical height + BlockTags.INFINIBURN_OVERWORLD, + resource("mars"), + 0, + new DimensionType.MonsterSettings(true, false, net.minecraft.util.valueproviders.ConstantInt.of(0), 7) + ); + } + + public static DimensionType marsOrbit() { + return new DimensionType( + OptionalLong.empty(), // normal day/night cycle + true, // has skylight + false, // no ceiling + false, // not ultrawarm (Nether-like) + true, // natural + 1.0, // coordinate scale + true, // beds work + true, // respawn anchor works + minY, // minY + dimHeight, // height + dimLogicalHeight, // logical height + BlockTags.INFINIBURN_OVERWORLD, + resource("mars_orbit"), + 0, + new DimensionType.MonsterSettings(true, false, net.minecraft.util.valueproviders.ConstantInt.of(0), 7) + ); + } + + public static DimensionType moonOrbit() { + return new DimensionType( + OptionalLong.empty(), // normal day/night cycle + true, // has skylight + false, // no ceiling + false, // not ultrawarm (Nether-like) + true, // natural + 1.0, // coordinate scale + true, // beds work + true, // respawn anchor works + minY, // minY + dimHeight, // height + dimLogicalHeight, // logical height + BlockTags.INFINIBURN_OVERWORLD, + resource("moon_orbit"), + 0, + new DimensionType.MonsterSettings(true, false, net.minecraft.util.valueproviders.ConstantInt.of(0), 7) + ); + } + + public static DimensionType theMoon() { + return new DimensionType( + OptionalLong.empty(), // normal day/night cycle + true, // has skylight + false, // no ceiling + false, // not ultrawarm (Nether-like) + true, // natural + 1.0, // coordinate scale + true, // beds work + true, // respawn anchor works + minY, // minY + dimHeight, // height + dimLogicalHeight, // logical height + BlockTags.INFINIBURN_OVERWORLD, + resource("the_moon"), + 0, + new DimensionType.MonsterSettings(true, false, net.minecraft.util.valueproviders.ConstantInt.of(0), 7) + ); + } + + public static DimensionType venus() { + return new DimensionType( + OptionalLong.empty(), // normal day/night cycle + true, // has skylight + false, // no ceiling + false, // not ultrawarm (Nether-like) + true, // natural + 1.0, // coordinate scale + true, // beds work + true, // respawn anchor works + minY, // minY + dimHeight, // height + dimLogicalHeight, // logical height + BlockTags.INFINIBURN_OVERWORLD, + resource("venus"), + 0, + new DimensionType.MonsterSettings(true, false, net.minecraft.util.valueproviders.ConstantInt.of(0), 7) + ); + } + + public static void bootstrap(BootstrapContext context) { + context.register(EARTH_ORBIT_TYPE, earthOrbit()); + context.register(MARS_TYPE, mars()); + context.register(MARS_ORBIT_TYPE, marsOrbit()); + context.register(MOON_ORBIT_TYPE, moonOrbit()); + context.register(MOON_TYPE, theMoon()); + context.register(VENUS_TYPE, venus()); + } +} diff --git a/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSRocketAccessibleDimensionGen.java b/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSRocketAccessibleDimensionGen.java new file mode 100644 index 00000000..f1bbfeff --- /dev/null +++ b/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSRocketAccessibleDimensionGen.java @@ -0,0 +1,108 @@ +package com.rae.creatingspace.content.datagen.worldgen; + +import com.rae.creatingspace.api.planets.RocketAccessibleDimension; +import net.minecraft.data.worldgen.BootstrapContext; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; + +import java.util.Map; + +import static com.rae.creatingspace.CreatingSpace.resource; + +public class CSRocketAccessibleDimensionGen { + + public static void bootstrap(BootstrapContext context) { + // --- Earth Orbit --- + context.register( + ResourceKey.create(RocketAccessibleDimension.REGISTRY_KEY, resource("earth_orbit")), + new RocketAccessibleDimension( + 100, + ResourceLocation.withDefaultNamespace("overworld"), + 200, + 0f, + Map.of( + resource("moon_orbit"), new RocketAccessibleDimension.AccessibilityParameter(600, 200), + ResourceLocation.withDefaultNamespace("overworld"), new RocketAccessibleDimension.AccessibilityParameter(200, 200), + resource("mars_orbit"), new RocketAccessibleDimension.AccessibilityParameter(1000, 200), + resource("venus"), new RocketAccessibleDimension.AccessibilityParameter(2200, 200) + ) + ) + ); + + // --- The Moon --- + context.register( + ResourceKey.create(RocketAccessibleDimension.REGISTRY_KEY, resource("the_moon")), + new RocketAccessibleDimension( + 400, + ResourceLocation.withDefaultNamespace("overworld"), + 200, + 1.6f, + Map.of( + resource("moon_orbit"), new RocketAccessibleDimension.AccessibilityParameter(300, 200) + ) + ) + ); + + // --- Moon Orbit --- + context.register( + ResourceKey.create(RocketAccessibleDimension.REGISTRY_KEY, resource("moon_orbit")), + new RocketAccessibleDimension( + 100, + resource("the_moon"), + 200, + 0f, + Map.of( + resource("earth_orbit"), new RocketAccessibleDimension.AccessibilityParameter(200, 200), + resource("mars_orbit"), new RocketAccessibleDimension.AccessibilityParameter(1000, 200), + resource("venus"), new RocketAccessibleDimension.AccessibilityParameter(2200, 200), + resource("the_moon"), new RocketAccessibleDimension.AccessibilityParameter(300, 200) + ) + ) + ); + + // --- Mars --- + context.register( + ResourceKey.create(RocketAccessibleDimension.REGISTRY_KEY, resource("mars")), + new RocketAccessibleDimension( + 2000, + resource("sun"), + 200, + 3.71f, + Map.of( + resource("mars_orbit"), new RocketAccessibleDimension.AccessibilityParameter(400, 200) + ) + ) + ); + + // --- Mars Orbit --- + context.register( + ResourceKey.create(RocketAccessibleDimension.REGISTRY_KEY, resource("mars_orbit")), + new RocketAccessibleDimension( + 100, + resource("mars"), + 200, + 0f, + Map.of( + resource("earth_orbit"), new RocketAccessibleDimension.AccessibilityParameter(500, 200), + resource("moon_orbit"), new RocketAccessibleDimension.AccessibilityParameter(300, 200), + resource("mars"), new RocketAccessibleDimension.AccessibilityParameter(300, 200) + ) + ) + ); + + // --- Venus --- + context.register( + ResourceKey.create(RocketAccessibleDimension.REGISTRY_KEY, resource("venus")), + new RocketAccessibleDimension( + 400, + resource("sun"), + 200, + 1.6f, + Map.of( + resource("earth_orbit"), new RocketAccessibleDimension.AccessibilityParameter(1800, 200), + resource("moon_orbit"), new RocketAccessibleDimension.AccessibilityParameter(2000, 200) + ) + ) + ); + } +} \ No newline at end of file diff --git a/src/main/java/com/rae/creatingspace/init/worldgen/DimensionInit.java b/src/main/java/com/rae/creatingspace/init/worldgen/DimensionInit.java index 38ad4278..063752c4 100644 --- a/src/main/java/com/rae/creatingspace/init/worldgen/DimensionInit.java +++ b/src/main/java/com/rae/creatingspace/init/worldgen/DimensionInit.java @@ -1,48 +1,67 @@ package com.rae.creatingspace.init.worldgen; -import com.rae.creatingspace.CreatingSpace; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.Level; import net.minecraft.world.level.dimension.DimensionType; +import net.minecraft.world.level.dimension.LevelStem; + +import static com.rae.creatingspace.CreatingSpace.resource; public class DimensionInit { - public static final ResourceKey EARTH_ORBIT_LEVEL = + public static final ResourceKey EARTH_ORBIT_KEY = ResourceKey.create(Registries.DIMENSION, - CreatingSpace.resource("earth_orbit")); + resource("earth_orbit")); - public static final ResourceKey MOON_ORBIT_LEVEL = + public static final ResourceKey MOON_ORBIT_KEY = ResourceKey.create(Registries.DIMENSION, - CreatingSpace.resource("moon_orbit")); + resource("moon_orbit")); - public static final ResourceKey MOON_LEVEL = + public static final ResourceKey MOON_KEY = ResourceKey.create(Registries.DIMENSION, - CreatingSpace.resource("the_moon")); - - public static final ResourceKey MARS_LEVEL = - ResourceKey.create(Registries.DIMENSION, - CreatingSpace.resource("mars")); + resource("the_moon")); public static final ResourceKey EARTH_ORBIT_TYPE = ResourceKey.create(Registries.DIMENSION_TYPE, - CreatingSpace.resource("earth_orbit")); - + resource("earth_orbit")); public static final ResourceKey MOON_ORBIT_TYPE = - ResourceKey.create(Registries.DIMENSION_TYPE, - CreatingSpace.resource("moon_orbit")); + ResourceKey.create(Registries.DIMENSION_TYPE, resource("moon_orbit")); public static final ResourceKey MOON_TYPE = ResourceKey.create(Registries.DIMENSION_TYPE, - CreatingSpace.resource("the_moon")); - + resource("the_moon")); public static final ResourceKey MARS_ORBIT_TYPE = ResourceKey.create(Registries.DIMENSION_TYPE, - CreatingSpace.resource("mars_orbit")); - + resource("mars_orbit")); public static final ResourceKey MARS_TYPE = - ResourceKey.create(Registries.DIMENSION_TYPE, - CreatingSpace.resource("mars")); + ResourceKey.create(Registries.DIMENSION_TYPE, resource("mars")); + + public static final ResourceKey VENUS_TYPE = + ResourceKey.create(Registries.DIMENSION_TYPE, resource("venus")); + + //LevelStem Keys (used in DataGen) + public static final ResourceKey EARTH_ORBIT_STEM_KEY = + ResourceKey.create(Registries.LEVEL_STEM, resource("earth_orbit")); + + public static final ResourceKey MOON_ORBIT_STEM_KEY = + ResourceKey.create(Registries.LEVEL_STEM, resource("moon_orbit")); + + public static final ResourceKey MARS_ORBIT_STEM_KEY = + ResourceKey.create(Registries.LEVEL_STEM, resource("mars_orbit")); + + public static final ResourceKey VENUS_ORBIT_STEM_KEY = + ResourceKey.create(Registries.LEVEL_STEM, resource("venus_orbit")); + + public static final ResourceKey MOON_STEM_KEY = + ResourceKey.create(Registries.LEVEL_STEM, resource("the_moon")); + + public static final ResourceKey MARS_STEM_KEY = + ResourceKey.create(Registries.LEVEL_STEM, resource("mars")); + + public static final ResourceKey VENUS_STEM_KEY = + ResourceKey.create(Registries.LEVEL_STEM, resource("venus")); } diff --git a/src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/earth_orbit.json b/src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension-x/earth_orbit.json similarity index 100% rename from src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/earth_orbit.json rename to src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension-x/earth_orbit.json diff --git a/src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/mars.json b/src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension-x/mars.json similarity index 100% rename from src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/mars.json rename to src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension-x/mars.json diff --git a/src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/mars_orbit.json b/src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension-x/mars_orbit.json similarity index 100% rename from src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/mars_orbit.json rename to src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension-x/mars_orbit.json diff --git a/src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/moon_orbit.json b/src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension-x/moon_orbit.json similarity index 100% rename from src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/moon_orbit.json rename to src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension-x/moon_orbit.json diff --git a/src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/the_moon.json b/src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension-x/the_moon.json similarity index 100% rename from src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/the_moon.json rename to src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension-x/the_moon.json diff --git a/src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/venus.json b/src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension-x/venus.json similarity index 100% rename from src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/venus.json rename to src/main/resources/data/creatingspace/creatingspace/rocket_accessible_dimension-x/venus.json diff --git a/src/main/resources/data/creatingspace/dimension/earth_orbit.json b/src/main/resources/data/creatingspace/dimension-x/earth_orbit.json similarity index 100% rename from src/main/resources/data/creatingspace/dimension/earth_orbit.json rename to src/main/resources/data/creatingspace/dimension-x/earth_orbit.json diff --git a/src/main/resources/data/creatingspace/dimension/mars.json b/src/main/resources/data/creatingspace/dimension-x/mars.json similarity index 100% rename from src/main/resources/data/creatingspace/dimension/mars.json rename to src/main/resources/data/creatingspace/dimension-x/mars.json diff --git a/src/main/resources/data/creatingspace/dimension/mars_orbit.json b/src/main/resources/data/creatingspace/dimension-x/mars_orbit.json similarity index 100% rename from src/main/resources/data/creatingspace/dimension/mars_orbit.json rename to src/main/resources/data/creatingspace/dimension-x/mars_orbit.json diff --git a/src/main/resources/data/creatingspace/dimension/moon_orbit.json b/src/main/resources/data/creatingspace/dimension-x/moon_orbit.json similarity index 100% rename from src/main/resources/data/creatingspace/dimension/moon_orbit.json rename to src/main/resources/data/creatingspace/dimension-x/moon_orbit.json diff --git a/src/main/resources/data/creatingspace/dimension/the_moon.json b/src/main/resources/data/creatingspace/dimension-x/the_moon.json similarity index 100% rename from src/main/resources/data/creatingspace/dimension/the_moon.json rename to src/main/resources/data/creatingspace/dimension-x/the_moon.json diff --git a/src/main/resources/data/creatingspace/dimension/venus.json b/src/main/resources/data/creatingspace/dimension-x/venus.json similarity index 100% rename from src/main/resources/data/creatingspace/dimension/venus.json rename to src/main/resources/data/creatingspace/dimension-x/venus.json diff --git a/src/main/resources/data/creatingspace/dimension_type/earth_orbit.json b/src/main/resources/data/creatingspace/dimension_type-x/earth_orbit.json similarity index 100% rename from src/main/resources/data/creatingspace/dimension_type/earth_orbit.json rename to src/main/resources/data/creatingspace/dimension_type-x/earth_orbit.json diff --git a/src/main/resources/data/creatingspace/dimension_type/mars.json b/src/main/resources/data/creatingspace/dimension_type-x/mars.json similarity index 100% rename from src/main/resources/data/creatingspace/dimension_type/mars.json rename to src/main/resources/data/creatingspace/dimension_type-x/mars.json diff --git a/src/main/resources/data/creatingspace/dimension_type/mars_orbit.json b/src/main/resources/data/creatingspace/dimension_type-x/mars_orbit.json similarity index 100% rename from src/main/resources/data/creatingspace/dimension_type/mars_orbit.json rename to src/main/resources/data/creatingspace/dimension_type-x/mars_orbit.json diff --git a/src/main/resources/data/creatingspace/dimension_type/moon_orbit.json b/src/main/resources/data/creatingspace/dimension_type-x/moon_orbit.json similarity index 100% rename from src/main/resources/data/creatingspace/dimension_type/moon_orbit.json rename to src/main/resources/data/creatingspace/dimension_type-x/moon_orbit.json diff --git a/src/main/resources/data/creatingspace/dimension_type/the_moon.json b/src/main/resources/data/creatingspace/dimension_type-x/the_moon.json similarity index 100% rename from src/main/resources/data/creatingspace/dimension_type/the_moon.json rename to src/main/resources/data/creatingspace/dimension_type-x/the_moon.json diff --git a/src/main/resources/data/creatingspace/dimension_type/venus.json b/src/main/resources/data/creatingspace/dimension_type-x/venus.json similarity index 100% rename from src/main/resources/data/creatingspace/dimension_type/venus.json rename to src/main/resources/data/creatingspace/dimension_type-x/venus.json From 69084ef81bfeafde446fe1c46e03f7ee673b5c79 Mon Sep 17 00:00:00 2001 From: kalwantspizza Date: Sun, 19 Jul 2026 10:39:34 -0400 Subject: [PATCH 2/4] Adding Dimension Datagen into main flow --- .../earth_orbit.json | 22 ++++++ .../rocket_accessible_dimension/mars.json | 11 +++ .../mars_orbit.json | 18 +++++ .../moon_orbit.json | 22 ++++++ .../rocket_accessible_dimension/the_moon.json | 11 +++ .../rocket_accessible_dimension/venus.json | 14 ++++ .../creatingspace/dimension/earth_orbit.json | 12 ++++ .../data/creatingspace/dimension/mars.json | 69 +++++++++++++++++++ .../creatingspace/dimension/mars_orbit.json | 12 ++++ .../creatingspace/dimension/moon_orbit.json | 12 ++++ .../creatingspace/dimension/the_moon.json | 69 +++++++++++++++++++ .../data/creatingspace/dimension/venus.json | 36 ++++++++++ .../dimension_type/earth_orbit.json | 19 +++++ .../creatingspace/dimension_type/mars.json | 19 +++++ .../dimension_type/mars_orbit.json | 19 +++++ .../dimension_type/moon_orbit.json | 19 +++++ .../dimension_type/the_moon.json | 19 +++++ .../creatingspace/dimension_type/venus.json | 19 +++++ .../com/rae/creatingspace/PrintClassInfo.java | 22 ++++++ .../datagen/worldgen/CSDimensionGen.java | 7 +- .../CSRocketAccessibleDimensionGen.java | 28 ++++---- .../init/ingameobject/FluidInit.java | 4 +- .../init/worldgen/DimensionInit.java | 4 ++ .../com/rae/creatingspace/package-info.java | 11 +++ src/main/java/package-info.java | 2 - 25 files changed, 481 insertions(+), 19 deletions(-) create mode 100644 src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/earth_orbit.json create mode 100644 src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/mars.json create mode 100644 src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/mars_orbit.json create mode 100644 src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/moon_orbit.json create mode 100644 src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/the_moon.json create mode 100644 src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/venus.json create mode 100644 src/generated/resources/data/creatingspace/dimension/earth_orbit.json create mode 100644 src/generated/resources/data/creatingspace/dimension/mars.json create mode 100644 src/generated/resources/data/creatingspace/dimension/mars_orbit.json create mode 100644 src/generated/resources/data/creatingspace/dimension/moon_orbit.json create mode 100644 src/generated/resources/data/creatingspace/dimension/the_moon.json create mode 100644 src/generated/resources/data/creatingspace/dimension/venus.json create mode 100644 src/generated/resources/data/creatingspace/dimension_type/earth_orbit.json create mode 100644 src/generated/resources/data/creatingspace/dimension_type/mars.json create mode 100644 src/generated/resources/data/creatingspace/dimension_type/mars_orbit.json create mode 100644 src/generated/resources/data/creatingspace/dimension_type/moon_orbit.json create mode 100644 src/generated/resources/data/creatingspace/dimension_type/the_moon.json create mode 100644 src/generated/resources/data/creatingspace/dimension_type/venus.json create mode 100644 src/main/java/com/rae/creatingspace/PrintClassInfo.java create mode 100644 src/main/java/com/rae/creatingspace/package-info.java diff --git a/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/earth_orbit.json b/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/earth_orbit.json new file mode 100644 index 00000000..15d543a7 --- /dev/null +++ b/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/earth_orbit.json @@ -0,0 +1,22 @@ +{ + "adjacentDimensions": { + "creatingspace:mars_orbit": { + "deltaV": 1000 + }, + "creatingspace:moon_orbit": { + "deltaV": 600 + }, + "creatingspace:venus": { + "arrivalHeight": 200, + "deltaV": 2200 + }, + "minecraft:overworld": { + "arrivalHeight": 200, + "deltaV": 200 + } + }, + "arrivalHeight": 64, + "distanceToOrbitingBody": 100, + "gravity": 0.0, + "orbitedBody": "minecraft:overworld" +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/mars.json b/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/mars.json new file mode 100644 index 00000000..fd43dc4a --- /dev/null +++ b/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/mars.json @@ -0,0 +1,11 @@ +{ + "adjacentDimensions": { + "creatingspace:mars_orbit": { + "deltaV": 400 + } + }, + "arrivalHeight": 200, + "distanceToOrbitingBody": 2000, + "gravity": 3.71, + "orbitedBody": "creatingspace:sun" +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/mars_orbit.json b/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/mars_orbit.json new file mode 100644 index 00000000..af72b11d --- /dev/null +++ b/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/mars_orbit.json @@ -0,0 +1,18 @@ +{ + "adjacentDimensions": { + "creatingspace:earth_orbit": { + "deltaV": 500 + }, + "creatingspace:mars": { + "arrivalHeight": 200, + "deltaV": 300 + }, + "creatingspace:moon_orbit": { + "deltaV": 300 + } + }, + "arrivalHeight": 64, + "distanceToOrbitingBody": 100, + "gravity": 0.0, + "orbitedBody": "creatingspace:mars" +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/moon_orbit.json b/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/moon_orbit.json new file mode 100644 index 00000000..e69e47bb --- /dev/null +++ b/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/moon_orbit.json @@ -0,0 +1,22 @@ +{ + "adjacentDimensions": { + "creatingspace:earth_orbit": { + "deltaV": 200 + }, + "creatingspace:mars_orbit": { + "deltaV": 1000 + }, + "creatingspace:the_moon": { + "arrivalHeight": 200, + "deltaV": 300 + }, + "creatingspace:venus": { + "arrivalHeight": 200, + "deltaV": 2200 + } + }, + "arrivalHeight": 64, + "distanceToOrbitingBody": 100, + "gravity": 0.0, + "orbitedBody": "creatingspace:the_moon" +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/the_moon.json b/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/the_moon.json new file mode 100644 index 00000000..0cefa114 --- /dev/null +++ b/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/the_moon.json @@ -0,0 +1,11 @@ +{ + "adjacentDimensions": { + "creatingspace:moon_orbit": { + "deltaV": 300 + } + }, + "arrivalHeight": 64, + "distanceToOrbitingBody": 400, + "gravity": 1.6, + "orbitedBody": "minecraft:overworld" +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/venus.json b/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/venus.json new file mode 100644 index 00000000..63b35730 --- /dev/null +++ b/src/generated/resources/data/creatingspace/creatingspace/rocket_accessible_dimension/venus.json @@ -0,0 +1,14 @@ +{ + "adjacentDimensions": { + "creatingspace:earth_orbit": { + "deltaV": 1800 + }, + "creatingspace:moon_orbit": { + "deltaV": 2000 + } + }, + "arrivalHeight": 200, + "distanceToOrbitingBody": 400, + "gravity": 1.6, + "orbitedBody": "creatingspace:sun" +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/dimension/earth_orbit.json b/src/generated/resources/data/creatingspace/dimension/earth_orbit.json new file mode 100644 index 00000000..d50ea496 --- /dev/null +++ b/src/generated/resources/data/creatingspace/dimension/earth_orbit.json @@ -0,0 +1,12 @@ +{ + "type": "creatingspace:earth_orbit", + "generator": { + "type": "minecraft:flat", + "settings": { + "biome": "creatingspace:space", + "features": false, + "lakes": false, + "layers": [] + } + } +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/dimension/mars.json b/src/generated/resources/data/creatingspace/dimension/mars.json new file mode 100644 index 00000000..60e062ed --- /dev/null +++ b/src/generated/resources/data/creatingspace/dimension/mars.json @@ -0,0 +1,69 @@ +{ + "type": "creatingspace:mars", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:multi_noise", + "biomes": [ + { + "biome": "creatingspace:mars_plains", + "parameters": { + "continentalness": [ + -1.0, + 1.0 + ], + "depth": 0.0, + "erosion": [ + -1.0, + 1.0 + ], + "humidity": [ + -1.0, + 1.0 + ], + "offset": 0.0, + "temperature": [ + -1.0, + 1.0 + ], + "weirdness": [ + -1.0, + 1.0 + ] + } + }, + { + "biome": "creatingspace:mars_cave", + "parameters": { + "continentalness": [ + -1.0, + 1.0 + ], + "depth": [ + 0.2, + 0.9 + ], + "erosion": [ + -1.0, + 1.0 + ], + "humidity": [ + -1.0, + 1.0 + ], + "offset": 0.0, + "temperature": [ + -1.0, + 1.0 + ], + "weirdness": [ + -1.0, + 1.0 + ] + } + } + ] + }, + "settings": "creatingspace:mars_noise" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/dimension/mars_orbit.json b/src/generated/resources/data/creatingspace/dimension/mars_orbit.json new file mode 100644 index 00000000..3b67f47a --- /dev/null +++ b/src/generated/resources/data/creatingspace/dimension/mars_orbit.json @@ -0,0 +1,12 @@ +{ + "type": "creatingspace:mars_orbit", + "generator": { + "type": "minecraft:flat", + "settings": { + "biome": "creatingspace:space", + "features": false, + "lakes": false, + "layers": [] + } + } +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/dimension/moon_orbit.json b/src/generated/resources/data/creatingspace/dimension/moon_orbit.json new file mode 100644 index 00000000..ba882af9 --- /dev/null +++ b/src/generated/resources/data/creatingspace/dimension/moon_orbit.json @@ -0,0 +1,12 @@ +{ + "type": "creatingspace:moon_orbit", + "generator": { + "type": "minecraft:flat", + "settings": { + "biome": "creatingspace:space", + "features": false, + "lakes": false, + "layers": [] + } + } +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/dimension/the_moon.json b/src/generated/resources/data/creatingspace/dimension/the_moon.json new file mode 100644 index 00000000..bf9db3a4 --- /dev/null +++ b/src/generated/resources/data/creatingspace/dimension/the_moon.json @@ -0,0 +1,69 @@ +{ + "type": "creatingspace:the_moon", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:multi_noise", + "biomes": [ + { + "biome": "creatingspace:moon_plains", + "parameters": { + "continentalness": [ + -1.0, + 1.0 + ], + "depth": 0.0, + "erosion": [ + -1.0, + 1.0 + ], + "humidity": [ + -1.0, + 1.0 + ], + "offset": 0.0, + "temperature": [ + -1.0, + 1.0 + ], + "weirdness": [ + -1.0, + 1.0 + ] + } + }, + { + "biome": "creatingspace:moon_cave", + "parameters": { + "continentalness": [ + -1.0, + 1.0 + ], + "depth": [ + 0.2, + 0.9 + ], + "erosion": [ + -1.0, + 1.0 + ], + "humidity": [ + -1.0, + 1.0 + ], + "offset": 0.0, + "temperature": [ + -1.0, + 1.0 + ], + "weirdness": [ + -1.0, + 1.0 + ] + } + } + ] + }, + "settings": "creatingspace:moon_noise" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/dimension/venus.json b/src/generated/resources/data/creatingspace/dimension/venus.json new file mode 100644 index 00000000..0453505e --- /dev/null +++ b/src/generated/resources/data/creatingspace/dimension/venus.json @@ -0,0 +1,36 @@ +{ + "type": "creatingspace:venus", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:multi_noise", + "biomes": [ + { + "biome": "creatingspace:venus", + "parameters": { + "continentalness": 1.0, + "depth": 0.0, + "erosion": 0.0, + "humidity": 0.0, + "offset": 0.0, + "temperature": 0.0, + "weirdness": 0.0 + } + }, + { + "biome": "creatingspace:venus_hellground", + "parameters": { + "continentalness": 0.0, + "depth": 0.0, + "erosion": 1.0, + "humidity": 0.0, + "offset": 0.0, + "temperature": 0.0, + "weirdness": 1.0 + } + } + ] + }, + "settings": "creatingspace:venus" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/dimension_type/earth_orbit.json b/src/generated/resources/data/creatingspace/dimension_type/earth_orbit.json new file mode 100644 index 00000000..8f77bf03 --- /dev/null +++ b/src/generated/resources/data/creatingspace/dimension_type/earth_orbit.json @@ -0,0 +1,19 @@ +{ + "ambient_light": 0.0, + "bed_works": true, + "coordinate_scale": 1.0, + "effects": "creatingspace:earth_orbit", + "has_ceiling": false, + "has_raids": false, + "has_skylight": true, + "height": 384, + "infiniburn": "#minecraft:infiniburn_overworld", + "logical_height": 384, + "min_y": -64, + "monster_spawn_block_light_limit": 7, + "monster_spawn_light_level": 0, + "natural": true, + "piglin_safe": true, + "respawn_anchor_works": true, + "ultrawarm": false +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/dimension_type/mars.json b/src/generated/resources/data/creatingspace/dimension_type/mars.json new file mode 100644 index 00000000..9920b5e9 --- /dev/null +++ b/src/generated/resources/data/creatingspace/dimension_type/mars.json @@ -0,0 +1,19 @@ +{ + "ambient_light": 0.0, + "bed_works": true, + "coordinate_scale": 1.0, + "effects": "creatingspace:mars", + "has_ceiling": false, + "has_raids": false, + "has_skylight": true, + "height": 384, + "infiniburn": "#minecraft:infiniburn_overworld", + "logical_height": 384, + "min_y": -64, + "monster_spawn_block_light_limit": 7, + "monster_spawn_light_level": 0, + "natural": true, + "piglin_safe": true, + "respawn_anchor_works": true, + "ultrawarm": false +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/dimension_type/mars_orbit.json b/src/generated/resources/data/creatingspace/dimension_type/mars_orbit.json new file mode 100644 index 00000000..27c6adf6 --- /dev/null +++ b/src/generated/resources/data/creatingspace/dimension_type/mars_orbit.json @@ -0,0 +1,19 @@ +{ + "ambient_light": 0.0, + "bed_works": true, + "coordinate_scale": 1.0, + "effects": "creatingspace:mars_orbit", + "has_ceiling": false, + "has_raids": false, + "has_skylight": true, + "height": 384, + "infiniburn": "#minecraft:infiniburn_overworld", + "logical_height": 384, + "min_y": -64, + "monster_spawn_block_light_limit": 7, + "monster_spawn_light_level": 0, + "natural": true, + "piglin_safe": true, + "respawn_anchor_works": true, + "ultrawarm": false +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/dimension_type/moon_orbit.json b/src/generated/resources/data/creatingspace/dimension_type/moon_orbit.json new file mode 100644 index 00000000..4118a7be --- /dev/null +++ b/src/generated/resources/data/creatingspace/dimension_type/moon_orbit.json @@ -0,0 +1,19 @@ +{ + "ambient_light": 0.0, + "bed_works": true, + "coordinate_scale": 1.0, + "effects": "creatingspace:moon_orbit", + "has_ceiling": false, + "has_raids": false, + "has_skylight": true, + "height": 384, + "infiniburn": "#minecraft:infiniburn_overworld", + "logical_height": 384, + "min_y": -64, + "monster_spawn_block_light_limit": 7, + "monster_spawn_light_level": 0, + "natural": true, + "piglin_safe": true, + "respawn_anchor_works": true, + "ultrawarm": false +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/dimension_type/the_moon.json b/src/generated/resources/data/creatingspace/dimension_type/the_moon.json new file mode 100644 index 00000000..b84ff263 --- /dev/null +++ b/src/generated/resources/data/creatingspace/dimension_type/the_moon.json @@ -0,0 +1,19 @@ +{ + "ambient_light": 0.0, + "bed_works": true, + "coordinate_scale": 1.0, + "effects": "creatingspace:the_moon", + "has_ceiling": false, + "has_raids": false, + "has_skylight": true, + "height": 384, + "infiniburn": "#minecraft:infiniburn_overworld", + "logical_height": 384, + "min_y": -64, + "monster_spawn_block_light_limit": 7, + "monster_spawn_light_level": 0, + "natural": true, + "piglin_safe": true, + "respawn_anchor_works": true, + "ultrawarm": false +} \ No newline at end of file diff --git a/src/generated/resources/data/creatingspace/dimension_type/venus.json b/src/generated/resources/data/creatingspace/dimension_type/venus.json new file mode 100644 index 00000000..f8fdaa6d --- /dev/null +++ b/src/generated/resources/data/creatingspace/dimension_type/venus.json @@ -0,0 +1,19 @@ +{ + "ambient_light": 0.0, + "bed_works": true, + "coordinate_scale": 1.0, + "effects": "creatingspace:venus", + "has_ceiling": false, + "has_raids": false, + "has_skylight": true, + "height": 384, + "infiniburn": "#minecraft:infiniburn_overworld", + "logical_height": 384, + "min_y": -64, + "monster_spawn_block_light_limit": 7, + "monster_spawn_light_level": 0, + "natural": true, + "piglin_safe": true, + "respawn_anchor_works": true, + "ultrawarm": false +} \ No newline at end of file diff --git a/src/main/java/com/rae/creatingspace/PrintClassInfo.java b/src/main/java/com/rae/creatingspace/PrintClassInfo.java new file mode 100644 index 00000000..e3fdb4f1 --- /dev/null +++ b/src/main/java/com/rae/creatingspace/PrintClassInfo.java @@ -0,0 +1,22 @@ +package com.rae.creatingspace; + +import java.lang.reflect.*; + +public class PrintClassInfo { + public static void main(String[] args) { + printClass("com.simibubi.create.content.processing.sequenced.SequencedAssemblyRecipeBuilder"); + } + + private static void printClass(String className) { + try { + Class clazz = Class.forName(className); + System.out.println("=== CLASS: " + clazz.getName() + " ==="); + System.out.println("Fields:"); + for (Field f : clazz.getDeclaredFields()) { + System.out.println(" " + Modifier.toString(f.getModifiers()) + " " + f.getType().getName() + " " + f.getName()); + } + } catch (Exception e) { + System.out.println("Failed to print class " + className + ": " + e.getMessage()); + } + } +} diff --git a/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSDimensionGen.java b/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSDimensionGen.java index 5fddde11..c47d2239 100644 --- a/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSDimensionGen.java +++ b/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSDimensionGen.java @@ -64,7 +64,12 @@ public static void bootstrap(BootstrapContext context) { // registerFlatOrbit(context, VENUS_ORBIT_STEM_KEY, VENUS_ORBIT_TYPE, biomeGetter); // Terrain worlds (noise-based) - registerFixedNoiseWorld(context, MARS_STEM_KEY, MARS_TYPE, "mars_noise", "mars_plains", noiseGetter, biomeGetter); + registerMultiNoiseWorld(context, MARS_STEM_KEY, MARS_TYPE, "mars_noise", + List.of( + new BiomeParams("mars_plains",-1F, 1F, -1F, 1F, -1F, 1F, -1F, 1F, -1F, 1F, 0.0F, 0.0F, 0.0F), + new BiomeParams("mars_cave",-1F, 1F, -1F, 1F, -1F, 1F, -1F, 1F, -1F, 1F, 0.2F, 0.9F, 0.0F) + ), + noiseGetter, biomeGetter); registerMultiNoiseWorld(context, MOON_STEM_KEY, MOON_TYPE, "moon_noise", List.of( new BiomeParams("moon_plains", -1F, 1F, -1F, 1F, -1F, 1F, -1F, 1F, -1F, 1F, 0.0F, 0.0F, 0.0F), diff --git a/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSRocketAccessibleDimensionGen.java b/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSRocketAccessibleDimensionGen.java index f1bbfeff..1320dca9 100644 --- a/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSRocketAccessibleDimensionGen.java +++ b/src/main/java/com/rae/creatingspace/content/datagen/worldgen/CSRocketAccessibleDimensionGen.java @@ -18,12 +18,12 @@ public static void bootstrap(BootstrapContext context new RocketAccessibleDimension( 100, ResourceLocation.withDefaultNamespace("overworld"), - 200, + 64, 0f, Map.of( - resource("moon_orbit"), new RocketAccessibleDimension.AccessibilityParameter(600, 200), + resource("moon_orbit"), new RocketAccessibleDimension.AccessibilityParameter(600, 64), ResourceLocation.withDefaultNamespace("overworld"), new RocketAccessibleDimension.AccessibilityParameter(200, 200), - resource("mars_orbit"), new RocketAccessibleDimension.AccessibilityParameter(1000, 200), + resource("mars_orbit"), new RocketAccessibleDimension.AccessibilityParameter(1000, 64), resource("venus"), new RocketAccessibleDimension.AccessibilityParameter(2200, 200) ) ) @@ -35,10 +35,10 @@ public static void bootstrap(BootstrapContext context new RocketAccessibleDimension( 400, ResourceLocation.withDefaultNamespace("overworld"), - 200, + 64, 1.6f, Map.of( - resource("moon_orbit"), new RocketAccessibleDimension.AccessibilityParameter(300, 200) + resource("moon_orbit"), new RocketAccessibleDimension.AccessibilityParameter(300, 64) ) ) ); @@ -49,11 +49,11 @@ public static void bootstrap(BootstrapContext context new RocketAccessibleDimension( 100, resource("the_moon"), - 200, + 64, 0f, Map.of( - resource("earth_orbit"), new RocketAccessibleDimension.AccessibilityParameter(200, 200), - resource("mars_orbit"), new RocketAccessibleDimension.AccessibilityParameter(1000, 200), + resource("earth_orbit"), new RocketAccessibleDimension.AccessibilityParameter(200, 64), + resource("mars_orbit"), new RocketAccessibleDimension.AccessibilityParameter(1000, 64), resource("venus"), new RocketAccessibleDimension.AccessibilityParameter(2200, 200), resource("the_moon"), new RocketAccessibleDimension.AccessibilityParameter(300, 200) ) @@ -69,7 +69,7 @@ public static void bootstrap(BootstrapContext context 200, 3.71f, Map.of( - resource("mars_orbit"), new RocketAccessibleDimension.AccessibilityParameter(400, 200) + resource("mars_orbit"), new RocketAccessibleDimension.AccessibilityParameter(400, 64) ) ) ); @@ -80,11 +80,11 @@ public static void bootstrap(BootstrapContext context new RocketAccessibleDimension( 100, resource("mars"), - 200, + 64, 0f, Map.of( - resource("earth_orbit"), new RocketAccessibleDimension.AccessibilityParameter(500, 200), - resource("moon_orbit"), new RocketAccessibleDimension.AccessibilityParameter(300, 200), + resource("earth_orbit"), new RocketAccessibleDimension.AccessibilityParameter(500, 64), + resource("moon_orbit"), new RocketAccessibleDimension.AccessibilityParameter(300, 64), resource("mars"), new RocketAccessibleDimension.AccessibilityParameter(300, 200) ) ) @@ -99,8 +99,8 @@ public static void bootstrap(BootstrapContext context 200, 1.6f, Map.of( - resource("earth_orbit"), new RocketAccessibleDimension.AccessibilityParameter(1800, 200), - resource("moon_orbit"), new RocketAccessibleDimension.AccessibilityParameter(2000, 200) + resource("earth_orbit"), new RocketAccessibleDimension.AccessibilityParameter(1800, 64), + resource("moon_orbit"), new RocketAccessibleDimension.AccessibilityParameter(2000, 64) ) ) ); diff --git a/src/main/java/com/rae/creatingspace/init/ingameobject/FluidInit.java b/src/main/java/com/rae/creatingspace/init/ingameobject/FluidInit.java index bfb87759..d980b944 100644 --- a/src/main/java/com/rae/creatingspace/init/ingameobject/FluidInit.java +++ b/src/main/java/com/rae/creatingspace/init/ingameobject/FluidInit.java @@ -112,9 +112,9 @@ public static void registerFluidInteractions() { level.setBlockAndUpdate(currentPos, EventHooks.fireFluidPlaceBlockEvent(level, currentPos, currentPos, Blocks.OBSIDIAN.defaultBlockState())); } else{ - if (level.dimension().equals(DimensionInit.MOON_LEVEL)) { + if (level.dimension().equals(DimensionInit.MOON_KEY)) { level.setBlockAndUpdate(currentPos, EventHooks.fireFluidPlaceBlockEvent(level, currentPos, currentPos, BlockInit.MOON_STONE.get().defaultBlockState())); - } else if (level.dimension().equals(DimensionInit.MARS_LEVEL)) { + } else if (level.dimension().equals(DimensionInit.MARS_KEY)) { level.setBlockAndUpdate(currentPos, EventHooks.fireFluidPlaceBlockEvent(level, currentPos, currentPos, BlockInit.MARS_STONE.get().defaultBlockState())); } else { level.setBlockAndUpdate(currentPos, EventHooks.fireFluidPlaceBlockEvent(level, currentPos, currentPos, Blocks.COBBLESTONE.defaultBlockState())); diff --git a/src/main/java/com/rae/creatingspace/init/worldgen/DimensionInit.java b/src/main/java/com/rae/creatingspace/init/worldgen/DimensionInit.java index 063752c4..c2b47e13 100644 --- a/src/main/java/com/rae/creatingspace/init/worldgen/DimensionInit.java +++ b/src/main/java/com/rae/creatingspace/init/worldgen/DimensionInit.java @@ -23,6 +23,10 @@ public class DimensionInit { ResourceKey.create(Registries.DIMENSION, resource("the_moon")); + public static final ResourceKey MARS_KEY = + ResourceKey.create(Registries.DIMENSION, + resource("mars")); + public static final ResourceKey EARTH_ORBIT_TYPE = ResourceKey.create(Registries.DIMENSION_TYPE, resource("earth_orbit")); diff --git a/src/main/java/com/rae/creatingspace/package-info.java b/src/main/java/com/rae/creatingspace/package-info.java new file mode 100644 index 00000000..409036d3 --- /dev/null +++ b/src/main/java/com/rae/creatingspace/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.rae.creatingspace; + +import net.minecraft.MethodsReturnNonnullByDefault; +import javax.annotation.ParametersAreNonnullByDefault; + +// TODO reduce visibility where it's possible. +// TODO remove unused non api methods on all release branches (unused methods +// are often used for development purposes) +// TODO make some more explicit Javadoc \ No newline at end of file diff --git a/src/main/java/package-info.java b/src/main/java/package-info.java index 82e1d336..59a8a09b 100644 --- a/src/main/java/package-info.java +++ b/src/main/java/package-info.java @@ -1,5 +1,3 @@ -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault package com.rae.creatingspace; import net.minecraft.MethodsReturnNonnullByDefault; From 69388fb8d4a89a502cd761325f6ff567460b0cb0 Mon Sep 17 00:00:00 2001 From: kalwantspizza Date: Thu, 23 Jul 2026 11:48:49 -0400 Subject: [PATCH 3/4] fixing missing en_ud lang entries. Still not sure what happened there --- src/generated/resources/assets/creatingspace/lang/en_ud.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/generated/resources/assets/creatingspace/lang/en_ud.json b/src/generated/resources/assets/creatingspace/lang/en_ud.json index 3c7f3ed0..e7a97ea4 100644 --- a/src/generated/resources/assets/creatingspace/lang/en_ud.json +++ b/src/generated/resources/assets/creatingspace/lang/en_ud.json @@ -37,8 +37,6 @@ "block.creatingspace.hastelloy_block": "ʞɔoןᗺ ʎoןןǝʇsɐH", "block.creatingspace.inconel_block": "ʞɔoןᗺ ןǝuoɔuI", "block.creatingspace.large_nickel_sulfate_bud": "pnᗺ ǝʇɐɟןnS ןǝʞɔıN ǝbɹɐꞀ", - "block.creatingspace.ladder_nickel": "ןǝʞɔıN ɹǝppɐꞀ", - "block.creatingspace.large_crystal_bud": "pnᗺ ןɐʇsʎɹƆ ǝbɹɐꞀ", "block.creatingspace.mars_regolith": "ɥʇıןobǝᴚ sɹɐW", "block.creatingspace.mars_stone": "ǝuoʇS sɹɐW", "block.creatingspace.mars_surface_regolith": "ɥʇıןobǝᴚ ǝɔɐɟɹnS sɹɐW", @@ -326,6 +324,8 @@ "item.creatingspace.nickel_ingot": "ʇobuI ןǝʞɔıN", "item.creatingspace.nickel_nugget": "ʇǝbbnN ןǝʞɔıN", "item.creatingspace.nickel_sheet": "ʇǝǝɥS ןǝʞɔıN", + "item.creatingspace.nickel_sulfate_catalyst": "ʇsʎןɐʇɐƆ ǝʇɐɟןnS ןǝʞɔıN", + "item.creatingspace.nickel_sulfate_shard": "pɹɐɥS ǝʇɐɟןnS ןǝʞɔıN", "item.creatingspace.power_pack": "ʞɔɐԀ ɹǝʍoԀ", "item.creatingspace.raw_aluminum": "ɯnuıɯnןⱯ ʍɐᴚ", "item.creatingspace.raw_cobalt": "ʇןɐqoƆ ʍɐᴚ", From a810a49899af61a5897c761252ef01b292bb456a Mon Sep 17 00:00:00 2001 From: kalwantspizza Date: Thu, 23 Jul 2026 12:20:44 -0400 Subject: [PATCH 4/4] Backtanks support Capacity now. --- .../create/tags/item/pressurized_air_sources.json | 6 ++++++ .../life_support/spacesuit/OxygenBacktankItem.java | 11 +++++++++++ .../rae/creatingspace/init/ingameobject/ItemInit.java | 2 ++ 3 files changed, 19 insertions(+) create mode 100644 src/generated/resources/data/create/tags/item/pressurized_air_sources.json diff --git a/src/generated/resources/data/create/tags/item/pressurized_air_sources.json b/src/generated/resources/data/create/tags/item/pressurized_air_sources.json new file mode 100644 index 00000000..affca8d5 --- /dev/null +++ b/src/generated/resources/data/create/tags/item/pressurized_air_sources.json @@ -0,0 +1,6 @@ +{ + "values": [ + "creatingspace:copper_oxygen_backtank", + "creatingspace:netherite_oxygen_backtank" + ] +} \ No newline at end of file diff --git a/src/main/java/com/rae/creatingspace/content/life_support/spacesuit/OxygenBacktankItem.java b/src/main/java/com/rae/creatingspace/content/life_support/spacesuit/OxygenBacktankItem.java index 9dab7e4c..c8d84fc2 100644 --- a/src/main/java/com/rae/creatingspace/content/life_support/spacesuit/OxygenBacktankItem.java +++ b/src/main/java/com/rae/creatingspace/content/life_support/spacesuit/OxygenBacktankItem.java @@ -12,6 +12,8 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.*; import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import org.jetbrains.annotations.NotNull; @@ -56,6 +58,15 @@ public boolean isEnchantable(ItemStack p_77616_1_) { return true; } + @Override + public boolean supportsEnchantment(ItemStack stack, Holder enchantment) { + // Same rule as Create's own BacktankItem: a tank of air/oxygen has nothing to repair + // and no durability to preserve, so these two enchantments make no sense on it. + if (enchantment.is(Enchantments.MENDING) || enchantment.is(Enchantments.UNBREAKING)) + return false; + return super.supportsEnchantment(stack, enchantment); + } + @Override public boolean isBarVisible(ItemStack stack) { return true; diff --git a/src/main/java/com/rae/creatingspace/init/ingameobject/ItemInit.java b/src/main/java/com/rae/creatingspace/init/ingameobject/ItemInit.java index 4be9f703..8714c38f 100644 --- a/src/main/java/com/rae/creatingspace/init/ingameobject/ItemInit.java +++ b/src/main/java/com/rae/creatingspace/init/ingameobject/ItemInit.java @@ -517,6 +517,7 @@ private static ItemEntry registerSequencedEngineItem(Stri .patternLine(" FWF ") .build(p, resource("mechanical_crafting/armor/" + c.getName()))) .tag(TagsInit.CustomItemTags.OXYGEN_SOURCES.tag) + .tag(AllTags.AllItemTags.PRESSURIZED_AIR_SOURCES.tag) .tag(ItemTags.CHEST_ARMOR) .tag(ItemTags.TRIMMABLE_ARMOR) .tag(TagsInit.CustomItemTags.SPACESUIT.tag) @@ -540,6 +541,7 @@ private static ItemEntry registerSequencedEngineItem(Stri .model((c,p) -> p.withExistingParent("netherite_oxygen_backtank", MODID + ":block/oxygen_backtank/netherite")) .tag(TagsInit.CustomItemTags.OXYGEN_SOURCES.tag) + .tag(AllTags.AllItemTags.PRESSURIZED_AIR_SOURCES.tag) .tag(ItemTags.CHEST_ARMOR) .tag(ItemTags.TRIMMABLE_ARMOR) .tag(TagsInit.CustomItemTags.SPACESUIT.tag)