From 3e4f4f2528544e3f275af65f18858f586891eb80 Mon Sep 17 00:00:00 2001 From: Josephine Rueckert Date: Sun, 13 Dec 2020 22:04:35 +0100 Subject: [PATCH 1/4] feat(JOML): migrate world generation --- src/main/java/org/terasology/AlchemyPlantFacet.java | 4 ++-- src/main/java/org/terasology/AlchemyPlantProvider.java | 6 +++--- src/main/java/org/terasology/AlchemyPlantRasterizer.java | 8 +++++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/terasology/AlchemyPlantFacet.java b/src/main/java/org/terasology/AlchemyPlantFacet.java index 98f9187..17d81ed 100644 --- a/src/main/java/org/terasology/AlchemyPlantFacet.java +++ b/src/main/java/org/terasology/AlchemyPlantFacet.java @@ -1,12 +1,12 @@ package org.terasology; -import org.terasology.math.Region3i; +import org.terasology.world.block.BlockRegion; import org.terasology.world.generation.Border3D; import org.terasology.world.generation.facets.base.BaseBooleanFieldFacet3D; public class AlchemyPlantFacet extends BaseBooleanFieldFacet3D { - public AlchemyPlantFacet(Region3i targetRegion, Border3D border) { + public AlchemyPlantFacet(BlockRegion targetRegion, Border3D border) { super(targetRegion, border); } } \ No newline at end of file diff --git a/src/main/java/org/terasology/AlchemyPlantProvider.java b/src/main/java/org/terasology/AlchemyPlantProvider.java index 2d83e59..9c18ee8 100644 --- a/src/main/java/org/terasology/AlchemyPlantProvider.java +++ b/src/main/java/org/terasology/AlchemyPlantProvider.java @@ -56,10 +56,10 @@ public void process(GeneratingRegion region) { AlchemyPlantFacet facet = new AlchemyPlantFacet(region.getRegion(), border); SurfacesFacet surfacesFacet = region.getRegionFacet(SurfacesFacet.class); - for (int x = surfacesFacet.getWorldRegion().minX(); x <= surfacesFacet.getWorldRegion().maxX(); x++) { - for (int z = surfacesFacet.getWorldRegion().minZ(); z <= surfacesFacet.getWorldRegion().maxZ(); z++) { + for (int x = surfacesFacet.getWorldRegion().getMinX(); x <= surfacesFacet.getWorldRegion().getMaxX(); x++) { + for (int z = surfacesFacet.getWorldRegion().getMinZ(); z <= surfacesFacet.getWorldRegion().getMaxZ(); z++) { for (int surfaceHeight : surfacesFacet.getWorldColumn(x, z)) { - if (facet.getWorldRegion().encompasses(x, surfaceHeight + 1, z) + if (facet.getWorldRegion().containsBlock(x, surfaceHeight + 1, z) && noise.noise(x, surfaceHeight, z) > configMap.get(configuration.plantRarity)) { facet.setWorld(x, surfaceHeight + 1, z, true); } diff --git a/src/main/java/org/terasology/AlchemyPlantRasterizer.java b/src/main/java/org/terasology/AlchemyPlantRasterizer.java index 5ac88c6..e76db18 100644 --- a/src/main/java/org/terasology/AlchemyPlantRasterizer.java +++ b/src/main/java/org/terasology/AlchemyPlantRasterizer.java @@ -1,10 +1,12 @@ package org.terasology; +import org.joml.Vector3i; +import org.joml.Vector3ic; import org.terasology.math.ChunkMath; -import org.terasology.math.geom.Vector3i; import org.terasology.registry.CoreRegistry; import org.terasology.world.block.Block; import org.terasology.world.block.BlockManager; +import org.terasology.world.block.BlockRegions; import org.terasology.world.chunks.CoreChunk; import org.terasology.world.generation.Region; import org.terasology.world.generation.WorldRasterizerPlugin; @@ -62,9 +64,9 @@ public void initialize() { public void generateChunk(CoreChunk chunk, Region chunkRegion) { AlchemyPlantFacet alchemyPlantFacet = chunkRegion.getFacet(AlchemyPlantFacet.class); - for (Vector3i block : alchemyPlantFacet.getWorldRegion()) { + for (Vector3ic block : BlockRegions.iterableInPlace(alchemyPlantFacet.getWorldRegion())) { if (alchemyPlantFacet.getWorld(block)) { - chunk.setBlock(ChunkMath.calcRelativeBlockPos(block), block_map.get(rand.nextInt(8))); + chunk.setBlock(ChunkMath.calcRelativeBlockPos(block, new Vector3i()), block_map.get(rand.nextInt(8))); } } } From e59c72486d5c0e0a5537ed22fe4369afe148502f Mon Sep 17 00:00:00 2001 From: Josephine Rueckert Date: Fri, 25 Dec 2020 13:48:48 +0100 Subject: [PATCH 2/4] feat(BlockRegion): align with recent BlockRegion changes --- src/main/java/org/terasology/AlchemyPlantProvider.java | 6 +++--- src/main/java/org/terasology/AlchemyPlantRasterizer.java | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/terasology/AlchemyPlantProvider.java b/src/main/java/org/terasology/AlchemyPlantProvider.java index 9c18ee8..ea4bd6c 100644 --- a/src/main/java/org/terasology/AlchemyPlantProvider.java +++ b/src/main/java/org/terasology/AlchemyPlantProvider.java @@ -56,10 +56,10 @@ public void process(GeneratingRegion region) { AlchemyPlantFacet facet = new AlchemyPlantFacet(region.getRegion(), border); SurfacesFacet surfacesFacet = region.getRegionFacet(SurfacesFacet.class); - for (int x = surfacesFacet.getWorldRegion().getMinX(); x <= surfacesFacet.getWorldRegion().getMaxX(); x++) { - for (int z = surfacesFacet.getWorldRegion().getMinZ(); z <= surfacesFacet.getWorldRegion().getMaxZ(); z++) { + for (int x = surfacesFacet.getWorldRegion().minX(); x <= surfacesFacet.getWorldRegion().maxX(); x++) { + for (int z = surfacesFacet.getWorldRegion().minZ(); z <= surfacesFacet.getWorldRegion().maxZ(); z++) { for (int surfaceHeight : surfacesFacet.getWorldColumn(x, z)) { - if (facet.getWorldRegion().containsBlock(x, surfaceHeight + 1, z) + if (facet.getWorldRegion().contains(x, surfaceHeight + 1, z) && noise.noise(x, surfaceHeight, z) > configMap.get(configuration.plantRarity)) { facet.setWorld(x, surfaceHeight + 1, z, true); } diff --git a/src/main/java/org/terasology/AlchemyPlantRasterizer.java b/src/main/java/org/terasology/AlchemyPlantRasterizer.java index e76db18..c276984 100644 --- a/src/main/java/org/terasology/AlchemyPlantRasterizer.java +++ b/src/main/java/org/terasology/AlchemyPlantRasterizer.java @@ -6,7 +6,6 @@ import org.terasology.registry.CoreRegistry; import org.terasology.world.block.Block; import org.terasology.world.block.BlockManager; -import org.terasology.world.block.BlockRegions; import org.terasology.world.chunks.CoreChunk; import org.terasology.world.generation.Region; import org.terasology.world.generation.WorldRasterizerPlugin; @@ -64,7 +63,7 @@ public void initialize() { public void generateChunk(CoreChunk chunk, Region chunkRegion) { AlchemyPlantFacet alchemyPlantFacet = chunkRegion.getFacet(AlchemyPlantFacet.class); - for (Vector3ic block : BlockRegions.iterableInPlace(alchemyPlantFacet.getWorldRegion())) { + for (Vector3ic block : alchemyPlantFacet.getWorldRegion()) { if (alchemyPlantFacet.getWorld(block)) { chunk.setBlock(ChunkMath.calcRelativeBlockPos(block, new Vector3i()), block_map.get(rand.nextInt(8))); } From 56070362bdbf3b279ed29e2ff9823e48c393c7cc Mon Sep 17 00:00:00 2001 From: Josephine Rueckert Date: Fri, 25 Dec 2020 15:29:53 +0100 Subject: [PATCH 3/4] chore: add -SNAPSHOT due to recent release process changes --- module.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module.txt b/module.txt index 44d8301..96a4e29 100644 --- a/module.txt +++ b/module.txt @@ -1,6 +1,6 @@ { "id": "AlchemyPlantGenerator", - "version": "1.0.0", + "version": "1.0.0-SNAPSHOT", "author": "Thomas O'Keeffe", "displayName": "Alchemy - Plant Generator", "description": "Simple module for spawning plants from the Alchemy module into the world.", From 7fdc596c246d6546b8cdd1a876ef7133e65a8a10 Mon Sep 17 00:00:00 2001 From: Josephine Rueckert Date: Sat, 26 Dec 2020 20:19:20 +0100 Subject: [PATCH 4/4] chore: retrigger checks