From 0c89cfc4646f43bd385ba7870b21911ed38b16a5 Mon Sep 17 00:00:00 2001 From: Dustin Norberg Date: Mon, 5 Oct 2026 16:12:59 -0400 Subject: [PATCH] Port Legacy-style Star Fissures age feature (#58) --- docs/ASSET_PROVENANCE.md | 1 + docs/LEGACY_AGE_GRAMMAR_AUDIT.md | 2 +- docs/WRITING_GRAMMAR.md | 2 + gradle.properties | 2 +- .../rivencraft/block/StarFissureBlock.java | 84 ++++++++++++++ .../block/entity/StarFissureBlockEntity.java | 13 +++ .../rivencraft/book/AgeDimensionService.java | 7 ++ .../rivencraft/book/AgeFeatureSelection.java | 24 ++++ .../book/AgePersistenceGameTests.java | 4 +- .../book/FeatureWritingGameTests.java | 7 +- .../rivencraft/client/ClientEvents.java | 1 + .../client/StarFissureRenderer.java | 22 ++++ .../rivencraft/registry/ModBlockEntities.java | 4 + .../rivencraft/registry/ModBlocks.java | 4 + .../rivencraft/registry/ModSounds.java | 1 + .../rivencraft/world/StarFissureFeature.java | 77 +++++++++++++ .../world/StarFissureGameTests.java | 103 ++++++++++++++++++ .../rivencraft/blockstates/star_fissure.json | 1 + .../assets/rivencraft/lang/en_us.json | 3 + .../rivencraft/models/block/star_fissure.json | 1 + .../resources/assets/rivencraft/sounds.json | 4 + .../sounds/linking/link-fissure.ogg | Bin 0 -> 121513 bytes .../symbols/feature/star_fissures.json | 8 ++ 23 files changed, 370 insertions(+), 5 deletions(-) create mode 100644 src/main/java/net/dnorberg/rivencraft/block/StarFissureBlock.java create mode 100644 src/main/java/net/dnorberg/rivencraft/block/entity/StarFissureBlockEntity.java create mode 100644 src/main/java/net/dnorberg/rivencraft/client/StarFissureRenderer.java create mode 100644 src/main/java/net/dnorberg/rivencraft/world/StarFissureFeature.java create mode 100644 src/main/java/net/dnorberg/rivencraft/world/StarFissureGameTests.java create mode 100644 src/main/resources/assets/rivencraft/blockstates/star_fissure.json create mode 100644 src/main/resources/assets/rivencraft/models/block/star_fissure.json create mode 100644 src/main/resources/assets/rivencraft/sounds/linking/link-fissure.ogg create mode 100644 src/main/resources/data/rivencraft/rivencraft/symbols/feature/star_fissures.json diff --git a/docs/ASSET_PROVENANCE.md b/docs/ASSET_PROVENANCE.md index d39ce21..98172bb 100644 --- a/docs/ASSET_PROVENANCE.md +++ b/docs/ASSET_PROVENANCE.md @@ -28,6 +28,7 @@ project's GNU LGPL v3 license. Rivencraft itself uses the same license. | `assets/rivencraft/textures/block/crystal_block.png`, `budding_crystal.png` | `assets/mystcraft/textures/blocks/crystal.png` | Legacy 0.13.7.06 local extraction | Exact 16×16 blue tile reused for both solid crystal blocks | | `assets/rivencraft/textures/block/{small,medium,large}_crystal_bud.png`, `crystal_cluster.png` | Minecraft 1.21.1 `textures/block/{small,medium,large}_amethyst_bud.png`, `amethyst_cluster.png` | Minecraft 1.21.1 | Original 16×16 alpha masks and silhouettes preserved; hue shifted toward Legacy blue, with brighter saturation; exported as 8-bit RGBA (not indexed PNG) | | `assets/rivencraft/textures/item/crystal_shard.png` | Original sprite generated with OpenAI ImageGen from the Legacy crystal palette | 2026-10-05 | Cropped and nearest-neighbor scaled to 16×16 | +| `assets/rivencraft/sounds/linking/link-fissure.ogg` | `assets/mystcraft/sounds/linking/link-fissure.ogg` | Legacy 0.13.7.06 local extraction | Namespace/path rename only; plays when a Star Fissure returns an entity home | Mystcraft Legacy identifies XCompWiz as its project developer and includes the full LGPL v3 text in its root `LICENSE` file. Rivencraft's root `LICENSE` diff --git a/docs/LEGACY_AGE_GRAMMAR_AUDIT.md b/docs/LEGACY_AGE_GRAMMAR_AUDIT.md index 9e9964f..bef992f 100644 --- a/docs/LEGACY_AGE_GRAMMAR_AUDIT.md +++ b/docs/LEGACY_AGE_GRAMMAR_AUDIT.md @@ -18,7 +18,7 @@ Legacy does **not** reject a book just because it omits terrain, biome, weather, | `WeatherNorm`, `Fast`, `Slow`, `Off`, `On`, `Cloudy`, `Rain`, `Snow`, `Storm` | `AgeTraits.Weather` has matching names except Legacy `On` maps to `ALWAYS` | Compile weather semantics separately from biome selection. `Snow` must remain deferred until optional season integration; do not silently substitute another weather mode. | | Suns, moons, starfields; angle, phase, period, color/gradient/sunset modifiers | One `celestialPeriod`, `celestialAngle`, `celestialPhase` on `AgeTraits` | Compile only the representable single-cycle subset first. Multiple celestial bodies, independent periods, custom stars, gradients and sunsets need a richer definition and renderer, not flattening into one value. | | Sky/fog/cloud/grass/foliage/water colors, natural variants, horizon, rainbow | Existing sky/dimension visuals and preview | Require an explicit modern client/biome-color design; metadata-only symbol pages must not pretend to change rendering. | -| Caves, ores, huge trees, lakes, floating islands, tendrils, skylands, spheres, spikes, crystals; vanilla villages, strongholds, mineshafts, dungeons, fortresses, obelisks, fissures | Current cave profile, authored Floating Islands/Tendrils/Skylands/Spheres/Spikes/Obelisks/Crystal Formations and Dense Ores, and page-gated vanilla Dungeons/Mineshafts/Nether Fortresses/Strongholds/Villages | The five Legacy vanilla structure symbols gate Minecraft 1.21.1 generation. Dungeons use monster-room placement; the others use vanilla structure sets. Obelisks use a bespoke 4×4 plinth and 2×12×2 shaft with safe modern placement. Crystal Formations retain Legacy's blue tile and one-in-fifteen attempt rate but use new budding, shard-producing mounds. Fissures and exact 1.12 structure geometry remain separate work. | +| Caves, ores, huge trees, lakes, floating islands, tendrils, skylands, spheres, spikes, crystals; vanilla villages, strongholds, mineshafts, dungeons, fortresses, obelisks, fissures | Current cave profile, authored Floating Islands/Tendrils/Skylands/Spheres/Spikes/Obelisks/Crystal Formations/Star Fissures and Dense Ores, and page-gated vanilla Dungeons/Mineshafts/Nether Fortresses/Strongholds/Villages | The five Legacy vanilla structure symbols gate Minecraft 1.21.1 generation. Dungeons use monster-room placement; the others use vanilla structure sets. Obelisks use a bespoke 4×4 plinth and 2×12×2 shaft with safe modern placement. Crystal Formations retain Legacy's blue tile and one-in-fifteen attempt rate but use new budding, shard-producing mounds. Star Fissures reproduce Legacy's spawn-chunk footprint, open-to-sky columns, home link, and sound. Their renderer uses the modern End Portal pipeline in place of Legacy's retired fixed-function OpenGL calls. Exact 1.12 geometry for other structures remains separate work. | | `EnvAccel`, explosions, lightning, meteors, scorching; PvP and dummy suppression pages | No equivalent Age-definition effect | Defer environmental hazards/instability effects to milestone 6, PvP rule to a separately scoped server policy; retain authored IDs without fake behavior. | The Legacy symbol list and page names come from [ModSymbols](https://github.com/Mystcraft/Mystcraft-Legacy/blob/9bc8ddc061845df0cd5ea47f4fdef773cff786ae/src/main/java/com/xcompwiz/mystcraft/data/ModSymbols.java#L129-L240) and [SymbolRules](https://github.com/Mystcraft/Mystcraft-Legacy/blob/9bc8ddc061845df0cd5ea47f4fdef773cff786ae/src/main/java/com/xcompwiz/mystcraft/data/SymbolRules.java#L19-L137). Rivencraft's [catalog](../src/main/java/net/dnorberg/rivencraft/writing/SymbolCatalog.java) currently holds display metadata only; its built-in set is just standard terrain, native biomes, normal weather, normal lighting, normal time, and caves. [OrderedWriting](../src/main/java/net/dnorberg/rivencraft/writing/OrderedWriting.java) preserves page order, but no compiler yet connects it to [AgeTraits](../src/main/java/net/dnorberg/rivencraft/book/AgeTraits.java) or [Age profiles](AGE_PROFILES.md). diff --git a/docs/WRITING_GRAMMAR.md b/docs/WRITING_GRAMMAR.md index e0c2b68..5716746 100644 --- a/docs/WRITING_GRAMMAR.md +++ b/docs/WRITING_GRAMMAR.md @@ -20,4 +20,6 @@ Material pages are generated for registered full-collision, non-fluid blocks and Crystal Formations are an authored, material-free feature on exposed solid terrain, including Flat terrain; Cave and Void reject the page. Like Legacy, one in fifteen eligible chunks attempts a formation, with the site fixed by the Age seed and chunk coordinates. The modern formation is a compact mound with budding hearts instead of Legacy's long crystal lines. Budding blocks grow through small, medium, and large buds into clusters using vanilla amethyst timing and sounds. Non-silk cluster harvest yields Crystal Shards; four shards craft one Crystal Block. These blocks and shards use 16×16 textures: Legacy's crystal tile for solids and hue-shifted vanilla amethyst sprites for buds and clusters. A page-free Age can also randomly select Crystal Formations; an authored page always retains its exact choice in the saved plan. +Star Fissures are a material-free feature on every terrain profile, including Cave and Void. The fissure is generated once beside the first resolved spawn, using Legacy's spawn-chunk offset and 10–17 paired, irregular X-span rows running along +Z. Each portal tile is placed at y=0 and its column is opened to the sky, as in Legacy. For modern terrain with a surface below y=0, the portal uses the minimum build height plus one instead; empty Void columns keep y=0. Its non-solid portal links to the Overworld spawn with the Legacy fissure sound; the animated starfield is drawn with Minecraft's current End Portal renderer, which uses the same end-sky/end-portal art as Legacy's custom renderer. Random Ages sample Legacy's default small-feature grammar for fissure selection: the stop/one/repeat branches have rank-derived weights 1:1:3, and the fissure has weight 1 of 9 among its small-feature rules. The remainder of random feature selection still follows Rivencraft's current pipeline, rather than running Legacy's entire Age grammar. + The Rivencraft symbol-page creative tabs read a generated index of bundled symbol definitions and group Pages by each definition's category, except biome-controller roles, which appear in a separate Biome Generation tab rather than the Biome tab. Adding another valid JSON symbol under `src/main/resources/data/rivencraft/rivencraft/symbols/` includes its page in the matching category tab on the next build; a new bundled category receives its own tab. Registry-derived Block and Fluid Pages have separate tabs and both appear in optional JEI. Link Pages have a separate tab. Blank Pages appear in neither the creative tabs nor JEI's ingredient list. The server catalog still decides whether a page is valid for writing. External server data-pack symbols are not included in this bundled index. diff --git a/gradle.properties b/gradle.properties index a5e05ec..67204b0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -36,7 +36,7 @@ mod_name=Rivencraft # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=LGPL-3.0-or-later # The mod version. Rivencraft uses the x.y.z.b policy documented in README.md. -mod_version=0.4.18.2 +mod_version=0.4.19.1 immersive_portals_version=6.0.7 terrablender_version=4.1.0.8 serene_seasons_version_id=B6nTjh4b diff --git a/src/main/java/net/dnorberg/rivencraft/block/StarFissureBlock.java b/src/main/java/net/dnorberg/rivencraft/block/StarFissureBlock.java new file mode 100644 index 0000000..dad67a4 --- /dev/null +++ b/src/main/java/net/dnorberg/rivencraft/block/StarFissureBlock.java @@ -0,0 +1,84 @@ +package net.dnorberg.rivencraft.block; + +import com.mojang.serialization.MapCodec; +import net.dnorberg.rivencraft.block.entity.StarFissureBlockEntity; +import net.dnorberg.rivencraft.book.LinkingService; +import net.dnorberg.rivencraft.registry.ModSounds; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Portal; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.level.portal.DimensionTransition; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.phys.shapes.BooleanOp; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; + +/** A starry, non-obtainable portal at the base of a generated fissure. */ +public final class StarFissureBlock extends BaseEntityBlock implements Portal { + public static final MapCodec CODEC = simpleCodec(StarFissureBlock::new); + private static final VoxelShape SHAPE = Block.box(0, 0, 0, 16, 1.6, 16); + + public StarFissureBlock(BlockBehaviour.Properties properties) { + super(properties); + } + + @Override + protected MapCodec codec() { + return CODEC; + } + + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new StarFissureBlockEntity(pos, state); + } + + @Override + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return SHAPE; + } + + @Override + protected void entityInside(BlockState state, Level level, BlockPos pos, Entity entity) { + if (entity.canUsePortal(false) && Shapes.joinIsNotEmpty( + Shapes.create(entity.getBoundingBox().move(-pos.getX(), -pos.getY(), -pos.getZ())), + state.getShape(level, pos), BooleanOp.AND)) { + entity.setAsInsidePortal(this, pos); + } + } + + @Override + public DimensionTransition getPortalDestination(ServerLevel level, Entity entity, BlockPos pos) { + if (level.dimension() == Level.OVERWORLD) return null; + ServerLevel overworld = level.getServer().overworld(); + if (overworld == null) return null; + Vec3 destination = LinkingService.resolveDestination(overworld, overworld.getSharedSpawnPos(), true) + .orElse(overworld.getSharedSpawnPos().getBottomCenter()); + level.playSound(null, pos, ModSounds.LINK_FISSURE.get(), SoundSource.BLOCKS, 1.0F, 1.0F); + return new DimensionTransition(overworld, destination, + entity.getDeltaMovement(), entity.getYRot(), entity.getXRot(), + DimensionTransition.PLACE_PORTAL_TICKET); + } + + @Override + public ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state) { + return ItemStack.EMPTY; + } + + @Override + protected boolean canBeReplaced(BlockState state, Fluid fluid) { + return false; + } +} diff --git a/src/main/java/net/dnorberg/rivencraft/block/entity/StarFissureBlockEntity.java b/src/main/java/net/dnorberg/rivencraft/block/entity/StarFissureBlockEntity.java new file mode 100644 index 0000000..b5e4f7d --- /dev/null +++ b/src/main/java/net/dnorberg/rivencraft/block/entity/StarFissureBlockEntity.java @@ -0,0 +1,13 @@ +package net.dnorberg.rivencraft.block.entity; + +import net.dnorberg.rivencraft.registry.ModBlockEntities; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.entity.TheEndPortalBlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +/** Reuses Minecraft's animated starfield renderer with a valid Rivencraft block-entity type. */ +public final class StarFissureBlockEntity extends TheEndPortalBlockEntity { + public StarFissureBlockEntity(BlockPos pos, BlockState state) { + super(ModBlockEntities.STAR_FISSURE.get(), pos, state); + } +} diff --git a/src/main/java/net/dnorberg/rivencraft/book/AgeDimensionService.java b/src/main/java/net/dnorberg/rivencraft/book/AgeDimensionService.java index 2c2d2e7..1a41e00 100644 --- a/src/main/java/net/dnorberg/rivencraft/book/AgeDimensionService.java +++ b/src/main/java/net/dnorberg/rivencraft/book/AgeDimensionService.java @@ -39,6 +39,7 @@ import net.minecraft.world.level.biome.MultiNoiseBiomeSource; import net.dnorberg.rivencraft.world.ScaledBiomeSource; import net.dnorberg.rivencraft.world.AgeFlatChunkGenerator; import net.dnorberg.rivencraft.world.AgeFeatureChunkGenerator; +import net.dnorberg.rivencraft.world.StarFissureFeature; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.dimension.BuiltinDimensionTypes; import net.minecraft.world.level.dimension.DimensionType; @@ -98,6 +99,12 @@ public final class AgeDimensionService { if (spawn == null) { applyInitialCelestialPhase(level, definition); spawn = createSafeSpawn(level, definition); + if (AgeFeatureSelection.resolved(definition.plan()).stream() + .anyMatch(choice -> choice.id().equals(AgeFeatureSelection.STAR_FISSURES)) + || definition.randomFeatures().stream() + .anyMatch(choice -> choice.id().equals(AgeFeatureSelection.STAR_FISSURES))) { + StarFissureFeature.generate(level, definition.seed(), spawn); + } definition = AgeRegistrySavedData.get(level).setSpawn(definition.id(), spawn); } return Optional.of(new LinkTarget( diff --git a/src/main/java/net/dnorberg/rivencraft/book/AgeFeatureSelection.java b/src/main/java/net/dnorberg/rivencraft/book/AgeFeatureSelection.java index bf7efb3..7f7d5ce 100644 --- a/src/main/java/net/dnorberg/rivencraft/book/AgeFeatureSelection.java +++ b/src/main/java/net/dnorberg/rivencraft/book/AgeFeatureSelection.java @@ -32,7 +32,9 @@ public final class AgeFeatureSelection { private static final List FLUID_FEATURES = List.of( id("surface_lakes"), id("deep_lakes"), id("lava_lakes")); private static final long RANDOM_SKYLANDS_SALT = 0x534B594C414E4453L; + private static final long RANDOM_STAR_FISSURES_SALT = 0x535441524752414DL; public static final ResourceLocation CRYSTAL_FORMATIONS = id("crystal_formations"); + public static final ResourceLocation STAR_FISSURES = id("star_fissures"); private AgeFeatureSelection() {} @@ -176,12 +178,33 @@ public final class AgeFeatureSelection { choices.add(new Choice(id("skylands"), Optional.empty())); if (error(CRYSTAL_FORMATIONS, profile, registries) == null && random.nextInt(10) == 0) choices.add(new Choice(CRYSTAL_FORMATIONS, Optional.empty())); + if (randomStarFissure(ageSeed)) + choices.add(new Choice(STAR_FISSURES, Optional.empty())); AgeBiomeSelection biomes = AgeBiomeSelection.compile(WritingGrammar.parse(OrderedWriting.EMPTY), AgeTraits.select(ageSeed), profile, ageSeed, registries); choices.addAll(AgeStructureSelection.randomChoices(ageSeed, profile, biomes, registries)); return List.copyOf(choices); } + /** + * Legacy's default FeatureSmalls0 grammar: stop without a feature (rank 4), + * emit one (rank 4), or emit one and repeat (rank 2). Its rank-derived + * weights are 1:1:3. Within FEATURE_SMALL, the Star Fissure rule has weight + * 1 of 9: three rank-3 choices have weight 1 each and two rank-1 lake + * choices have weight 3 each. Other small features remain selected by this + * port's existing random feature pipeline; only the fissure result is used. + */ + private static boolean randomStarFissure(long ageSeed) { + Random random = new Random(mix(ageSeed ^ RANDOM_STAR_FISSURES_SALT)); + for (int step = 0; step < 27; step++) { + int branch = random.nextInt(5); + if (branch == 0) return false; + if (random.nextInt(9) == 0) return true; + if (branch == 1) return false; + } + return false; + } + private static List shuffledMaterials(long ageSeed, ResourceLocation feature) { var category = solidFeature(feature) ? BlockSymbolPages.CATEGORY : BlockSymbolPages.FLUID_CATEGORY; @@ -212,6 +235,7 @@ public final class AgeFeatureSelection { return "Feature " + choice + " needs exposed solid ground, not Cave or Void terrain"; return null; } + if (choice.equals(STAR_FISSURES)) return null; if (skylands(choice)) return null; if (tendrils(choice)) return null; if (spheres(choice)) return null; diff --git a/src/main/java/net/dnorberg/rivencraft/book/AgePersistenceGameTests.java b/src/main/java/net/dnorberg/rivencraft/book/AgePersistenceGameTests.java index 2d76122..b697972 100644 --- a/src/main/java/net/dnorberg/rivencraft/book/AgePersistenceGameTests.java +++ b/src/main/java/net/dnorberg/rivencraft/book/AgePersistenceGameTests.java @@ -79,11 +79,13 @@ public final class AgePersistenceGameTests { "A random Age may roll at most two distinct structure features"); for (AgeFeatureSelection.Choice choice : age.randomFeatures()) { helper.assertTrue(AgeFeatureSelection.skylands(choice.id()) + || choice.id().equals(AgeFeatureSelection.CRYSTAL_FORMATIONS) + || choice.id().equals(AgeFeatureSelection.STAR_FISSURES) || AgeStructureSelection.feature(choice.id()) ? choice.material().isEmpty() : choice.material().isPresent() && AgeFeatureSelection.materialError(choice) == null, - "Random material features need valid blocks or fluids; Skylands and structures need none"); + "Random material features need valid blocks or fluids; material-free features need none"); } } AgeRegistrySavedData registry = AgeRegistrySavedData.get(helper.getLevel()); diff --git a/src/main/java/net/dnorberg/rivencraft/book/FeatureWritingGameTests.java b/src/main/java/net/dnorberg/rivencraft/book/FeatureWritingGameTests.java index 366c88c..e1b51ff 100644 --- a/src/main/java/net/dnorberg/rivencraft/book/FeatureWritingGameTests.java +++ b/src/main/java/net/dnorberg/rivencraft/book/FeatureWritingGameTests.java @@ -40,7 +40,8 @@ public final class FeatureWritingGameTests { "feature/bastions", "feature/buried_treasure", "feature/shipwrecks", "feature/ocean_ruins", "feature/pillager_outposts", "feature/ruined_portals", "feature/nether_fossils", "feature/ancient_cities", "feature/trail_ruins", - "feature/dense_ores", "feature/obelisks", "feature/crystal_formations"); + "feature/dense_ores", "feature/obelisks", "feature/crystal_formations", + "feature/star_fissures"); helper.assertTrue(PageItem.bundledCreativeSymbols().containsAll(pages), "Supported feature pages must appear in the creative and JEI symbol feed"); for (String path : pages) { @@ -74,6 +75,7 @@ public final class FeatureWritingGameTests { || AgeFeatureSelection.spikes(choice.id()) || AgeFeatureSelection.obelisks(choice.id()) || choice.id().equals(AgeFeatureSelection.CRYSTAL_FORMATIONS) + || choice.id().equals(AgeFeatureSelection.STAR_FISSURES) || choice.id().equals(AgeDenseOres.ID)) continue; var placement = AgeFeatureSelection.placedFeature(choice.id()); helper.assertTrue(registries.lookupOrThrow(Registries.PLACED_FEATURE) @@ -187,8 +189,9 @@ public final class FeatureWritingGameTests { helper.assertTrue(random.stream().allMatch(choice -> AgeFeatureSelection.tendrils(choice.id()) || AgeFeatureSelection.spheres(choice.id()) || AgeFeatureSelection.skylands(choice.id()) + || choice.id().equals(AgeFeatureSelection.STAR_FISSURES) || AgeStructureSelection.feature(choice.id())), - "Cave random Ages must not choose incompatible surface features"); + "Cave random Ages must only choose compatible features, including Star Fissures"); if (random.stream().anyMatch(choice -> AgeFeatureSelection.tendrils(choice.id()))) found = true; } helper.assertTrue(found, "A page-free random Cave Age must be able to roll Tendrils"); diff --git a/src/main/java/net/dnorberg/rivencraft/client/ClientEvents.java b/src/main/java/net/dnorberg/rivencraft/client/ClientEvents.java index b84bfd1..49a6a72 100644 --- a/src/main/java/net/dnorberg/rivencraft/client/ClientEvents.java +++ b/src/main/java/net/dnorberg/rivencraft/client/ClientEvents.java @@ -35,6 +35,7 @@ public final class ClientEvents { public static void registerRenderers(EntityRenderersEvent.RegisterRenderers event) { event.registerBlockEntityRenderer(ModBlockEntities.BOOK_STAND.get(), BookStandRenderer::new); event.registerBlockEntityRenderer(ModBlockEntities.WRITING_DESK.get(), WritingDeskRenderer::new); + event.registerBlockEntityRenderer(ModBlockEntities.STAR_FISSURE.get(), StarFissureRenderer::new); } @SubscribeEvent diff --git a/src/main/java/net/dnorberg/rivencraft/client/StarFissureRenderer.java b/src/main/java/net/dnorberg/rivencraft/client/StarFissureRenderer.java new file mode 100644 index 0000000..6396188 --- /dev/null +++ b/src/main/java/net/dnorberg/rivencraft/client/StarFissureRenderer.java @@ -0,0 +1,22 @@ +package net.dnorberg.rivencraft.client; + +import net.dnorberg.rivencraft.block.entity.StarFissureBlockEntity; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.client.renderer.blockentity.TheEndPortalRenderer; + +/** Uses the modern end-portal starfield shader at Legacy's full-block face positions. */ +public final class StarFissureRenderer extends TheEndPortalRenderer { + public StarFissureRenderer(BlockEntityRendererProvider.Context context) { + super(context); + } + + @Override + protected float getOffsetUp() { + return 0.0F; + } + + @Override + protected float getOffsetDown() { + return 1.0F; + } +} diff --git a/src/main/java/net/dnorberg/rivencraft/registry/ModBlockEntities.java b/src/main/java/net/dnorberg/rivencraft/registry/ModBlockEntities.java index 9efb719..0239541 100644 --- a/src/main/java/net/dnorberg/rivencraft/registry/ModBlockEntities.java +++ b/src/main/java/net/dnorberg/rivencraft/registry/ModBlockEntities.java @@ -5,6 +5,7 @@ import net.dnorberg.rivencraft.block.entity.BookStandBlockEntity; import net.dnorberg.rivencraft.block.entity.BookBinderBlockEntity; import net.dnorberg.rivencraft.block.entity.WritingDeskBlockEntity; import net.dnorberg.rivencraft.block.entity.InkMixerBlockEntity; +import net.dnorberg.rivencraft.block.entity.StarFissureBlockEntity; import net.minecraft.core.registries.Registries; import net.minecraft.world.level.block.entity.BlockEntityType; import net.neoforged.bus.api.IEventBus; @@ -28,6 +29,9 @@ public final class ModBlockEntities { public static final DeferredHolder, BlockEntityType> INK_MIXER = BLOCK_ENTITIES.register("ink_mixer", () -> BlockEntityType.Builder .of(InkMixerBlockEntity::new, ModBlocks.INK_MIXER.get()).build(null)); + public static final DeferredHolder, BlockEntityType> STAR_FISSURE = + BLOCK_ENTITIES.register("star_fissure", () -> BlockEntityType.Builder + .of(StarFissureBlockEntity::new, ModBlocks.STAR_FISSURE.get()).build(null)); private ModBlockEntities() { } diff --git a/src/main/java/net/dnorberg/rivencraft/registry/ModBlocks.java b/src/main/java/net/dnorberg/rivencraft/registry/ModBlocks.java index 03cab35..d4d442c 100644 --- a/src/main/java/net/dnorberg/rivencraft/registry/ModBlocks.java +++ b/src/main/java/net/dnorberg/rivencraft/registry/ModBlocks.java @@ -6,6 +6,7 @@ import net.dnorberg.rivencraft.block.BookBinderBlock; import net.dnorberg.rivencraft.block.WritingDeskBlock; import net.dnorberg.rivencraft.block.InkMixerBlock; import net.dnorberg.rivencraft.block.BuddingCrystalBlock; +import net.dnorberg.rivencraft.block.StarFissureBlock; import net.minecraft.world.level.block.AmethystClusterBlock; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; @@ -52,6 +53,9 @@ public final class ModBlocks { public static final DeferredBlock SMALL_CRYSTAL_BUD = BLOCKS.registerBlock("small_crystal_bud", properties -> new AmethystClusterBlock(3.0F, 4.0F, properties), BlockBehaviour.Properties.ofFullCopy(Blocks.SMALL_AMETHYST_BUD)); + public static final DeferredBlock STAR_FISSURE = BLOCKS.registerBlock("star_fissure", + StarFissureBlock::new, BlockBehaviour.Properties.ofFullCopy(Blocks.END_PORTAL) + .lightLevel(state -> 6)); private ModBlocks() { } diff --git a/src/main/java/net/dnorberg/rivencraft/registry/ModSounds.java b/src/main/java/net/dnorberg/rivencraft/registry/ModSounds.java index 05798ff..6c5d7c9 100644 --- a/src/main/java/net/dnorberg/rivencraft/registry/ModSounds.java +++ b/src/main/java/net/dnorberg/rivencraft/registry/ModSounds.java @@ -14,6 +14,7 @@ public final class ModSounds { DeferredRegister.create(Registries.SOUND_EVENT, Rivencraft.MOD_ID); public static final DeferredHolder LINK = register("linking.link"); + public static final DeferredHolder LINK_FISSURE = register("linking.link-fissure"); private ModSounds() { } diff --git a/src/main/java/net/dnorberg/rivencraft/world/StarFissureFeature.java b/src/main/java/net/dnorberg/rivencraft/world/StarFissureFeature.java new file mode 100644 index 0000000..35f2458 --- /dev/null +++ b/src/main/java/net/dnorberg/rivencraft/world/StarFissureFeature.java @@ -0,0 +1,77 @@ +package net.dnorberg.rivencraft.world; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import net.dnorberg.rivencraft.registry.ModBlocks; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.levelgen.Heightmap; + +/** + * Ports the footprint and carving of Mystcraft's WorldGenMystStarFissure. + * The original is LGPL-3.0, copyright XCompWiz and Mystcraft contributors. + */ +public final class StarFissureFeature { + private static final long SALT = 0x5354415246495353L; + + private StarFissureFeature() {} + + /** Legacy chooses a point 8–23 blocks inside/after the spawn chunk, then grows the rift along +Z. */ + public static List footprint(long ageSeed, BlockPos spawn) { + long chunkX = spawn.getX() >> 4; + long chunkZ = spawn.getZ() >> 4; + Random random = new Random(ageSeed ^ SALT ^ chunkX ^ (chunkZ << 32)); + int originX = ((int) chunkX << 4) + random.nextInt(16) + 8; + int originZ = ((int) chunkZ << 4) + random.nextInt(16) + 8; + int length = random.nextInt(8) + 10; + int[][] intervals = new int[length][2]; + List columns = new ArrayList<>(); + addRow(columns, originX, originZ, 0, 0, 0); + for (int row = 1; row < length; row++) { + int range = length + Math.min(row, length - row) + 1; + int right = (random.nextInt(range) - (range >> 1) + intervals[row - 1][1]) / 2; + int left = (random.nextInt(range) - (range >> 1) + intervals[row - 1][0]) / 2; + if (left > right) { + int swap = left; + left = right; + right = swap; + } + left = Math.min(left, intervals[row - 1][1]); + right = Math.max(right, intervals[row - 1][0]); + intervals[row][0] = left; + intervals[row][1] = right; + addRow(columns, originX, originZ, row, left, right); + } + return List.copyOf(columns); + } + + private static void addRow(List columns, int originX, int originZ, int row, int left, int right) { + for (int x = left; x <= right; x++) { + columns.add(new BlockPos(originX + x, 0, originZ + row * 2)); + columns.add(new BlockPos(originX + x, 0, originZ + row * 2 + 1)); + } + } + + public static void generate(ServerLevel level, long ageSeed, BlockPos spawn) { + List columns = footprint(ageSeed, spawn); + BlockPos first = columns.getFirst(); + // 1.12 worlds began at y=0. Modern superflat can sit below it, so use the + // modern world floor there. Empty Void columns keep Legacy's y=0 portal. + int surface = level.getHeight(Heightmap.Types.WORLD_SURFACE, first.getX(), first.getZ()); + int minY = level.getMinBuildHeight(); + int floorY = surface > minY && surface <= 0 ? minY + 1 : Math.max(0, minY + 1); + BlockPos.MutableBlockPos mutable = new BlockPos.MutableBlockPos(); + for (BlockPos column : columns) { + int top = level.getHeight(Heightmap.Types.WORLD_SURFACE, column.getX(), column.getZ()); + level.setBlock(mutable.set(column.getX(), floorY, column.getZ()), + ModBlocks.STAR_FISSURE.get().defaultBlockState(), 2); + // Legacy clears all blocks above each portal tile to the sky. Heightmap + // bounds the same work without iterating already-empty world height. + for (int y = floorY + 1; y < top; y++) { + level.setBlock(mutable.set(column.getX(), y, column.getZ()), Blocks.AIR.defaultBlockState(), 2); + } + } + } +} diff --git a/src/main/java/net/dnorberg/rivencraft/world/StarFissureGameTests.java b/src/main/java/net/dnorberg/rivencraft/world/StarFissureGameTests.java new file mode 100644 index 0000000..9cdfb7f --- /dev/null +++ b/src/main/java/net/dnorberg/rivencraft/world/StarFissureGameTests.java @@ -0,0 +1,103 @@ +package net.dnorberg.rivencraft.world; + +import java.util.List; +import net.dnorberg.rivencraft.Rivencraft; +import net.dnorberg.rivencraft.book.AgeFeatureSelection; +import net.dnorberg.rivencraft.book.AgeGenerationPlan; +import net.dnorberg.rivencraft.book.AgeGenerationProfiles; +import net.dnorberg.rivencraft.book.AgeRuntimeProfiles; +import net.dnorberg.rivencraft.book.AgeTraits; +import net.dnorberg.rivencraft.item.PageItem; +import net.dnorberg.rivencraft.registry.ModBlocks; +import net.dnorberg.rivencraft.writing.OrderedWriting; +import net.dnorberg.rivencraft.writing.SymbolReference; +import net.dnorberg.rivencraft.writing.WritingEntry; +import net.minecraft.core.BlockPos; +import net.minecraft.gametest.framework.GameTest; +import net.minecraft.gametest.framework.GameTestHelper; +import net.minecraft.resources.ResourceLocation; +import net.neoforged.neoforge.gametest.GameTestHolder; +import net.neoforged.neoforge.gametest.PrefixGameTestTemplate; + +/** Pure selection and footprint checks; runtime carving is left to the in-game visual check. */ +@GameTestHolder(Rivencraft.MOD_ID) +@PrefixGameTestTemplate(false) +public final class StarFissureGameTests { + private StarFissureGameTests() {} + + @GameTest(template = "empty") + public static void authoredFissureIsWritableAndSaved(GameTestHelper helper) { + var registries = helper.getLevel().registryAccess(); + helper.assertTrue(PageItem.bundledCreativeSymbols().contains("feature/star_fissures"), + "Star Fissures must appear in the creative and JEI page feed"); + helper.assertTrue(PageItem.isUsableWriting(PageItem.createBundledCreativePage("feature/star_fissures")), + "The page must be usable in an authored book"); + OrderedWriting writing = new OrderedWriting(List.of(WritingEntry.linkPanel(), + page("terrain/standard"), page("feature/star_fissures"))); + AgeGenerationPlan plan = AgeGenerationPlan.compile(writing, 58L, AgeGenerationProfiles.STANDARD, + AgeTraits.select(58L), registries); + var resolved = AgeFeatureSelection.resolved(plan); + helper.assertValueEqual(resolved.size(), 1, "One authored fissure must remain one feature choice"); + helper.assertValueEqual(resolved.getFirst().id(), AgeFeatureSelection.STAR_FISSURES, + "The authored feature must be a Star Fissure"); + helper.assertTrue(resolved.getFirst().material().isEmpty(), "Star Fissures consume no material page"); + helper.assertValueEqual(AgeFeatureSelection.resolved(AgeGenerationPlan.load(plan.save())), resolved, + "The feature must survive Age-plan save and load"); + helper.assertTrue(ModBlocks.STAR_FISSURE.get().defaultBlockState() != null, + "The non-obtainable star portal block must be registered"); + for (String terrain : List.of("standard", "amplified", "island", "flat", "cave", "void")) + helper.assertTrue(AgeFeatureSelection.error(AgeFeatureSelection.STAR_FISSURES, + AgeRuntimeProfiles.resolve(id(terrain)), registries) == null, + "Legacy fissures can appear on " + terrain + " terrain"); + helper.succeed(); + } + + @GameTest(template = "empty") + public static void randomFissuresAndSpawnFootprintAreStable(GameTestHelper helper) { + var registries = helper.getLevel().registryAccess(); + int selected = 0; + for (long seed = 0; seed < 128; seed++) { + boolean standard = hasRandomFissure(seed, AgeGenerationProfiles.STANDARD, registries); + if (standard) selected++; + for (String terrain : List.of("cave", "void")) + helper.assertValueEqual(hasRandomFissure(seed, id(terrain), registries), standard, + "Legacy small-feature selection must not depend on terrain"); + } + helper.assertTrue(selected > 0 && selected < 128, + "The weighted Legacy grammar should select fissures in some, not all, random Ages"); + BlockPos spawn = new BlockPos(0, 64, 0); + var footprint = StarFissureFeature.footprint(58L, spawn); + helper.assertValueEqual(footprint, StarFissureFeature.footprint(58L, spawn), + "The Age seed and spawn must reproduce the same fissure"); + int minZ = footprint.stream().mapToInt(BlockPos::getZ).min().orElseThrow(); + int maxZ = footprint.stream().mapToInt(BlockPos::getZ).max().orElseThrow(); + helper.assertTrue(minZ >= 8 && minZ <= 23, + "Legacy starts 8–23 blocks past the spawn chunk's Z edge"); + helper.assertTrue(maxZ - minZ + 1 >= 20 && maxZ - minZ + 1 <= 34, + "Legacy's rift spans 10–17 paired Z rows"); + for (int z = minZ; z <= maxZ; z++) { + int row = z; + var xs = footprint.stream().filter(pos -> pos.getZ() == row) + .mapToInt(BlockPos::getX).sorted().toArray(); + helper.assertTrue(xs.length > 0, "Every Z row must contain portal tiles"); + for (int i = 1; i < xs.length; i++) + helper.assertValueEqual(xs[i], xs[i - 1] + 1, + "Each jagged Legacy row remains contiguous"); + } + helper.succeed(); + } + + private static ResourceLocation id(String path) { + return ResourceLocation.fromNamespaceAndPath(Rivencraft.MOD_ID, path); + } + + private static boolean hasRandomFissure(long seed, ResourceLocation terrain, + net.minecraft.core.RegistryAccess registries) { + return AgeFeatureSelection.randomChoices(seed, AgeRuntimeProfiles.resolve(terrain), registries).stream() + .anyMatch(choice -> choice.id().equals(AgeFeatureSelection.STAR_FISSURES)); + } + + private static WritingEntry page(String path) { + return WritingEntry.symbol(new SymbolReference(id(path))); + } +} diff --git a/src/main/resources/assets/rivencraft/blockstates/star_fissure.json b/src/main/resources/assets/rivencraft/blockstates/star_fissure.json new file mode 100644 index 0000000..ae26b92 --- /dev/null +++ b/src/main/resources/assets/rivencraft/blockstates/star_fissure.json @@ -0,0 +1 @@ +{"variants":{"":{"model":"rivencraft:block/star_fissure"}}} diff --git a/src/main/resources/assets/rivencraft/lang/en_us.json b/src/main/resources/assets/rivencraft/lang/en_us.json index f233777..6e5b4ef 100644 --- a/src/main/resources/assets/rivencraft/lang/en_us.json +++ b/src/main/resources/assets/rivencraft/lang/en_us.json @@ -289,6 +289,9 @@ "symbol.rivencraft.feature.obelisks.description": "Add rare tall obelisks on exposed solid ground, with a random or selected block material.", "symbol.rivencraft.feature.crystal_formations": "Crystal Formations", "symbol.rivencraft.feature.crystal_formations.description": "Add blue crystal formations whose budding blocks grow harvestable clusters.", + "symbol.rivencraft.feature.star_fissures": "Star Fissures", + "symbol.rivencraft.feature.star_fissures.description": "Open a starry fissure near this Age's spawn that links back to the Overworld.", + "block.rivencraft.star_fissure": "Star Fissure", "block.rivencraft.crystal_block": "Crystal Block", "block.rivencraft.budding_crystal": "Budding Crystal", "block.rivencraft.small_crystal_bud": "Small Crystal Bud", diff --git a/src/main/resources/assets/rivencraft/models/block/star_fissure.json b/src/main/resources/assets/rivencraft/models/block/star_fissure.json new file mode 100644 index 0000000..908d864 --- /dev/null +++ b/src/main/resources/assets/rivencraft/models/block/star_fissure.json @@ -0,0 +1 @@ +{"parent":"minecraft:block/end_portal"} diff --git a/src/main/resources/assets/rivencraft/sounds.json b/src/main/resources/assets/rivencraft/sounds.json index 2929317..6751342 100644 --- a/src/main/resources/assets/rivencraft/sounds.json +++ b/src/main/resources/assets/rivencraft/sounds.json @@ -6,5 +6,9 @@ "name": "rivencraft:linking/link" } ] + }, + "linking.link-fissure": { + "category": "player", + "sounds": [{"name": "rivencraft:linking/link-fissure"}] } } diff --git a/src/main/resources/assets/rivencraft/sounds/linking/link-fissure.ogg b/src/main/resources/assets/rivencraft/sounds/linking/link-fissure.ogg new file mode 100644 index 0000000000000000000000000000000000000000..23e7cbb2a4088d9c1b534963cad0d96fc18d180f GIT binary patch literal 121513 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 aX^Ff^>mxso!VWA+9ONE54SE$WC;tVxV|#o6 literal 0 HcmV?d00001 diff --git a/src/main/resources/data/rivencraft/rivencraft/symbols/feature/star_fissures.json b/src/main/resources/data/rivencraft/rivencraft/symbols/feature/star_fissures.json new file mode 100644 index 0000000..3db5309 --- /dev/null +++ b/src/main/resources/data/rivencraft/rivencraft/symbols/feature/star_fissures.json @@ -0,0 +1,8 @@ +{ + "schema_version": 2, + "name": "symbol.rivencraft.feature.star_fissures", + "description": "symbol.rivencraft.feature.star_fissures.description", + "category": "rivencraft:feature", + "semantics": { "role": "feature", "value": "rivencraft:star_fissures" }, + "poem": "Star Fissure World Home" +}