diff --git a/src/main/java/org/betterx/betterend/registry/EndItems.java b/src/main/java/org/betterx/betterend/registry/EndItems.java index 9187160f..010cdf46 100644 --- a/src/main/java/org/betterx/betterend/registry/EndItems.java +++ b/src/main/java/org/betterx/betterend/registry/EndItems.java @@ -458,6 +458,37 @@ public class EndItems { return InteractionResult.SUCCESS; } return InteractionResult.FAIL; + }, false, BuiltInRegistries.ITEM.getKey(Items.WATER_BUCKET)) + + ); + + registerEndItem( + "debug/fill_air", + new DebugDataItem((player, entity, useOnContext) -> { + if (entity instanceof StructureBlockEntity e) { + final var level = useOnContext.getLevel(); + final var offset = e.getStructurePos(); + var size = e.getStructureSize(); + var pos = useOnContext.getClickedPos().offset(offset); + + for (int x = 0; x < size.getX(); x++) { + for (int y = 0; y < size.getY(); y++) { + for (int z = 0; z < size.getZ(); z++) { + var blockPos = pos.offset(x, y, z); + var state = level.getBlockState(blockPos); + if (state.isAir()) { + level.setBlock( + blockPos, + Blocks.STRUCTURE_VOID.defaultBlockState(), + BlocksHelper.SET_SILENT + ); + } + } + } + } + return InteractionResult.SUCCESS; + } + return InteractionResult.FAIL; }, false, BuiltInRegistries.ITEM.getKey(Items.BUCKET)) ); diff --git a/src/main/java/org/betterx/betterend/registry/EndStructures.java b/src/main/java/org/betterx/betterend/registry/EndStructures.java index a18d40f5..286918a3 100644 --- a/src/main/java/org/betterx/betterend/registry/EndStructures.java +++ b/src/main/java/org/betterx/betterend/registry/EndStructures.java @@ -77,7 +77,7 @@ public class EndStructures { .adjustment(TerrainAdjustment.BEARD_THIN) .projectStartToHeightmap(Heightmap.Types.WORLD_SURFACE_WG) .maxDepth(6) - .startHeight(ConstantHeight.of(VerticalAnchor.absolute(20))) + .startHeight(ConstantHeight.of(VerticalAnchor.absolute(5))) .step(Decoration.SURFACE_STRUCTURES) .randomPlacement(34, 8) .build(); diff --git a/src/main/java/org/betterx/betterend/world/structures/village/VillagePools.java b/src/main/java/org/betterx/betterend/world/structures/village/VillagePools.java index 001956dc..30c4e7e4 100644 --- a/src/main/java/org/betterx/betterend/world/structures/village/VillagePools.java +++ b/src/main/java/org/betterx/betterend/world/structures/village/VillagePools.java @@ -56,6 +56,7 @@ public class VillagePools { Holder.Reference mossifyProcessor = processorGetter.getOrThrow(EndProcessors.WEATHERED_10_PERCENT); Holder.Reference crack = processorGetter.getOrThrow(EndProcessors.CRACK_20_PERCENT); + Holder.Reference crackAndWeather = processorGetter.getOrThrow(EndProcessors.CRACK_AND_WEATHER); Holder.Reference endStreetProcessor = processorGetter.getOrThrow(EndProcessors.END_STREET); final Holder.Reference emptyProcessor = processorGetter.getOrThrow(ProcessorLists.EMPTY); @@ -77,26 +78,30 @@ public class VillagePools { terminatorPool, ImmutableList.of( Pair.of(StructurePoolElement.empty(), 5), - single("village/houses/small_house_01", emptyProcessor, 2), - single("village/houses/small_house_02", emptyProcessor, 2), + single("village/houses/small_house_01", emptyProcessor, 4), + single("village/houses/small_house_02", emptyProcessor, 4), single("village/houses/small_house_03", emptyProcessor, 2), - single("village/houses/small_house_04", emptyProcessor, 2), - single("village/houses/small_house_05", emptyProcessor, 2), - single("village/houses/small_house_06", emptyProcessor, 2), - single("village/houses/small_house_07", emptyProcessor, 2), - single("village/houses/small_house_08", emptyProcessor, 2), - single("village/houses/small_house_09", emptyProcessor, 2), + single("village/houses/small_house_04", emptyProcessor, 4), + single("village/houses/small_house_05", emptyProcessor, 4), + single("village/houses/small_house_06", emptyProcessor, 4), + single("village/houses/small_house_07", emptyProcessor, 4), + single("village/houses/small_house_08", emptyProcessor, 4), + single("village/houses/small_house_09", emptyProcessor, 4), single("village/houses/small_house_10", emptyProcessor, 2), - single("village/houses/small_house_11", emptyProcessor, 2), - single("village/houses/small_house_12", emptyProcessor, 2), - single("village/houses/small_house_13", emptyProcessor, 2), - single("village/houses/small_house_14", emptyProcessor, 2), - single("village/houses/small_house_15", emptyProcessor, 2), + single("village/houses/small_house_11", emptyProcessor, 1), + single("village/houses/small_house_12", emptyProcessor, 4), + single("village/houses/small_house_13", emptyProcessor, 4), + single("village/houses/small_house_14", emptyProcessor, 4), + single("village/houses/small_house_15", emptyProcessor, 4), single("village/houses/small_house_16", emptyProcessor, 2), - single("village/houses/small_house_17", emptyProcessor, 2), - single("village/houses/animal_pen_01", emptyProcessor, 1), - single("village/decoration/stable_01", crack, 1), - single("village/decoration/pond_01", mossifyProcessor, 3) + single("village/houses/small_house_17", crackAndWeather, 4), + single("village/houses/animal_pen_01", emptyProcessor, 3), + single("village/decoration/stable_01", crack, 2), + single("village/decoration/pond_01", mossifyProcessor, 1), + single("village/decoration/respawn_01", endStreetProcessor, 1), + single("village/decoration/respawn_02", endStreetProcessor, 1), + single("village/decoration/fountain_01", endStreetProcessor, 1) + ), StructureTemplatePool.Projection.RIGID )); @@ -106,20 +111,18 @@ public class VillagePools { single("village/streets/street_01", endStreetProcessor, 6), single("village/streets/street_02", endStreetProcessor, 5), single("village/streets/street_03", endStreetProcessor, 7), - single("village/streets/curve_01", endStreetProcessor, 10), - single("village/streets/curve_02", endStreetProcessor, 12), + single("village/streets/street_04", endStreetProcessor, 6), + single("village/streets/curve_01", endStreetProcessor, 8), + single("village/streets/curve_02", endStreetProcessor, 8), single("village/streets/t_crossing_01", endStreetProcessor, 4), - single("village/streets/t_crossing_02", endStreetProcessor, 5), - single("village/streets/respawn_crossing_01", endStreetProcessor, 5), - single("village/streets/respawn_crossing_02", endStreetProcessor, 5), - single("village/decoration/fountain_01", endStreetProcessor, 4) + single("village/streets/t_crossing_02", endStreetProcessor, 4) ), StructureTemplatePool.Projection.TERRAIN_MATCHING )); ctx.register(VillagePools.STREET_DECO_KEY, new StructureTemplatePool( terminatorPool, ImmutableList.of( - Pair.of(StructurePoolElement.empty(), 5), + Pair.of(StructurePoolElement.empty(), 6), single("village/street_decoration/lamp_02", emptyProcessor, 2), single("village/street_decoration/lamp_05", emptyProcessor, 1) ), diff --git a/src/main/resources/assets/betterend/lang/de_de.json b/src/main/resources/assets/betterend/lang/de_de.json index 0cb6be19..75bce647 100644 --- a/src/main/resources/assets/betterend/lang/de_de.json +++ b/src/main/resources/assets/betterend/lang/de_de.json @@ -792,6 +792,7 @@ "item.betterend.crystalite_helmet": "Kristallithelm", "item.betterend.crystalite_leggings": "Kristallitbeinschutz", "item.betterend.crystalline_sulphur": "Schwefel", + "item.betterend.debug.fill_air": "Luft in Structure-Block-Volumen ersetzen [dev]", "item.betterend.debug.fill_base_void": "Endstein in Structure-Block-Volumen ersetzen [dev]", "item.betterend.debug.jigsaw_big_deco": "Große Deko [dev]", "item.betterend.debug.jigsaw_deco": "Kleine Deko [dev]", diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index 1a0be8f1..2b16287f 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -793,6 +793,7 @@ "item.betterend.crystalite_leggings": "Crystalite Leggings", "item.betterend.crystalline_sulphur": "Sulfur", "item.betterend.debug.fill_base_void": "Replace EndStone in Structure Block Bounds [dev]", + "item.betterend.debug.fill_air": "Replace Air in Structure Block Bounds [dev]", "item.betterend.debug.jigsaw_big_deco": "Large Decoration [dev]", "item.betterend.debug.jigsaw_deco": "Small Decoration [dev]", "item.betterend.debug.jigsaw_entrance": "Entrance [dev]", diff --git a/src/main/resources/data/betterend/structures/village/decoration/fountain_01.nbt b/src/main/resources/data/betterend/structures/village/decoration/fountain_01.nbt new file mode 100644 index 00000000..406e848a Binary files /dev/null and b/src/main/resources/data/betterend/structures/village/decoration/fountain_01.nbt differ diff --git a/src/main/resources/data/betterend/structures/village/decoration/pond_01.nbt b/src/main/resources/data/betterend/structures/village/decoration/pond_01.nbt new file mode 100644 index 00000000..89f1e4ac Binary files /dev/null and b/src/main/resources/data/betterend/structures/village/decoration/pond_01.nbt differ diff --git a/src/main/resources/data/betterend/structures/village/decoration/respawn_01.nbt b/src/main/resources/data/betterend/structures/village/decoration/respawn_01.nbt new file mode 100644 index 00000000..8732b425 Binary files /dev/null and b/src/main/resources/data/betterend/structures/village/decoration/respawn_01.nbt differ diff --git a/src/main/resources/data/betterend/structures/village/decoration/respawn_02.nbt b/src/main/resources/data/betterend/structures/village/decoration/respawn_02.nbt new file mode 100644 index 00000000..23f8ae1a Binary files /dev/null and b/src/main/resources/data/betterend/structures/village/decoration/respawn_02.nbt differ diff --git a/src/main/resources/data/betterend/structures/village/decoration/stable_01.nbt b/src/main/resources/data/betterend/structures/village/decoration/stable_01.nbt new file mode 100644 index 00000000..e25b0a5c Binary files /dev/null and b/src/main/resources/data/betterend/structures/village/decoration/stable_01.nbt differ diff --git a/src/main/resources/data/betterend/structures/village/houses/small_house_07.nbt b/src/main/resources/data/betterend/structures/village/houses/small_house_07.nbt index 885b633f..2926216b 100644 Binary files a/src/main/resources/data/betterend/structures/village/houses/small_house_07.nbt and b/src/main/resources/data/betterend/structures/village/houses/small_house_07.nbt differ diff --git a/src/main/resources/data/betterend/structures/village/houses/small_house_17.nbt b/src/main/resources/data/betterend/structures/village/houses/small_house_17.nbt new file mode 100644 index 00000000..bd892434 Binary files /dev/null and b/src/main/resources/data/betterend/structures/village/houses/small_house_17.nbt differ diff --git a/src/main/resources/data/betterend/structures/village/streets/curve_02.nbt b/src/main/resources/data/betterend/structures/village/streets/curve_02.nbt new file mode 100644 index 00000000..d37acd18 Binary files /dev/null and b/src/main/resources/data/betterend/structures/village/streets/curve_02.nbt differ diff --git a/src/main/resources/data/betterend/structures/village/streets/street_03.nbt b/src/main/resources/data/betterend/structures/village/streets/street_03.nbt new file mode 100644 index 00000000..45cf60e0 Binary files /dev/null and b/src/main/resources/data/betterend/structures/village/streets/street_03.nbt differ diff --git a/src/main/resources/data/betterend/structures/village/streets/street_04.nbt b/src/main/resources/data/betterend/structures/village/streets/street_04.nbt new file mode 100644 index 00000000..2ba3546e Binary files /dev/null and b/src/main/resources/data/betterend/structures/village/streets/street_04.nbt differ diff --git a/src/main/resources/data/betterend/structures/village/streets/t_crossing_01.nbt b/src/main/resources/data/betterend/structures/village/streets/t_crossing_01.nbt index e93116cb..167655cc 100644 Binary files a/src/main/resources/data/betterend/structures/village/streets/t_crossing_01.nbt and b/src/main/resources/data/betterend/structures/village/streets/t_crossing_01.nbt differ diff --git a/src/main/resources/data/betterend/structures/village/streets/t_crossing_02.nbt b/src/main/resources/data/betterend/structures/village/streets/t_crossing_02.nbt index b7c7d1d1..e6dc37a3 100644 Binary files a/src/main/resources/data/betterend/structures/village/streets/t_crossing_02.nbt and b/src/main/resources/data/betterend/structures/village/streets/t_crossing_02.nbt differ