From cc5ab10de7af76866c63452b660805ef5908aed4 Mon Sep 17 00:00:00 2001 From: craisinlord Date: Sat, 18 Jul 2026 15:36:07 -0500 Subject: [PATCH] myrmite coal ore and cavaryn dev --- .../antarchy/content/CreativeTabOrder.java | 31 +++-- .../content/block/CreepingHorrorEggBlock.java | 2 +- .../content/block/CritterCageBlock.java | 2 +- .../content/block/JumpyBugEggBlock.java | 11 ++ .../content/block/LurkingTerrorEggBlock.java | 2 +- .../content/entity/DrTrayaurusEntity.java | 23 ++++ .../content/entity/ant/AntTeleportHelper.java | 38 +++--- .../cavaryn/GroundMoltingVinesFeature.java | 121 ++++++++++++++++++ .../cavaryn/JumpyBugEggCeilingFeature.java | 33 +++-- .../worldgen/elythia/ElythiaBiomeSource.java | 73 ++++++++--- .../worldgen/elythia/ElythiaFloraFeature.java | 6 + .../elythia/GiantLilyPadPatchFeature.java | 11 +- .../elythia/PeachForestPondFeature.java | 55 +++++++- .../antarchy/animations/kraken.animation.json | 52 +------- .../blockstates/myrmite_coal_ore.json | 7 + .../resources/assets/antarchy/lang/de_de.json | 1 + .../resources/assets/antarchy/lang/en_us.json | 2 + .../resources/assets/antarchy/lang/es_es.json | 1 + .../resources/assets/antarchy/lang/fr_fr.json | 1 + .../resources/assets/antarchy/lang/it_it.json | 1 + .../resources/assets/antarchy/lang/ja_jp.json | 1 + .../resources/assets/antarchy/lang/ko_kr.json | 1 + .../resources/assets/antarchy/lang/pt_br.json | 1 + .../resources/assets/antarchy/lang/ru_ru.json | 3 +- .../resources/assets/antarchy/lang/zh_cn.json | 1 + .../resources/assets/antarchy/lang/zh_tw.json | 1 + .../models/block/myrmite_coal_ore.json | 6 + .../models/item/myrmite_coal_ore.json | 3 + .../textures/block/bile/bile_vein.png | Bin 1764 -> 1187 bytes .../textures/block/bile/bile_vein_long.png | Bin 0 -> 1764 bytes .../textures/block/bile/bile_vein_static.png | Bin 1187 -> 0 bytes .../textures/block/myrmite_coal_ore.png | Bin 0 -> 613 bytes .../data/antarchy/dimension/cavaryn.json | 8 +- .../data/antarchy/dimension/elythia.json | 6 +- .../loot_table/blocks/myrmite_coal_ore.json | 52 ++++++++ .../tags/worldgen/biome/is_cavaryn.json | 1 + .../antarchy/trayaurus_trades/default.json | 6 +- .../worldgen/biome/brooding_tunnels.json | 20 ++- .../data/antarchy/worldgen/biome/cavaryn.json | 10 +- .../worldgen/biome/glowcap_caves.json | 7 +- .../antarchy/worldgen/biome/peach_forest.json | 3 +- .../antarchy/worldgen/biome/rolly_caves.json | 9 +- .../giant_lily_pad_patch_peach_forest.json | 4 + .../glowcap_caves_floor_patch.json | 4 +- .../ground_molting_vines.json | 4 + .../configured_feature/myrmite_coal_ore.json | 18 +++ .../elythia_moleworm_cave_entrances.json | 2 +- .../giant_lily_pad_patch_peach_forest.json | 9 ++ .../placed_feature/ground_molting_vines.json | 31 +++++ .../placed_feature/jumpy_bug_egg_ceiling.json | 8 +- .../placed_feature/myrmite_coal_ore.json | 27 ++++ .../placed_feature/peach_forest_petals.json | 9 ++ .../worldgen/structure_set/elythia_rare.json | 6 +- .../resources/data/c/tags/block/ores.json | 1 + .../data/c/tags/block/ores/coal.json | 6 + .../c/tags/block/ores_in_ground/myrmite.json | 6 + .../main/resources/data/c/tags/item/ores.json | 1 + .../resources/data/c/tags/item/ores/coal.json | 6 + .../c/tags/item/ores_in_ground/myrmite.json | 6 + .../tags/block/mineable/pickaxe.json | 1 + .../tags/block/needs_stone_tool.json | 1 + .../minecraft/tags/entity_type/arthropod.json | 1 - .../antarchy/fabric/AntarchyFabric.java | 28 ++++ .../fabric/client/StinkySoundHandler.java | 10 +- .../fabric/registry/AntarchyFabricBlocks.java | 4 + .../registry/AntarchyFabricEntities.java | 2 +- .../fabric/registry/AntarchyFabricItems.java | 1 + .../fabric/registry/AntarchyFabricMisc.java | 5 + .../neoforge/client/StinkySoundHandler.java | 10 +- .../registry/AntarchyNeoforgeBlocks.java | 2 + .../AntarchyNeoforgeCreativeModeTabs.java | 9 +- .../registry/AntarchyNeoforgeEntites.java | 2 +- .../registry/AntarchyNeoforgeItems.java | 1 + .../registry/AntarchyNeoforgeMisc.java | 4 + 74 files changed, 662 insertions(+), 179 deletions(-) create mode 100644 common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/GroundMoltingVinesFeature.java create mode 100644 common/src/main/resources/assets/antarchy/blockstates/myrmite_coal_ore.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/myrmite_coal_ore.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/myrmite_coal_ore.json create mode 100644 common/src/main/resources/assets/antarchy/textures/block/bile/bile_vein_long.png delete mode 100644 common/src/main/resources/assets/antarchy/textures/block/bile/bile_vein_static.png create mode 100644 common/src/main/resources/assets/antarchy/textures/block/myrmite_coal_ore.png create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/myrmite_coal_ore.json create mode 100644 common/src/main/resources/data/antarchy/worldgen/configured_feature/giant_lily_pad_patch_peach_forest.json create mode 100644 common/src/main/resources/data/antarchy/worldgen/configured_feature/ground_molting_vines.json create mode 100644 common/src/main/resources/data/antarchy/worldgen/configured_feature/myrmite_coal_ore.json create mode 100644 common/src/main/resources/data/antarchy/worldgen/placed_feature/giant_lily_pad_patch_peach_forest.json create mode 100644 common/src/main/resources/data/antarchy/worldgen/placed_feature/ground_molting_vines.json create mode 100644 common/src/main/resources/data/antarchy/worldgen/placed_feature/myrmite_coal_ore.json create mode 100644 common/src/main/resources/data/c/tags/block/ores/coal.json create mode 100644 common/src/main/resources/data/c/tags/block/ores_in_ground/myrmite.json create mode 100644 common/src/main/resources/data/c/tags/item/ores/coal.json create mode 100644 common/src/main/resources/data/c/tags/item/ores_in_ground/myrmite.json diff --git a/common/src/main/java/com/craisinlord/antarchy/content/CreativeTabOrder.java b/common/src/main/java/com/craisinlord/antarchy/content/CreativeTabOrder.java index 6cb8900f..c5e0ca33 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/CreativeTabOrder.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/CreativeTabOrder.java @@ -36,15 +36,16 @@ public final class CreativeTabOrder { "shellstone_stairs", "shellstone_slab", "shellstone_wall", "polished_shellstone_stairs", "polished_shellstone_slab", "polished_shellstone_wall", "shellstone_brick_stairs", "shellstone_brick_slab", "shellstone_brick_wall", - "mossy_shellstone_brick_stairs", "mossy_shellstone_brick_slab", "mossy_shellstone_brick_wall" -> 2; + "mossy_shellstone_brick_stairs", "mossy_shellstone_brick_slab", "mossy_shellstone_brick_wall", + "blush_moss_block", "blush_moss_carpet", + "lumen_froglight", "roseate_froglight" -> 2; case "antimetal", "polished_antimetal" -> 3; case "dream_sand", "dream_sandstone", "chiseled_dream_sandstone", "cut_dream_sandstone", "smooth_dream_sandstone", "dream_sandstone_stairs", "dream_sandstone_slab", "dream_sandstone_wall", "smooth_dream_sandstone_stairs", "smooth_dream_sandstone_slab", "cut_dream_sandstone_slab" -> 4; - case "umbral_moss_block", "umbral_moss_carpet", - "blush_moss_block", "blush_moss_carpet" -> 4; + case "umbral_moss_block", "umbral_moss_carpet" -> 4; case "uranium_ore", "deepslate_uranium_ore", "broodstone_uranium_ore", "titanium_ore", "deepslate_titanium_ore", "broodstone_titanium_ore", "uranium_block", "titanium_block", @@ -61,7 +62,7 @@ public final class CreativeTabOrder { "broodstone_stairs", "broodstone_slab", "broodstone_wall", "polished_broodstone_stairs", "polished_broodstone_slab", "polished_broodstone_wall", "broodstone_brick_stairs", "broodstone_brick_slab", "broodstone_brick_wall", - "chiten_block", "chiten_spike", "amber_moss_block", "amber_moss_carpet", + "myrmite_coal_ore", "chiten_block", "chiten_spike", "amber_moss_block", "amber_moss_carpet", "glowcap_mushroom", "glowcap_mushroom_block" -> 8; case "ouranwood_leaves", "peach_leaves" -> 9; case "duplicator_sapling", "ouranwood_acorn", "peach_sapling", "corn_seeds" -> 10; @@ -70,8 +71,7 @@ public final class CreativeTabOrder { "red_ant_nest", "brown_ant_nest", "rainbow_ant_nest", "termite_nest", "star_coral", "star_coral_fan", "star_coral_block", "dead_star_coral", "dead_star_coral_fan", "dead_star_coral_block" -> 11; - case "dream_torch", "dream_lantern", "dream_campfire", "dream_fire", "dream_fire_ceiling", - "lumen_froglight", "roseate_froglight" -> 12; + case "dream_torch", "dream_lantern", "dream_campfire", "dream_fire", "dream_fire_ceiling" -> 12; case "antimetal_scaffolding" -> 13; case "infested_rooted_dirt", "infested_coarse_dirt", "bed_bug_egg", "creeping_horror_egg", "lurking_terror_egg", "jumpy_bug_egg" -> 14; case "ultimate_pickaxe", "ultimate_axe", "ultimate_shovel", "ultimate_hoe", @@ -207,12 +207,13 @@ public final class CreativeTabOrder { case "broodstone_brick_stairs" -> 17; case "broodstone_brick_slab" -> 18; case "broodstone_brick_wall" -> 19; - case "chiten_block" -> 20; - case "chiten_spike" -> 21; - case "amber_moss_block" -> 22; - case "amber_moss_carpet" -> 23; - case "glowcap_mushroom" -> 24; - case "glowcap_mushroom_block" -> 25; + case "myrmite_coal_ore" -> 20; + case "chiten_block" -> 21; + case "chiten_spike" -> 22; + case "amber_moss_block" -> 23; + case "amber_moss_carpet" -> 24; + case "glowcap_mushroom" -> 25; + case "glowcap_mushroom_block" -> 26; case "uranium_ore" -> 0; case "deepslate_uranium_ore" -> 1; case "broodstone_uranium_ore" -> 2; @@ -248,8 +249,10 @@ public final class CreativeTabOrder { case "dream_campfire" -> 2; case "dream_fire" -> 3; case "dream_fire_ceiling" -> 4; - case "lumen_froglight" -> 5; - case "roseate_froglight" -> 6; + case "blush_moss_block" -> 18; + case "blush_moss_carpet" -> 19; + case "lumen_froglight" -> 20; + case "roseate_froglight" -> 21; case "infested_rooted_dirt" -> 0; case "infested_coarse_dirt" -> 1; case "bed_bug_egg" -> 2; diff --git a/common/src/main/java/com/craisinlord/antarchy/content/block/CreepingHorrorEggBlock.java b/common/src/main/java/com/craisinlord/antarchy/content/block/CreepingHorrorEggBlock.java index 7f1ffa4f..91b5af76 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/block/CreepingHorrorEggBlock.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/block/CreepingHorrorEggBlock.java @@ -36,7 +36,7 @@ public class CreepingHorrorEggBlock extends Block { public static final MapCodec CODEC = Block.simpleCodec(CreepingHorrorEggBlock::new); public static final IntegerProperty HATCH = BlockStateProperties.HATCH; public static final IntegerProperty EGGS = BlockStateProperties.EGGS; - private static final float PANIC_HATCH_CHANCE = 0.50F; + private static final float PANIC_HATCH_CHANCE = 0.25F; private static final int MAX_HATCH = 2; private static final int MAX_EGGS = 4; private static final VoxelShape SINGLE_SHAPE = Block.box(3.0D, 0.0D, 3.0D, 13.0D, 7.0D, 13.0D); diff --git a/common/src/main/java/com/craisinlord/antarchy/content/block/CritterCageBlock.java b/common/src/main/java/com/craisinlord/antarchy/content/block/CritterCageBlock.java index 1f2857b1..311d623e 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/block/CritterCageBlock.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/block/CritterCageBlock.java @@ -26,7 +26,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; public class CritterCageBlock extends BaseEntityBlock { - private static final VoxelShape SHAPE = Block.box(1.0D, 1.0D, 1.0D, 15.0D, 15.0D, 15.0D); + private static final VoxelShape SHAPE = Block.box(1.0D, 1.0D, 1.0D, 15.0D, 14.0D, 15.0D); private final MapCodec codec; diff --git a/common/src/main/java/com/craisinlord/antarchy/content/block/JumpyBugEggBlock.java b/common/src/main/java/com/craisinlord/antarchy/content/block/JumpyBugEggBlock.java index 0d0c8dd5..e506d77a 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/block/JumpyBugEggBlock.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/block/JumpyBugEggBlock.java @@ -12,6 +12,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.util.RandomSource; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; @@ -36,6 +37,9 @@ public class JumpyBugEggBlock extends Block { public static final BooleanProperty HANGING = BlockStateProperties.HANGING; public static final BooleanProperty ROTATED = BooleanProperty.create("rotated"); private static final int MAX_HATCH = 2; + private static final double PLAYER_PROXIMITY_RADIUS = 12.0D; + private static final float PLAYER_PROXIMITY_HATCH_CHANCE = 0.25F; + private static final int PLAYER_PROXIMITY_CHECK_INTERVAL = 200; private static final VoxelShape FLOOR_SHAPE = Block.box(1.0D, 0.0D, 1.0D, 15.0D, 16.0D, 15.0D); private static final VoxelShape CEILING_SHAPE = Block.box(1.0D, 0.0D, 1.0D, 15.0D, 16.0D, 15.0D); private static final ResourceLocation JUMPY_BUG_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "jumpy_bug"); @@ -115,6 +119,13 @@ public class JumpyBugEggBlock extends Block { } private boolean shouldUpdateHatchLevel(Level level, BlockPos pos, BlockState state) { + if (level.random.nextInt(PLAYER_PROXIMITY_CHECK_INTERVAL) == 0) { + Player nearbyPlayer = level.getNearestPlayer(pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D, PLAYER_PROXIMITY_RADIUS, false); + if (nearbyPlayer != null && level.random.nextFloat() < PLAYER_PROXIMITY_HATCH_CHANCE) { + return true; + } + } + BlockPos checkPos = state.getValue(HANGING) ? pos.above() : pos.below(); boolean onAmberMoss = level.getBlockState(checkPos).getBlock() instanceof AmberMossBlock; return level.random.nextInt(onAmberMoss ? 150 : 500) == 0; diff --git a/common/src/main/java/com/craisinlord/antarchy/content/block/LurkingTerrorEggBlock.java b/common/src/main/java/com/craisinlord/antarchy/content/block/LurkingTerrorEggBlock.java index 26c43a6b..f352b6c0 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/block/LurkingTerrorEggBlock.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/block/LurkingTerrorEggBlock.java @@ -36,7 +36,7 @@ public class LurkingTerrorEggBlock extends Block { public static final MapCodec CODEC = Block.simpleCodec(LurkingTerrorEggBlock::new); public static final IntegerProperty HATCH = BlockStateProperties.HATCH; public static final IntegerProperty EGGS = BlockStateProperties.EGGS; - private static final float PANIC_HATCH_CHANCE = 0.50F; + private static final float PANIC_HATCH_CHANCE = 0.25F; private static final int MAX_HATCH = 2; private static final int MAX_EGGS = 4; private static final VoxelShape SINGLE_SHAPE = Block.box(3.0D, 0.0D, 3.0D, 13.0D, 7.0D, 13.0D); diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/DrTrayaurusEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/DrTrayaurusEntity.java index c7fb4e7d..d186471b 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/DrTrayaurusEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/DrTrayaurusEntity.java @@ -1,6 +1,7 @@ package com.craisinlord.antarchy.content.entity; import com.craisinlord.antarchy.content.entity.trades.DrTrayaurusTradeManager; +import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvent; @@ -25,12 +26,33 @@ import org.jetbrains.annotations.Nullable; public class DrTrayaurusEntity extends AbstractVillager { private static final Component DISPLAY_NAME = Component.literal("Dr. Trayaurus"); + private static final String TRADES_INITIALIZED_KEY = "TradesInitialized"; + private boolean tradesInitialized; public DrTrayaurusEntity(EntityType entityType, Level level) { super(entityType, level); this.setCustomName(DISPLAY_NAME); } + @Override + public void addAdditionalSaveData(CompoundTag tag) { + super.addAdditionalSaveData(tag); + tag.putBoolean(TRADES_INITIALIZED_KEY, this.tradesInitialized); + } + + @Override + public void readAdditionalSaveData(CompoundTag tag) { + this.tradesInitialized = tag.getBoolean(TRADES_INITIALIZED_KEY); + if (this.tradesInitialized) { + super.readAdditionalSaveData(tag); + return; + } + + CompoundTag withoutOffers = tag.copy(); + withoutOffers.remove("Offers"); + super.readAdditionalSaveData(withoutOffers); + } + @Override protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); @@ -82,6 +104,7 @@ public class DrTrayaurusEntity extends AbstractVillager { offers.clear(); offers.addAll(DrTrayaurusTradeManager.createOffers()); this.overrideXp(1); + this.tradesInitialized = true; } @Override diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/ant/AntTeleportHelper.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/ant/AntTeleportHelper.java index 3f28b427..524779ca 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/ant/AntTeleportHelper.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/ant/AntTeleportHelper.java @@ -126,13 +126,13 @@ public final class AntTeleportHelper { } if (entityTypeId.equals(ResourceLocation.fromNamespaceAndPath("antarchy", "brown_ant"))) { - return teleportPlayerToDimension(player, AntarchySettings.brownAntDestinationDimension()); + return teleportToOrFromConfiguredDimension(player, AntarchySettings.brownAntDestinationDimension()); } if (entityTypeId.equals(ResourceLocation.fromNamespaceAndPath("antarchy", "red_ant"))) { - return teleportPlayerToDimension(player, AntarchySettings.redAntDestinationDimension()); + return teleportToOrFromConfiguredDimension(player, AntarchySettings.redAntDestinationDimension()); } if (entityTypeId.equals(ResourceLocation.fromNamespaceAndPath("antarchy", "termite"))) { - return teleportPlayerToDimension(player, AntarchySettings.termiteDestinationDimension()); + return teleportToOrFromConfiguredDimension(player, AntarchySettings.termiteDestinationDimension()); } if (entityTypeId.equals(ResourceLocation.fromNamespaceAndPath("antarchy", "rainbow_ant"))) { return RainbowAntEntity.teleportPlayerFromStoredData(player, entityData); @@ -141,6 +141,20 @@ public final class AntTeleportHelper { return InteractionResult.PASS; } + private static InteractionResult teleportToOrFromConfiguredDimension(ServerPlayer player, ResourceKey configuredDimensionKey) { + ServerLevel destination = player.serverLevel().dimension() == configuredDimensionKey + ? resolveReturnDestinationLevel(player) + : player.server.getLevel(configuredDimensionKey); + if (destination == null) { + return InteractionResult.PASS; + } + + Vec3 destinationPos = getDestinationPosition(player, destination); + teleportPlayerWithCompanions(player, destination, destinationPos); + player.playSound(SoundEvents.ENDERMAN_TELEPORT, 1.0F, 1.0F); + return InteractionResult.CONSUME; + } + static InteractionResult handleInteraction(BaseAntEntity ant, Player player, ItemStack itemStack) { if (ant.requiresActivationReagent() && !ant.isTeleportActivatedState()) { if (!(player instanceof ServerPlayer serverPlayer)) { @@ -167,18 +181,7 @@ public final class AntTeleportHelper { return InteractionResult.SUCCESS; } - ServerLevel configuredDestination = resolveConfiguredDestinationLevel(ant, serverPlayer.serverLevel()); - ServerLevel destination = configuredDestination != null && serverPlayer.serverLevel().dimension() == configuredDestination.dimension() - ? resolveReturnDestinationLevel(serverPlayer) - : configuredDestination; - if (destination == null) { - return InteractionResult.PASS; - } - - Vec3 destinationPos = getDestinationPosition(serverPlayer, destination); - teleportPlayerWithCompanions(serverPlayer, destination, destinationPos); - serverPlayer.playSound(SoundEvents.ENDERMAN_TELEPORT, 1.0F, 1.0F); - return InteractionResult.CONSUME; + return teleportToOrFromConfiguredDimension(serverPlayer, ant.destinationDimension()); } private static InteractionResult activateTeleport(BaseAntEntity ant, ServerPlayer player, ItemStack stack) { @@ -192,11 +195,6 @@ public final class AntTeleportHelper { return InteractionResult.CONSUME; } - @Nullable - private static ServerLevel resolveConfiguredDestinationLevel(BaseAntEntity ant, ServerLevel serverLevel) { - return serverLevel.getServer().getLevel(ant.destinationDimension()); - } - public static ServerLevel resolveReturnDestinationLevel(ServerPlayer player) { ResourceKey respawnDimension = player.getRespawnDimension(); ServerLevel destination = player.server.getLevel(respawnDimension); diff --git a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/GroundMoltingVinesFeature.java b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/GroundMoltingVinesFeature.java new file mode 100644 index 00000000..c64bbe36 --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/GroundMoltingVinesFeature.java @@ -0,0 +1,121 @@ +package com.craisinlord.antarchy.content.worldgen.cavaryn; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.block.MoltingVinesBlock; +import com.mojang.serialization.Codec; +import java.util.Optional; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; + +public final class GroundMoltingVinesFeature extends Feature { + private static final ResourceLocation MOLTING_VINES_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "molting_vines"); + private static final int SEARCH_RADIUS = 8; + private static final int SEARCH_ATTEMPTS = 24; + private static final int VERTICAL_SCAN = 12; + private static final int MIN_LENGTH = 2; + private static final int MAX_LENGTH = 5; + private static final int BROODFRUIT_CHANCE = 4; + + public GroundMoltingVinesFeature(Codec codec) { + super(codec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + Block block = getBlock(MOLTING_VINES_ID); + if (!(block instanceof MoltingVinesBlock moltingVinesBlock)) { + return false; + } + + WorldGenLevel level = context.level(); + RandomSource random = context.random(); + BlockPos basePos = findBase(level, context.origin(), random); + if (basePos == null) { + return false; + } + + return placeColumn(level, moltingVinesBlock, basePos, random); + } + + private static BlockPos findBase(WorldGenLevel level, BlockPos origin, RandomSource random) { + BlockPos.MutableBlockPos mutable = new BlockPos.MutableBlockPos(); + int minY = level.getMinBuildHeight() + 2; + int maxY = level.getMaxBuildHeight() - 2; + for (int attempt = 0; attempt < SEARCH_ATTEMPTS; attempt++) { + int x = origin.getX() + random.nextInt(SEARCH_RADIUS * 2 + 1) - SEARCH_RADIUS; + int z = origin.getZ() + random.nextInt(SEARCH_RADIUS * 2 + 1) - SEARCH_RADIUS; + int startY = origin.getY() + random.nextInt(VERTICAL_SCAN * 2 + 1) - VERTICAL_SCAN; + startY = Math.max(minY, Math.min(maxY, startY)); + + for (int y = startY; y >= Math.max(minY, startY - VERTICAL_SCAN); y--) { + mutable.set(x, y, z); + if (!level.getBlockState(mutable).canBeReplaced()) { + continue; + } + BlockPos belowPos = mutable.below(); + BlockState belowState = level.getBlockState(belowPos); + if (!belowState.isFaceSturdy(level, belowPos, Direction.UP)) { + continue; + } + if (!level.getBlockState(mutable.above()).canBeReplaced()) { + continue; + } + return mutable.immutable(); + } + } + return null; + } + + private static boolean placeColumn(WorldGenLevel level, MoltingVinesBlock block, BlockPos basePos, RandomSource random) { + int maxLength = MIN_LENGTH + random.nextInt(MAX_LENGTH - MIN_LENGTH + 1); + int length = 0; + BlockPos.MutableBlockPos mutable = basePos.mutable(); + while (length < maxLength && mutable.getY() < level.getMaxBuildHeight()) { + BlockState existing = level.getBlockState(mutable); + if (!existing.canBeReplaced()) { + break; + } + length++; + mutable.move(0, 1, 0); + } + + if (length < MIN_LENGTH) { + return false; + } + + int fruitIndex = -1; + if (length >= 3 && random.nextInt(BROODFRUIT_CHANCE) == 0) { + fruitIndex = 1 + random.nextInt(length - 2); + } + + for (int offset = 0; offset < length; offset++) { + BlockPos pos = basePos.above(offset); + BlockState state = block.defaultBlockState() + .setValue(MoltingVinesBlock.GROWTH_DIRECTION, Direction.UP) + .setValue(MoltingVinesBlock.DISTANCE, Math.min(offset, 6)) + .setValue(MoltingVinesBlock.TOP_CAP, offset == length - 1) + .setValue(MoltingVinesBlock.BOTTOM_CAP, false) + .setValue(MoltingVinesBlock.BROODFRUIT, offset == fruitIndex); + if (!state.canSurvive(level, pos)) { + return false; + } + level.setBlock(pos, state, 3); + } + + return true; + } + + private static Block getBlock(ResourceLocation id) { + Optional block = BuiltInRegistries.BLOCK.getOptional(id); + return block.orElse(null); + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/JumpyBugEggCeilingFeature.java b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/JumpyBugEggCeilingFeature.java index ba89077b..c547b9fe 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/JumpyBugEggCeilingFeature.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/JumpyBugEggCeilingFeature.java @@ -19,9 +19,9 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf public final class JumpyBugEggCeilingFeature extends Feature { private static final ResourceLocation JUMPY_BUG_EGG_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "jumpy_bug_egg"); private static final int SEARCH_RADIUS = 8; - private static final int VERTICAL_SCAN = 6; - private static final int SEARCH_ATTEMPTS = 10; - private static final float PLACE_CHANCE = 0.5F; + private static final int VERTICAL_SCAN = 24; + private static final int SEARCH_ATTEMPTS = 24; + private static final int MAX_PLACEMENTS = 3; public JumpyBugEggCeilingFeature(Codec codec) { super(codec); @@ -39,26 +39,33 @@ public final class JumpyBugEggCeilingFeature extends Feature PLACE_CHANCE) { - continue; - } - + for (int attempt = 0; attempt < SEARCH_ATTEMPTS && placements < MAX_PLACEMENTS; attempt++) { int x = origin.getX() + random.nextInt(SEARCH_RADIUS * 2 + 1) - SEARCH_RADIUS; int z = origin.getZ() + random.nextInt(SEARCH_RADIUS * 2 + 1) - SEARCH_RADIUS; - int y = origin.getY() + random.nextInt(VERTICAL_SCAN * 2 + 1) - VERTICAL_SCAN; - mutable.set(x, y, z); + int startY = origin.getY() + random.nextInt(VERTICAL_SCAN * 2 + 1) - VERTICAL_SCAN; + int minY = Math.max(level.getMinBuildHeight() + 1, startY - VERTICAL_SCAN); + int maxY = Math.min(level.getMaxBuildHeight() - 2, startY + VERTICAL_SCAN); - if (!isValidCeilingSpot(level, mutable)) { - continue; + BlockPos spot = null; + for (int y = maxY; y >= minY; y--) { + mutable.set(x, y, z); + if (isValidCeilingSpot(level, mutable)) { + spot = mutable.immutable(); + break; + } } + if (spot == null) { + continue; + } BlockState eggState = eggBlock.defaultBlockState() .setValue(JumpyBugEggBlock.HANGING, true) .setValue(JumpyBugEggBlock.ROTATED, random.nextBoolean()); - level.setBlock(mutable, eggState, 3); + level.setBlock(spot, eggState, 3); placedAny = true; + placements++; } return placedAny; diff --git a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaBiomeSource.java b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaBiomeSource.java index 92d021ab..a362c2c2 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaBiomeSource.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaBiomeSource.java @@ -59,6 +59,19 @@ public class ElythiaBiomeSource extends BiomeSource { ); private static final int[] SURFACE_FALLBACK_BLOCK_YS = new int[]{192, 160, 128, 96, 64, 32, 0}; + private static final class ColumnBiomeCache { + long key = Long.MIN_VALUE; + Holder value; + } + + private final ThreadLocal molewormSurfaceFallbackCache = ThreadLocal.withInitial(ColumnBiomeCache::new); + private final ThreadLocal peachForestSurfaceFallbackCache = ThreadLocal.withInitial(ColumnBiomeCache::new); + private final ThreadLocal landFallbackCache = ThreadLocal.withInitial(ColumnBiomeCache::new); + + private static long packColumnKey(int x, int z) { + return ((long) x << 32) ^ (z & 0xFFFFFFFFL); + } + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( MultiNoiseBiomeSource.DIRECT_CODEC.forGetter(ElythiaBiomeSource::parameters), Codec.INT.optionalFieldOf("moleworm_caves_max_y", 72).forGetter(ElythiaBiomeSource::molewormCavesMaxY), @@ -75,6 +88,7 @@ public class ElythiaBiomeSource extends BiomeSource { private final int seaLevel; private final int molewormCavesMaxQuartY; private final int surfaceBiomeSampleQuartY; + private final int oceanMaxQuartY; private final int seaLevelQuartY; private final int undergroundGuardMaxQuartY; private final Holder oceanHolder; @@ -91,6 +105,7 @@ public class ElythiaBiomeSource extends BiomeSource { this.seaLevel = seaLevel; this.molewormCavesMaxQuartY = QuartPos.fromBlock(molewormCavesMaxY); this.surfaceBiomeSampleQuartY = QuartPos.fromBlock(surfaceBiomeSampleY); + this.oceanMaxQuartY = QuartPos.fromBlock(oceanMaxY); this.seaLevelQuartY = QuartPos.fromBlock(seaLevel); // Cave pockets carved into hills/mountains above sea level have no other guard — // they just resolve via raw climate matching, which can land on peach_forest/glimmering_pools @@ -144,7 +159,7 @@ public class ElythiaBiomeSource extends BiomeSource { // Cap moleworm caves below their max Y — replace with surface biome above it if (biome.is(MOLEWORM_CAVES) && y > this.molewormCavesMaxQuartY) { - return resolveSurfaceFallback(x, y, z, sampler, MOLEWORM_CAVES, GLIMMERING_POOLS); + return resolveSurfaceFallback(x, z, sampler, this.molewormSurfaceFallbackCache, MOLEWORM_CAVES, GLIMMERING_POOLS); } // Use continentalness o classify the column. @@ -152,7 +167,7 @@ public class ElythiaBiomeSource extends BiomeSource { // and ambient effects work correctly above the water surface. // Cave biomes are always preserved even in ocean columns. Climate.TargetPoint target = sampler.sample(x, this.seaLevelQuartY, z); - if (target.continentalness() < OCEAN_CONTINENTALNESS_THRESHOLD) { + if (target.continentalness() < OCEAN_CONTINENTALNESS_THRESHOLD && y <= this.oceanMaxQuartY) { if (biome.is(MOLEWORM_CAVES) || biome.is(ELYTHIA_LUSH_CAVES)) return biome; Holder seaLevelBiome = this.delegate.getNoiseBiome(x, this.seaLevelQuartY, z, sampler); // MultiNoise can return a land biome at sea-level depth — force ocean if so @@ -183,7 +198,7 @@ public class ElythiaBiomeSource extends BiomeSource { // Neither peach_forest nor glimmering_pools should ever generate underground — // fall back to whatever a nearby surface reference sample would give instead. if ((biome.is(PEACH_FOREST) || biome.is(GLIMMERING_POOLS)) && y <= this.undergroundGuardMaxQuartY) { - return resolveSurfaceFallback(x, y, z, sampler, PEACH_FOREST, GLIMMERING_POOLS); + return resolveSurfaceFallback(x, z, sampler, this.peachForestSurfaceFallbackCache, PEACH_FOREST, GLIMMERING_POOLS); } return biome; @@ -258,32 +273,52 @@ public class ElythiaBiomeSource extends BiomeSource { } @SafeVarargs - private Holder resolveSurfaceFallback(int x, int y, int z, Climate.Sampler sampler, ResourceKey... excluded) { - Holder fallback = this.delegate.getNoiseBiome(x, this.surfaceBiomeSampleQuartY, z, sampler); - if (!isExcluded(fallback, excluded)) { - return fallback; + private Holder resolveSurfaceFallback(int x, int z, Climate.Sampler sampler, ThreadLocal cacheHolder, ResourceKey... excluded) { + ColumnBiomeCache cache = cacheHolder.get(); + long key = packColumnKey(x, z); + if (cache.key == key) { + return cache.value; } - for (int sampleBlockY : SURFACE_FALLBACK_BLOCK_YS) { - Holder candidate = this.delegate.getNoiseBiome(x, QuartPos.fromBlock(sampleBlockY), z, sampler); - if (!isExcluded(candidate, excluded)) { - return candidate; + Holder result = this.delegate.getNoiseBiome(x, this.surfaceBiomeSampleQuartY, z, sampler); + if (isExcluded(result, excluded)) { + for (int sampleBlockY : SURFACE_FALLBACK_BLOCK_YS) { + Holder candidate = this.delegate.getNoiseBiome(x, QuartPos.fromBlock(sampleBlockY), z, sampler); + if (!isExcluded(candidate, excluded)) { + result = candidate; + break; + } } } - return fallback; + cache.key = key; + cache.value = result; + return result; } private Holder resolveLandFallback(int x, int z, Climate.Sampler sampler) { - Holder fallback = this.delegate.getNoiseBiome(x, this.surfaceBiomeSampleQuartY, z, sampler); - if (!isOceanOrCave(fallback)) return fallback; - - for (int sampleBlockY : SURFACE_FALLBACK_BLOCK_YS) { - Holder candidate = this.delegate.getNoiseBiome(x, QuartPos.fromBlock(sampleBlockY), z, sampler); - if (!isOceanOrCave(candidate)) return candidate; + ColumnBiomeCache cache = this.landFallbackCache.get(); + long key = packColumnKey(x, z); + if (cache.key == key) { + return cache.value; } - return defaultLandHolder != null ? defaultLandHolder : fallback; + Holder result = this.delegate.getNoiseBiome(x, this.surfaceBiomeSampleQuartY, z, sampler); + if (isOceanOrCave(result)) { + Holder resolved = null; + for (int sampleBlockY : SURFACE_FALLBACK_BLOCK_YS) { + Holder candidate = this.delegate.getNoiseBiome(x, QuartPos.fromBlock(sampleBlockY), z, sampler); + if (!isOceanOrCave(candidate)) { + resolved = candidate; + break; + } + } + result = resolved != null ? resolved : (defaultLandHolder != null ? defaultLandHolder : result); + } + + cache.key = key; + cache.value = result; + return result; } @SafeVarargs diff --git a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaFloraFeature.java b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaFloraFeature.java index 8d9ad11e..da81c72e 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaFloraFeature.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaFloraFeature.java @@ -350,6 +350,12 @@ public class ElythiaFloraFeature extends Feature { if (plantPos == null) { continue; } + + BlockPos groundPos = plantPos.below(); + if (!isValidPlantSpot(level, plantPos, groundPos)) { + continue; + } + if (bushEligible && random.nextFloat() < 0.12F) { if (placeDouble(level, plantPos, torchflowerBush().defaultBlockState())) { placed = true; diff --git a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/GiantLilyPadPatchFeature.java b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/GiantLilyPadPatchFeature.java index 87ef7512..be7f71a1 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/GiantLilyPadPatchFeature.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/GiantLilyPadPatchFeature.java @@ -15,8 +15,15 @@ import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; public final class GiantLilyPadPatchFeature extends Feature { + private final float lotusChance; + public GiantLilyPadPatchFeature(Codec codec) { + this(codec, 1.0F); + } + + public GiantLilyPadPatchFeature(Codec codec, float lotusChance) { super(codec); + this.lotusChance = lotusChance; } @Override @@ -43,7 +50,9 @@ public final class GiantLilyPadPatchFeature extends Feature { private static final int NOISE_SAMPLES = 12; + private static final ResourceLocation CAMELLIA_ID = ResourceLocation.fromNamespaceAndPath("antarchy", "camellia"); + private static final ResourceLocation SPIDER_LILY_ID = ResourceLocation.fromNamespaceAndPath("antarchy", "spider_lily"); public PeachForestPondFeature(Codec codec) { super(codec); @@ -67,12 +73,14 @@ public class PeachForestPondFeature extends Feature 0.8D || random.nextFloat() > 0.45F) { + continue; + } + + BlockPos spawnPos = center.offset(x, 1, z); + if (!level.getFluidState(spawnPos.below()).is(FluidTags.WATER) || !level.isEmptyBlock(spawnPos)) { + continue; + } + + BlockState frogspawn = Blocks.FROGSPAWN.defaultBlockState(); + if (!frogspawn.canSurvive(level, spawnPos)) { + continue; + } + + level.setBlock(spawnPos, frogspawn, 2); + } + } + private static boolean isSoil(BlockState state) { return state.is(BlockTags.DIRT) || state.is(Blocks.GRASS_BLOCK) || state.is(Blocks.MOSS_BLOCK) || state.is(Blocks.ROOTED_DIRT); } diff --git a/common/src/main/resources/assets/antarchy/animations/kraken.animation.json b/common/src/main/resources/assets/antarchy/animations/kraken.animation.json index f60646db..e5877521 100644 --- a/common/src/main/resources/assets/antarchy/animations/kraken.animation.json +++ b/common/src/main/resources/assets/antarchy/animations/kraken.animation.json @@ -6553,56 +6553,6 @@ }, "lerp_mode": "catmullrom" } - }, - "position": { - "0.0": { - "post": { - "vector": [0, 0, 0] - }, - "lerp_mode": "catmullrom" - }, - "0.4583": { - "vector": [0, 0, 0] - }, - "0.5": { - "vector": [0, 27, 0] - }, - "0.5417": { - "vector": [0, -33, 0] - }, - "0.5833": { - "vector": [0, 14, 0] - }, - "0.6667": { - "vector": [0, -19, 0] - }, - "0.75": { - "pre": { - "vector": [0, 5, 0] - }, - "post": { - "vector": [0, 5, 0] - }, - "lerp_mode": "catmullrom" - }, - "0.875": { - "post": { - "vector": [0, -10, 0] - }, - "lerp_mode": "catmullrom" - }, - "1.0": { - "post": { - "vector": [0, 0, 0] - }, - "lerp_mode": "catmullrom" - }, - "1.1667": { - "post": { - "vector": [0, 0, 0] - }, - "lerp_mode": "catmullrom" - } } }, "l_shoulder": { @@ -7188,4 +7138,4 @@ } } } -} \ No newline at end of file +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/myrmite_coal_ore.json b/common/src/main/resources/assets/antarchy/blockstates/myrmite_coal_ore.json new file mode 100644 index 00000000..8c47bcfb --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/myrmite_coal_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/myrmite_coal_ore" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/lang/de_de.json b/common/src/main/resources/assets/antarchy/lang/de_de.json index 8d8fd11e..fe1d96ec 100644 --- a/common/src/main/resources/assets/antarchy/lang/de_de.json +++ b/common/src/main/resources/assets/antarchy/lang/de_de.json @@ -901,6 +901,7 @@ "block.antarchy.broodstone_brick_stairs": "Broodstoneziegeltreppe", "block.antarchy.broodstone_brick_slab": "Broodstoneziegelstufe", "block.antarchy.broodstone_brick_wall": "Broodstoneziegelmauer", + "block.antarchy.myrmite_coal_ore": "Myrmite Kohleerz", "block.antarchy.broodstone_uranium_ore": "Broodstone Uran-Erz", "block.antarchy.broodstone_titanium_ore": "Broodstone Titan-Erz", "item.antarchy.raw_bug_meat": "Rohes Insektenfleisch", diff --git a/common/src/main/resources/assets/antarchy/lang/en_us.json b/common/src/main/resources/assets/antarchy/lang/en_us.json index 675318a9..5cd093a0 100644 --- a/common/src/main/resources/assets/antarchy/lang/en_us.json +++ b/common/src/main/resources/assets/antarchy/lang/en_us.json @@ -431,6 +431,7 @@ "item.antarchy.glimmer_spawn_egg": "Glimmer Spawn Egg", "item.antarchy.ouranwood_deer_spawn_egg": "Ouranwood Deer Spawn Egg", "item.antarchy.spirit_apple": "Spirit Apple", + "tooltip.antarchy.spirit_apple": "Tames a Glimmer", "item.antarchy.elka_spawn_egg": "Elka Spawn Egg", "item.antarchy.glimmer_bottle": "Bottle of Glimmer", "item.antarchy.glimmer_bottle.contains": "Contains: %s", @@ -901,6 +902,7 @@ "block.antarchy.broodstone_brick_stairs": "Broodstone Brick Stairs", "block.antarchy.broodstone_brick_slab": "Broodstone Brick Slab", "block.antarchy.broodstone_brick_wall": "Broodstone Brick Wall", + "block.antarchy.myrmite_coal_ore": "Myrmite Coal Ore", "block.antarchy.broodstone_uranium_ore": "Broodstone Uranium Ore", "block.antarchy.broodstone_titanium_ore": "Broodstone Titanium Ore", "item.antarchy.raw_bug_meat": "Raw Bug Meat", diff --git a/common/src/main/resources/assets/antarchy/lang/es_es.json b/common/src/main/resources/assets/antarchy/lang/es_es.json index 3e951d00..1b7899d2 100644 --- a/common/src/main/resources/assets/antarchy/lang/es_es.json +++ b/common/src/main/resources/assets/antarchy/lang/es_es.json @@ -901,6 +901,7 @@ "block.antarchy.broodstone_brick_stairs": "Escaleras de ladrillos de Broodstone", "block.antarchy.broodstone_brick_slab": "Losa de ladrillos de Broodstone", "block.antarchy.broodstone_brick_wall": "Muro de ladrillos de Broodstone", + "block.antarchy.myrmite_coal_ore": "Mena de carbón de Myrmite", "block.antarchy.broodstone_uranium_ore": "Mena de Broodstone Uranio", "block.antarchy.broodstone_titanium_ore": "Mena de Broodstone Titanio", "item.antarchy.raw_bug_meat": "Carne de insecto cruda", diff --git a/common/src/main/resources/assets/antarchy/lang/fr_fr.json b/common/src/main/resources/assets/antarchy/lang/fr_fr.json index 4311d8a3..f32de39b 100644 --- a/common/src/main/resources/assets/antarchy/lang/fr_fr.json +++ b/common/src/main/resources/assets/antarchy/lang/fr_fr.json @@ -901,6 +901,7 @@ "block.antarchy.broodstone_brick_stairs": "Escalier en briques de Broodstone", "block.antarchy.broodstone_brick_slab": "Dalle en briques de Broodstone", "block.antarchy.broodstone_brick_wall": "Muret en briques de Broodstone", + "block.antarchy.myrmite_coal_ore": "Minerai de charbon de Myrmite", "block.antarchy.broodstone_uranium_ore": "Minerai de Broodstone Uranium", "block.antarchy.broodstone_titanium_ore": "Minerai de Broodstone Titane", "item.antarchy.raw_bug_meat": "Viande d’insecte crue", diff --git a/common/src/main/resources/assets/antarchy/lang/it_it.json b/common/src/main/resources/assets/antarchy/lang/it_it.json index 75f1c38b..d5726af2 100644 --- a/common/src/main/resources/assets/antarchy/lang/it_it.json +++ b/common/src/main/resources/assets/antarchy/lang/it_it.json @@ -901,6 +901,7 @@ "block.antarchy.broodstone_brick_stairs": "Scale di mattoni di Broodstone", "block.antarchy.broodstone_brick_slab": "Lastra di mattoni di Broodstone", "block.antarchy.broodstone_brick_wall": "Muretto di mattoni di Broodstone", + "block.antarchy.myrmite_coal_ore": "Minerale di carbone di Myrmite", "block.antarchy.broodstone_uranium_ore": "Minerale di uranio di Broodstone", "block.antarchy.broodstone_titanium_ore": "Minerale di titanio di Broodstone", "item.antarchy.raw_bug_meat": "Carne d’insetto cruda", diff --git a/common/src/main/resources/assets/antarchy/lang/ja_jp.json b/common/src/main/resources/assets/antarchy/lang/ja_jp.json index 0d8e0d12..f00641bb 100644 --- a/common/src/main/resources/assets/antarchy/lang/ja_jp.json +++ b/common/src/main/resources/assets/antarchy/lang/ja_jp.json @@ -901,6 +901,7 @@ "block.antarchy.broodstone_brick_stairs": "ブルードストーンレンガの階段", "block.antarchy.broodstone_brick_slab": "ブルードストーンレンガのハーフブロック", "block.antarchy.broodstone_brick_wall": "ブルードストーンレンガの塀", + "block.antarchy.myrmite_coal_ore": "ミルマイト 石炭鉱石", "block.antarchy.broodstone_uranium_ore": "ブルードストーン ウランの鉱石", "block.antarchy.broodstone_titanium_ore": "ブルードストーン チタンの鉱石", "item.antarchy.raw_bug_meat": "生の虫肉", diff --git a/common/src/main/resources/assets/antarchy/lang/ko_kr.json b/common/src/main/resources/assets/antarchy/lang/ko_kr.json index 9079e07f..8fdaf453 100644 --- a/common/src/main/resources/assets/antarchy/lang/ko_kr.json +++ b/common/src/main/resources/assets/antarchy/lang/ko_kr.json @@ -901,6 +901,7 @@ "block.antarchy.broodstone_brick_stairs": "브루드스톤 벽돌 계단", "block.antarchy.broodstone_brick_slab": "브루드스톤 벽돌 반 블록", "block.antarchy.broodstone_brick_wall": "브루드스톤 벽돌 담장", + "block.antarchy.myrmite_coal_ore": "미르마이트 석탄 광석", "block.antarchy.broodstone_uranium_ore": "브루드스톤 우라늄 광석", "block.antarchy.broodstone_titanium_ore": "브루드스톤 티타늄 광석", "item.antarchy.raw_bug_meat": "익히지 않은 벌레 고기", diff --git a/common/src/main/resources/assets/antarchy/lang/pt_br.json b/common/src/main/resources/assets/antarchy/lang/pt_br.json index 4971d5d6..c889f9f5 100644 --- a/common/src/main/resources/assets/antarchy/lang/pt_br.json +++ b/common/src/main/resources/assets/antarchy/lang/pt_br.json @@ -901,6 +901,7 @@ "block.antarchy.broodstone_brick_stairs": "Escadas de Tijolos de Broodstone", "block.antarchy.broodstone_brick_slab": "Laje de Tijolos de Broodstone", "block.antarchy.broodstone_brick_wall": "Muro de Tijolos de Broodstone", + "block.antarchy.myrmite_coal_ore": "Minério de carvão de Myrmite", "block.antarchy.broodstone_uranium_ore": "Minério de Broodstone Urânio", "block.antarchy.broodstone_titanium_ore": "Minério de Broodstone Titânio", "item.antarchy.raw_bug_meat": "Carne de Inseto Crua", diff --git a/common/src/main/resources/assets/antarchy/lang/ru_ru.json b/common/src/main/resources/assets/antarchy/lang/ru_ru.json index 46c8795f..a6c378bf 100644 --- a/common/src/main/resources/assets/antarchy/lang/ru_ru.json +++ b/common/src/main/resources/assets/antarchy/lang/ru_ru.json @@ -121,6 +121,7 @@ "block.antarchy.red_ant_nest": "Гнездо красных муравьёв", "block.antarchy.brown_ant_nest": "Гнездо коричневых муравьёв", "block.antarchy.rainbow_ant_nest": "Гнездо радужных муравьёв", + "block.antarchy.myrmite_coal_ore": "Myrmite Coal Ore", "block.antarchy.uranium_ore": "Урановая руда", "block.antarchy.deepslate_uranium_ore": "Глубинная урановая руда", "block.antarchy.titanium_ore": "Титановая руда", @@ -825,4 +826,4 @@ "advancements.antarchy.squidzooka_craft.description": "Создайте сквидзуку.", "advancements.antarchy.gravity_gun_craft.title": "Мастер притяжения", "advancements.antarchy.gravity_gun_craft.description": "Создайте гравитационную пушку." -} \ No newline at end of file +} diff --git a/common/src/main/resources/assets/antarchy/lang/zh_cn.json b/common/src/main/resources/assets/antarchy/lang/zh_cn.json index 67ce799b..206dd81e 100644 --- a/common/src/main/resources/assets/antarchy/lang/zh_cn.json +++ b/common/src/main/resources/assets/antarchy/lang/zh_cn.json @@ -901,6 +901,7 @@ "block.antarchy.broodstone_brick_stairs": "布鲁德斯通砖楼梯", "block.antarchy.broodstone_brick_slab": "布鲁德斯通砖台阶", "block.antarchy.broodstone_brick_wall": "布鲁德斯通砖墙", + "block.antarchy.myrmite_coal_ore": "米尔迈特煤矿石", "block.antarchy.broodstone_uranium_ore": "布鲁德斯通 铀矿石", "block.antarchy.broodstone_titanium_ore": "布鲁德斯通 钛矿石", "item.antarchy.raw_bug_meat": "生虫肉", diff --git a/common/src/main/resources/assets/antarchy/lang/zh_tw.json b/common/src/main/resources/assets/antarchy/lang/zh_tw.json index 32bc83c3..0cd92756 100644 --- a/common/src/main/resources/assets/antarchy/lang/zh_tw.json +++ b/common/src/main/resources/assets/antarchy/lang/zh_tw.json @@ -901,6 +901,7 @@ "block.antarchy.broodstone_brick_stairs": "布魯德斯通磚樓梯", "block.antarchy.broodstone_brick_slab": "布魯德斯通磚臺階", "block.antarchy.broodstone_brick_wall": "布魯德斯通磚牆", + "block.antarchy.myrmite_coal_ore": "米爾邁特煤礦石", "block.antarchy.broodstone_uranium_ore": "布魯德斯通 鈾礦石", "block.antarchy.broodstone_titanium_ore": "布魯德斯通 鈦礦石", "item.antarchy.raw_bug_meat": "生蟲肉", diff --git a/common/src/main/resources/assets/antarchy/models/block/myrmite_coal_ore.json b/common/src/main/resources/assets/antarchy/models/block/myrmite_coal_ore.json new file mode 100644 index 00000000..47ee96fb --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/myrmite_coal_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/myrmite_coal_ore" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/myrmite_coal_ore.json b/common/src/main/resources/assets/antarchy/models/item/myrmite_coal_ore.json new file mode 100644 index 00000000..5e50d09a --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/myrmite_coal_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/myrmite_coal_ore" +} diff --git a/common/src/main/resources/assets/antarchy/textures/block/bile/bile_vein.png b/common/src/main/resources/assets/antarchy/textures/block/bile/bile_vein.png index d085b07498f897bbd95a11bd0e2c2ca5cdd8d223..02397070405673f5093a9b78b5ca68311b6244ae 100644 GIT binary patch delta 1181 zcmV;O1Y-N-4WkK=7JmRh2nGNE026)pmH+?*SV=@dRCodG*UO8Rbrc8i<1Zry2djY+ z>;gs1!Ww!diY5YeTveOUMM$`;WwmJ0pU|RByB4i#9f=FKiVG1`92j3`@Cx2w6ffh2 zLDYGj&+p|tK8}nyqYD=bXMVTu`JV6ZJm)#@V;LU#u($5Bk$=XvY#Zy@W1GGi?XBO? zsb|(~<1f*J;bUE*_3xE|ms+d-^tHi(xH~&n7b^!!T--NO=ZP(U|2Y|d{oal5ew+y4 ztJh~M0C@V+&3JwFKwU5V1G{!}H_9Ie=7R0{f3#w*-JA{1A8ehd#5PwAy=-Wd2!eRU z@zE$N$H(Hv-hT(qnAf~97-x5NsuQq1q>OaVr!QQo=LNt9xwo#|iSuW!hq=?;r{;np z=N#F4Ylni*?b&HNBzTG~a`*kFfiRNk|I-sIW^8L@< z@BqrD_e+(;2`~+qleN>lcKW^XJ1~LBw8d8iHL}pwTK+$3<wZRRU6( z4TfDwi+{+8vprYMJS4snaAM>d+eQIrdz?=Ex1b;V_S0ni`a?H1e6`Ge@K1Lx*wn!X zue3;SelbyrMSg5Q7@8gnjRDYoNmfuZho3<|IB@PM`@!T4U45ghKU>fbKHs=_KX5g* zz|pgBlWgA74G*Av`u6hr!Tvp+n*62?Bu=D!=6~i2DT~OyLdq(oMxsk5ii5{zWS)pI ziOuso&yW;}GI2*>psdIQda)2FHbs|sK7|ZGa&2%Xn_T9MGZMkf;k=zw^SyFO{Xo$n z5KItxX_9Cm8g>#zq=s3G$WhLaz#AI^3#`V>v>M=y*qPC}AVyXRB#zl&*ca;u2Twvo z{eJ;AEB>UBoAVqgKxi$BW;+cp0!K&ej zN-XkX{b2Cw{P)2-_r}5mP?AViPtY7WnF%lC*yJEQz@c~o{7piz^NNn zeWR>Di%JTwQp@nV@!YSYOf%73O+*J&w0}v~f7uNWpnSAu#j?H+jvejPg zbS{XIRRW1)HW>EB`a$L)@s)rRBiGnA3J}`k^hiJO^Q2X4*}(3ZU{`6&wVwuC`+;u* zww&(+?@H0C{fJ_gB+LqG=Ee6x{U4kspaRuAlOs<_p7y`^K8VcCbMSqjgwwq9=3XM> vlk|i800030|F4O<&Hw-a21!IgR2BmO=(KJ_b5#O%00000NkvXXu0mjfXz@Y` delta 1762 zcmV<81|9jM3FHls7JmT%2nGNE0J>84P5=M~nMp)JRCodG+s}*DRTKd5>(z+I3|0dr z*bgXT7S_;66io!`xT-dxi;!?x%WBc0KcPjNb}d@fI*Jx;8(M^*(ZKke!PG!27$t2+ zWeD|6-_L!V=W}v~-kVt{T$%Ikuk-7kd(OT0e7|4w_{4Lodw*V@=)s{Q)2sTxfj6gC z_wJi4W7=TzL(oCp>z8k&Kh7^F zb)!F=>m(W(M+lzYJ(ke?vvRA9WeAYNP*I2Q^IuwBphdTq3L$&~^IJz}qra5Y1f-c7 zi3VuV&*YsC+Q|as1JC555+aBJkP(^d!r4m+(3bkfzJL8{vKYVT2MmXpYDxgvRP+HV zhkY<%=p2SZ(60q)`hu}~jK>%znW0pu3mKC6BM8LDpW3NeoQ=~3KAKDoh}6}AnA+3@ z#!zEIm^!?$O@;)_4HMikfk+$7FhRuW^uyE7EKK}bA!+Cy*UR|JBx3(snU)jHY zIGfsf;e7B=J6VAI(i6jl^Rb!9V*H*TFdP+Q&41N-9_P{rI1{HbW=ag5!%#XcpAuLR zWiVEc@fgD-Gn5MVgbXP>G7!ZD2Aqx41wNWg4T#j$ftcFV1;!9#LYO){!L`tAbpwSn zr^A3SLfEBeL=Dn#ry_~80oo)YWHU_QD+>ej2Ds`Jwg90v%bSkA6K7L7FX0<23{(JV z%71>qB%~p_etJzfA3c039eLwqns{;WaDM28=5+q<%xVG`&)*r&Bja<0F>Tfh=g}+8 z>HOra>7)XY5vj}{ZeG}ea6Y-XS`Jbx!#+T8Sq%m!F#91r3>9?<=dNmXfo9!WDoo*9 znLNH{Hu_7+(ttEmBhdgY`kCx~t(`1Det&+~wxLev)2Akj@q2#2a3oPp31Y7L0F^nF zG1@S64nygrx)OwKg0a3Bk1fsZCr10r>GAhrV31;!9# zLYO){!8LF=b2z$zOpbdZ-A>#VG9syv%Kl(Gk*<2 z;2SFpQ~+tpe!wK8A^J}^I~;73HcZIW!~inMq-n1OxFwvO%wU+)nX6|Tr6Y_4M#Pyv zEY;Jwq(4@G194fvMplWPj@8pSg>CM`)7d4%@(MQYKX5p2eeNu81~WBxwju>A53s@3 z+_`&|VHn4p(u10sJ1?i2JLe=uY=3EXWxlcDqcG`>;|u{p;Ogsma~(34{ooYWn5aXr zfocQip%S2h@7|Pa?wo4woVri4Y~z6Qa1@tn5YFSu%W3r0+&K>x&e9u^H*`2lZ>$Q4 z6;a2u7tS?zPBnKlkHA78h=HVZQ6D% z(iljN;93W?-3wjsT>S!HS)x&Bg8y?myZR9VzsEoYkf!Vh(rKp;QO%w27S7G9as~=R zMcs->Z?pkpDuLyO@7`43JGWAO?>xlm%(*rd&h@?XfZ=Qd6~18IaIU#?&7B(u8TfRr zxpS_$b90w))w8+O_s*^1UVl{8_s-4s)Az@j>U-x-DwpkgI@i;=iH(6zXIH;XUAAlP zJm6(pdef{_`Ll(UO7nBi<<5;x&7bdYnxgl0yt<>@V*sf>umgErV$76$EM33Z9^z40 z{bswvhsyVib|oK!)vv<_s&CHw(EQ6yIi*Y*Ha%h+g+SI zP8}(rluloqL|&T%J5gM+jBognr}PF>1PH-EpOMtux%>a$tq5xatDt09r4`$f_s-@2 zsafw>uJtb4u`2L}x?5~>I;s;!h-V7rNtR9xbHm--T<EK|000J=Nkln^`Dane*0{6%HEhocjJf*xKIL>Q)~fZKazlozmFR%IV@y z6Qv%w`HRoy)90VG)7$UOCCFEnR|*2;#Y@-HBRgBAz4iz0?t|@=KRw<_VCI{tg7f#a zm4x`&!*hkP&XKVP6g^D{!Fb!RQz`G5olaMOyiJVru181Hh3_W|5oCRs0;(ha?a#|) zJVVey-RqZcq(9CtCv~Ggoa-bS8Ak}7-aVGk{IhbajAaOr!%$I&@bh0%!Sf3DB1M#=iY(vKYVT z2MmXpYDxgvRP+HVhkY<%=p2SZ(60q)`hu}~jK>%znW0pu3mKC6BM8LDpW3NeoQ=~3 zKAKDoh}6}AnA+3@#!zEIm^!?$O@;)_4HMikfk+$7FhRuW^uyE7EUpA;bC0b|-;_6SpIhq{m*JD~zc#vQapXElwwK4UrM4%paD1*@AFB{`)4wd47pr zU7%UFwkDik*}r}`o7#HeeDF{^S%Cb~6T^k`v6;zY{GJ~$92H~D)p;K0(g!#br!r#B>J+vBp*G8#j=mFT zQ#mi;8!HS{0BOp8z$Bz0x_)|1I3GQHDjj*_WSV$!@NjfsZCr10r>G zAhrV31;!9#LYO){!8LF=b2z$zOpbdZ-A>#VG9sy zv%Kl(GYvxE8!HS{0BOp8z$Bz0`cF7J9Bh;}Ovu#405Zv>X|DyiC7hkiV3^aHt7jXf zBa8$_#F;-V)zi78KURPPaaq7dR*9XC)zdkJZSKR<*(JmB3O4RPa5!&$?ksNxGc|X% zA_XiDu))^cxqFpi7{{E_gPNK5bzI0Yc#F>v(e=GM4?| z6xW!jL$HBr1LvUn+lxyysYVMr6PqJ*|fb(z^mue8s8&V1(2rf2hwS$4^hpX?-tI@ zt8xYkLq*++NN=CCw{70&g&^MK)O0~Nkt-EgkCbIqL_ z2O0QuuDNrrxpQ-uaMiQ9)c4M<;a*hL_s-4s)Az@j>U-x-DwpkgI@i;=iH(6zXIH;X zUAAlPJm6(pdef{_`Ll(UO7nBi<<5;x&7bdYnxgl0yt<>@V*sf>umgErV$76$EM33Z z9^z40{bswvhsyVib|oK!)vvwD+BT(i3_)i z3lUTt7++`b3f^E8FXM$l)OnrH@8vu`j*K{?3l|D!ez))Wp6~BG=Q;0V86Nqtx9+o% z#)B(Qz8USU-_WUN)@O+w&Y0J{F&Jleb*dAvJ*13u&ZjS2spkd22D!Jc z+==sNu7|nP-KXY)BIg|0duxY+&+XZJ^{fB@XQFZraOkpC->B%%qB_D0Siappp8Itq zlZobPB08X=P4fNE-S7a)ruR#g#0fABn3KCsoxBu`TJoLk__tG&-_(J`aVE{kfL+BN zBRTVfM50S3ibGq4X!erWJkRqCNs%ZMa)E)|pF;xQdUv&DEjC4$cs_*;KyqzxCYxO5 zj5iX&%;7RO1&FyD66{C-sX>N>lcKW^XJ1~LBw8d8iHL}pwTK+$3<wZRRU6(4TfDwi^z$yJy*>2GeWR>D zThI?a-?(@`a5c5S(X(%pY~Ioh51@Sd_VW6{{ym+V{H6{hPNaP1<_al`$i70#Dy2rE zOD2kg$7f`oh%t%H^E}Ux6p1o%M_{0=$OL+^5GXc9mv}yf3_x;ia3-5v=8Q8E!OY>j zom2C@a!LI_(IF5_5P4~mXdxPQ5=EqjS&PU~&XB+x8v+Zg#>})D;EdRr(YYW-RtY4I z*jwuiqY?JNL%I1W=MlR#11(K7)R6WV%;>%4J=Cm?z_L=2I!6 zik^weIl!qKR(+$aKZ{BVuTsnKy7Anvqf9f=Tunp=RJ2Lff7uNWpnSAu#j?H+jvejP zu`%nEAe#rHw|ADkzk0@XZ|BTq@5_P_W(h|JA%@O_|! z)4cQMULxa@^n?2V00960uZgZbNfb0(JlZ002ovPDHLkV1nDJ BJ|+MF diff --git a/common/src/main/resources/assets/antarchy/textures/block/myrmite_coal_ore.png b/common/src/main/resources/assets/antarchy/textures/block/myrmite_coal_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..2f24f39820eeb79d22461ff0a9efe95375f5e0ba GIT binary patch literal 613 zcmV-r0-F7aP)%Xm8R7NNEeUNK5IP4qEJ};7oAlFLUM}(1{OpAVhGWLPQ}^ ziAdr*#waS+`)xVF3n%xUeb(A*?{#+EzmEga@bAyj$p2r_w|D)WMcl{y`QO3sQ5c5N z=*XbqiMz-7lpf@JRoOTcPw+IYy{ikIw6By%B?;-Md8zA@b7d1<`tjj~&T5C+uQe_1 z0F{?^47hoGpxNn?TCJAtFPd$ollLsyR=sT`gh&XWC)F*-2WxR-jh8Z+j9$MfsQ9wi zR24rYVL{+cb$oZF@82c>TqqROXfzZAft56(14Rw}`K0%` z9#f{|I4n=3Rra)nI#qyi{9p(^&>wpir9y@{U#e(qd|Hz;E94NR^8v>7_2)!cwDByP zByJ_5;>lq#W8TmnWg95|0b?y}@13et-tA=O02RvRMm8%AGxm8ZFpN*a^;-)7P~m{G z;^a01?B71gs#>iI3@s7!Eh69;nraMSNN^T)-k3`jwCBymD^CW8kj=sH&`)z71xPqd z64Xcpkv-?$GjN4U(V+5jDt|3YOa#pI9)C3m-nRQ6(D$%39v7iyQHY zP=m}>PA#vRp-e0s$NWQr3;{K+Yd_IV*cN0|A+azNjNQW5S9t?Lrp&qZn(YCRj16w{ zhQ$8_)0tdiHvj+t|NrDeH+%p900v1!K~w_(z#m8PqStzD00000NkvXXu0mjfT1OQG literal 0 HcmV?d00001 diff --git a/common/src/main/resources/data/antarchy/dimension/cavaryn.json b/common/src/main/resources/data/antarchy/dimension/cavaryn.json index 6d3e52ae..d8346bba 100644 --- a/common/src/main/resources/data/antarchy/dimension/cavaryn.json +++ b/common/src/main/resources/data/antarchy/dimension/cavaryn.json @@ -14,7 +14,7 @@ ], "humidity": [ -1.0, - 0.85 + 0.55 ], "continentalness": [ -1.0, @@ -43,7 +43,7 @@ 1.0 ], "humidity": [ - 0.85, + 0.5, 1.0 ], "continentalness": [ @@ -55,8 +55,8 @@ 1.0 ], "weirdness": [ - -1.0, - 1.0 + -0.45, + 0.45 ], "depth": [ -2.0, diff --git a/common/src/main/resources/data/antarchy/dimension/elythia.json b/common/src/main/resources/data/antarchy/dimension/elythia.json index 4b966674..0013c281 100644 --- a/common/src/main/resources/data/antarchy/dimension/elythia.json +++ b/common/src/main/resources/data/antarchy/dimension/elythia.json @@ -19,7 +19,7 @@ "erosion": 0.2, "weirdness": 0.16, "depth": 0.3, - "offset": 0.3 + "offset": 0.27 } }, { @@ -31,7 +31,7 @@ "erosion": 0.38, "weirdness": -0.55, "depth": 0.3, - "offset": 0.3 + "offset": 0.27 } }, { @@ -43,7 +43,7 @@ "erosion": 0.10, "weirdness": 0.65, "depth": 0.3, - "offset": 0.3 + "offset": 0.27 } }, { diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/myrmite_coal_ore.json b/common/src/main/resources/data/antarchy/loot_table/blocks/myrmite_coal_ore.json new file mode 100644 index 00000000..6da2ca1d --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/myrmite_coal_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "antarchy:myrmite_coal_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:coal", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] +} diff --git a/common/src/main/resources/data/antarchy/tags/worldgen/biome/is_cavaryn.json b/common/src/main/resources/data/antarchy/tags/worldgen/biome/is_cavaryn.json index 34d6084e..18f8377d 100644 --- a/common/src/main/resources/data/antarchy/tags/worldgen/biome/is_cavaryn.json +++ b/common/src/main/resources/data/antarchy/tags/worldgen/biome/is_cavaryn.json @@ -1,6 +1,7 @@ { "values": [ "antarchy:cavaryn", + "antarchy:glowcap_caves", "antarchy:brooding_tunnels", "antarchy:rolly_caves" ] diff --git a/common/src/main/resources/data/antarchy/trayaurus_trades/default.json b/common/src/main/resources/data/antarchy/trayaurus_trades/default.json index 7c3696bd..e08354ab 100644 --- a/common/src/main/resources/data/antarchy/trayaurus_trades/default.json +++ b/common/src/main/resources/data/antarchy/trayaurus_trades/default.json @@ -2,11 +2,11 @@ "trades": [ { "buy": { - "item": "antarchy:emerald", + "item": "minecraft:emerald", "count": 7 }, "sell": { - "item": "minecraft:root_beer", + "item": "antarchy:root_beer", "count": 1 }, "max_uses": 16, @@ -15,7 +15,7 @@ }, { "buy": { - "item": "antarchy:cooked_corn_dog", + "item": "antarchy:cooked_corndog", "count": 3 }, "sell": { diff --git a/common/src/main/resources/data/antarchy/worldgen/biome/brooding_tunnels.json b/common/src/main/resources/data/antarchy/worldgen/biome/brooding_tunnels.json index 5172fc4a..a7cf57b6 100644 --- a/common/src/main/resources/data/antarchy/worldgen/biome/brooding_tunnels.json +++ b/common/src/main/resources/data/antarchy/worldgen/biome/brooding_tunnels.json @@ -24,12 +24,12 @@ }, "spawn_costs": { "antarchy:jumpy_bug": { - "energy_budget": 0.2, - "charge": 9 + "energy_budget": 0.4, + "charge": 7 }, "antarchy:spit_bug": { - "energy_budget": 0.7, - "charge": 6 + "energy_budget": 0.9, + "charge": 2 } }, "carvers": { @@ -57,10 +57,11 @@ "antarchy:brooding_tunnels_creepvine", "antarchy:brooding_tunnels_hanging_creeproots", "antarchy:molting_vines", + "antarchy:ground_molting_vines", "antarchy:jumpy_bug_egg_ceiling" ] ], - "creature_spawn_probability": 0.06, + "creature_spawn_probability": 0.12, "spawners": { "monster": [ { @@ -77,7 +78,14 @@ } ], "creature": [], - "ambient": [], + "ambient": [ + { + "type": "antarchy:stink_bug", + "weight": 10, + "minCount": 1, + "maxCount": 3 + } + ], "axolotls": [], "underground_water_creature": [], "water_creature": [], diff --git a/common/src/main/resources/data/antarchy/worldgen/biome/cavaryn.json b/common/src/main/resources/data/antarchy/worldgen/biome/cavaryn.json index 696c2b8b..e0da68c7 100644 --- a/common/src/main/resources/data/antarchy/worldgen/biome/cavaryn.json +++ b/common/src/main/resources/data/antarchy/worldgen/biome/cavaryn.json @@ -39,7 +39,11 @@ [], [], [], - [], + [ + "antarchy:myrmite_coal_ore", + "antarchy:broodstone_uranium_ore", + "antarchy:broodstone_titanium_ore" + ], [], [ "antarchy:cavaryn_bile_veins", @@ -76,7 +80,8 @@ "maxCount": 1 } ], - "creature": [ + "creature": [], + "ambient": [ { "type": "antarchy:stink_bug", "weight": 10, @@ -84,7 +89,6 @@ "maxCount": 3 } ], - "ambient": [], "axolotls": [], "underground_water_creature": [], "water_creature": [], diff --git a/common/src/main/resources/data/antarchy/worldgen/biome/glowcap_caves.json b/common/src/main/resources/data/antarchy/worldgen/biome/glowcap_caves.json index 879cfe25..d6df1bf4 100644 --- a/common/src/main/resources/data/antarchy/worldgen/biome/glowcap_caves.json +++ b/common/src/main/resources/data/antarchy/worldgen/biome/glowcap_caves.json @@ -63,16 +63,15 @@ "maxCount": 5 } ], - "creature": [ + "creature": [], + "ambient": [ { "type": "antarchy:stink_bug", - "weight": 32, + "weight": 40, "minCount": 2, "maxCount": 4 } ], - "ambient": [ - ], "axolotls": [], "underground_water_creature": [], "water_creature": [], diff --git a/common/src/main/resources/data/antarchy/worldgen/biome/peach_forest.json b/common/src/main/resources/data/antarchy/worldgen/biome/peach_forest.json index 26bd17d6..06c3a159 100644 --- a/common/src/main/resources/data/antarchy/worldgen/biome/peach_forest.json +++ b/common/src/main/resources/data/antarchy/worldgen/biome/peach_forest.json @@ -69,7 +69,8 @@ "antarchy:peach_large_tree", "antarchy:peach_tree", "antarchy:peach_forest_flora", - "antarchy:elythia_rainbow_ant_nests" + "antarchy:elythia_rainbow_ant_nests", + "antarchy:giant_lily_pad_patch_peach_forest" ], [] ], diff --git a/common/src/main/resources/data/antarchy/worldgen/biome/rolly_caves.json b/common/src/main/resources/data/antarchy/worldgen/biome/rolly_caves.json index c48d89b0..cd038b6e 100644 --- a/common/src/main/resources/data/antarchy/worldgen/biome/rolly_caves.json +++ b/common/src/main/resources/data/antarchy/worldgen/biome/rolly_caves.json @@ -59,14 +59,7 @@ "creature_spawn_probability": 0.08, "spawners": { "monster": [], - "creature": [ - { - "type": "antarchy:rolly_polly", - "weight": 20, - "minCount": 1, - "maxCount": 2 - } - ], + "creature": [], "ambient": [], "axolotls": [], "underground_water_creature": [], diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/giant_lily_pad_patch_peach_forest.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/giant_lily_pad_patch_peach_forest.json new file mode 100644 index 00000000..9d3e15fe --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/giant_lily_pad_patch_peach_forest.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:giant_lily_pad_patch_peach_forest", + "config": {} +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/glowcap_caves_floor_patch.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/glowcap_caves_floor_patch.json index f060e58a..d82b93c4 100644 --- a/common/src/main/resources/data/antarchy/worldgen/configured_feature/glowcap_caves_floor_patch.json +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/glowcap_caves_floor_patch.json @@ -38,13 +38,13 @@ "type": "minecraft:weighted_state_provider", "entries": [ { - "weight": 21, + "weight": 24, "data": { "Name": "antarchy:amber_moss_carpet" } }, { - "weight": 11, + "weight": 12, "data": { "Name": "minecraft:short_grass" } diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/ground_molting_vines.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/ground_molting_vines.json new file mode 100644 index 00000000..289e8743 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/ground_molting_vines.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:ground_molting_vines", + "config": {} +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/myrmite_coal_ore.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/myrmite_coal_ore.json new file mode 100644 index 00000000..fd6b9ffe --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/myrmite_coal_ore.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 12, + "discard_chance_on_air_exposure": 0.0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:block_match", + "block": "antarchy:myrmite" + }, + "state": { + "Name": "antarchy:myrmite_coal_ore" + } + } + ] + } +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/elythia_moleworm_cave_entrances.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/elythia_moleworm_cave_entrances.json index 880e3a50..5205107a 100644 --- a/common/src/main/resources/data/antarchy/worldgen/placed_feature/elythia_moleworm_cave_entrances.json +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/elythia_moleworm_cave_entrances.json @@ -3,7 +3,7 @@ "placement": [ { "type": "minecraft:rarity_filter", - "chance": 5 + "chance": 4 }, { "type": "minecraft:in_square" diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/giant_lily_pad_patch_peach_forest.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/giant_lily_pad_patch_peach_forest.json new file mode 100644 index 00000000..176eba6c --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/giant_lily_pad_patch_peach_forest.json @@ -0,0 +1,9 @@ +{ + "feature": "antarchy:giant_lily_pad_patch_peach_forest", + "placement": [ + { "type": "minecraft:rarity_filter", "chance": 6 }, + { "type": "minecraft:in_square" }, + { "type": "minecraft:heightmap", "heightmap": "MOTION_BLOCKING_NO_LEAVES" }, + { "type": "minecraft:biome" } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/ground_molting_vines.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/ground_molting_vines.json new file mode 100644 index 00000000..4f4e0661 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/ground_molting_vines.json @@ -0,0 +1,31 @@ +{ + "feature": "antarchy:ground_molting_vines", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 3, + "max_inclusive": 6 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 8 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/jumpy_bug_egg_ceiling.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/jumpy_bug_egg_ceiling.json index 3d59c6b4..66272825 100644 --- a/common/src/main/resources/data/antarchy/worldgen/placed_feature/jumpy_bug_egg_ceiling.json +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/jumpy_bug_egg_ceiling.json @@ -2,8 +2,12 @@ "feature": "antarchy:jumpy_bug_egg_ceiling", "placement": [ { - "type": "minecraft:rarity_filter", - "chance": 6 + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 1, + "max_inclusive": 2 + } }, { "type": "minecraft:in_square" diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/myrmite_coal_ore.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/myrmite_coal_ore.json new file mode 100644 index 00000000..55fbe7aa --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/myrmite_coal_ore.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:myrmite_coal_ore", + "placement": [ + { + "type": "minecraft:count", + "count": 14 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 5 + }, + "max_inclusive": { + "absolute": 190 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/peach_forest_petals.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/peach_forest_petals.json index fa38da85..e03dcf94 100644 --- a/common/src/main/resources/data/antarchy/worldgen/placed_feature/peach_forest_petals.json +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/peach_forest_petals.json @@ -12,6 +12,15 @@ "type": "minecraft:heightmap", "heightmap": "WORLD_SURFACE_WG" }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:pink_petals" + } + } + }, { "type": "minecraft:biome" } diff --git a/common/src/main/resources/data/antarchy/worldgen/structure_set/elythia_rare.json b/common/src/main/resources/data/antarchy/worldgen/structure_set/elythia_rare.json index 83b57ead..b37f29c0 100644 --- a/common/src/main/resources/data/antarchy/worldgen/structure_set/elythia_rare.json +++ b/common/src/main/resources/data/antarchy/worldgen/structure_set/elythia_rare.json @@ -6,15 +6,15 @@ }, { "structure": "antarchy:fallen_kingdom_castle", - "weight": 1 + "weight": 2 }, { "structure": "antarchy:ruined_arena", - "weight": 1 + "weight": 3 }, { "structure": "antarchy:toreterror_arena", - "weight": 1 + "weight": 3 } ], "placement": { diff --git a/common/src/main/resources/data/c/tags/block/ores.json b/common/src/main/resources/data/c/tags/block/ores.json index 7ee4e077..48c82ae3 100644 --- a/common/src/main/resources/data/c/tags/block/ores.json +++ b/common/src/main/resources/data/c/tags/block/ores.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "#c:ores/coal", "#c:ores/titanium", "#c:ores/uranium" ] diff --git a/common/src/main/resources/data/c/tags/block/ores/coal.json b/common/src/main/resources/data/c/tags/block/ores/coal.json new file mode 100644 index 00000000..dd5065b6 --- /dev/null +++ b/common/src/main/resources/data/c/tags/block/ores/coal.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:myrmite_coal_ore" + ] +} diff --git a/common/src/main/resources/data/c/tags/block/ores_in_ground/myrmite.json b/common/src/main/resources/data/c/tags/block/ores_in_ground/myrmite.json new file mode 100644 index 00000000..dd5065b6 --- /dev/null +++ b/common/src/main/resources/data/c/tags/block/ores_in_ground/myrmite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:myrmite_coal_ore" + ] +} diff --git a/common/src/main/resources/data/c/tags/item/ores.json b/common/src/main/resources/data/c/tags/item/ores.json index 7ee4e077..48c82ae3 100644 --- a/common/src/main/resources/data/c/tags/item/ores.json +++ b/common/src/main/resources/data/c/tags/item/ores.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "#c:ores/coal", "#c:ores/titanium", "#c:ores/uranium" ] diff --git a/common/src/main/resources/data/c/tags/item/ores/coal.json b/common/src/main/resources/data/c/tags/item/ores/coal.json new file mode 100644 index 00000000..dd5065b6 --- /dev/null +++ b/common/src/main/resources/data/c/tags/item/ores/coal.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:myrmite_coal_ore" + ] +} diff --git a/common/src/main/resources/data/c/tags/item/ores_in_ground/myrmite.json b/common/src/main/resources/data/c/tags/item/ores_in_ground/myrmite.json new file mode 100644 index 00000000..dd5065b6 --- /dev/null +++ b/common/src/main/resources/data/c/tags/item/ores_in_ground/myrmite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:myrmite_coal_ore" + ] +} diff --git a/common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json b/common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json index 2a7b1279..8534b13b 100644 --- a/common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json +++ b/common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -94,6 +94,7 @@ "antarchy:broodstone_brick_stairs", "antarchy:broodstone_brick_slab", "antarchy:broodstone_brick_wall", + "antarchy:myrmite_coal_ore", "antarchy:broodstone_uranium_ore", "antarchy:broodstone_titanium_ore", "antarchy:bile_vein", diff --git a/common/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json b/common/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json index 33cea4cb..9f87c045 100644 --- a/common/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json +++ b/common/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json @@ -19,6 +19,7 @@ "antarchy:shellstone_brick_stairs", "antarchy:shellstone_brick_slab", "antarchy:shellstone_brick_wall", + "antarchy:myrmite_coal_ore", "antarchy:chiten_block", "antarchy:bile_vein" ] diff --git a/common/src/main/resources/data/minecraft/tags/entity_type/arthropod.json b/common/src/main/resources/data/minecraft/tags/entity_type/arthropod.json index 445a31c7..26157504 100644 --- a/common/src/main/resources/data/minecraft/tags/entity_type/arthropod.json +++ b/common/src/main/resources/data/minecraft/tags/entity_type/arthropod.json @@ -15,7 +15,6 @@ "antarchy:hercules_beetle", "antarchy:creeping_horror", "antarchy:lurking_terror", - "antarchy:rolly_polly", "antarchy:scorpion", "antarchy:emperor_scorpion" ] diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabric.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabric.java index b8caac03..06cc3954 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabric.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabric.java @@ -2,18 +2,28 @@ package com.craisinlord.antarchy.fabric; import com.craisinlord.antarchy.fabric.registry.AntarchyFabricEntities; import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.entity.trades.DrTrayaurusTradeManager; import com.craisinlord.antarchy.content.item.BloodCrystalShardItem; import com.craisinlord.antarchy.fabric.network.AntarchyFabricNetworking; import net.fabricmc.fabric.api.biome.v1.BiomeModifications; import net.fabricmc.fabric.api.biome.v1.BiomeSelectors; +import net.fabricmc.fabric.api.resource.IdentifiableResourceReloadListener; +import net.fabricmc.fabric.api.resource.ResourceManagerHelper; import net.fabricmc.api.ModInitializer; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.PackType; +import net.minecraft.server.packs.resources.PreparableReloadListener; +import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.tags.TagKey; +import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.levelgen.GenerationStep; import net.minecraft.world.level.levelgen.placement.PlacedFeature; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Executor; + public final class AntarchyFabric implements ModInitializer { private static final TagKey SHELLSTONE_BIOMES = TagKey.create( Registries.BIOME, @@ -146,6 +156,24 @@ public final class AntarchyFabric implements ModInitializer { BloodglassManager.register(); Antarchy.init(); BloodCrystalShardItem.SYNC_BLOODGLASS = BloodglassManager::syncBloodglass; + registerTradeReloadListener(); + } + + private static void registerTradeReloadListener() { + DrTrayaurusTradeManager delegate = new DrTrayaurusTradeManager(); + ResourceManagerHelper.get(PackType.SERVER_DATA).registerReloadListener(new IdentifiableResourceReloadListener() { + @Override + public ResourceLocation getFabricId() { + return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "trayaurus_trades"); + } + + @Override + public CompletableFuture reload(PreparableReloadListener.PreparationBarrier barrier, ResourceManager manager, + ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler, + Executor prepareExecutor, Executor applyExecutor) { + return delegate.reload(barrier, manager, prepareProfiler, applyProfiler, prepareExecutor, applyExecutor); + } + }); } private static final TagKey CAVARYN_BIOMES = TagKey.create( diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/StinkySoundHandler.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/StinkySoundHandler.java index e279fb2f..e84dfb6b 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/StinkySoundHandler.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/StinkySoundHandler.java @@ -34,13 +34,15 @@ public final class StinkySoundHandler { return; } - client.level.playSound( - null, - client.player.blockPosition(), + client.level.playLocalSound( + client.player.getX(), + client.player.getY(), + client.player.getZ(), AntarchySoundEvents.STINKY_FLY.get(), SoundSource.AMBIENT, 0.14F + client.level.random.nextFloat() * 0.06F, - 0.92F + client.level.random.nextFloat() * 0.16F + 0.92F + client.level.random.nextFloat() * 0.16F, + false ); nextSoundTick = MIN_INTERVAL + client.level.random.nextInt(MAX_INTERVAL - MIN_INTERVAL + 1); }); diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java index b46f01b1..941a65cb 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java @@ -660,6 +660,10 @@ public final class AntarchyFabricBlocks { () -> new Block(nyxiteProperties())); + public static final DeferredBlock MYRMITE_COAL_ORE = BLOCKS.register("myrmite_coal_ore", + () -> createOre(Blocks.COAL_ORE, 0, 2)); + + public static final DeferredBlock BROODSTONE = BLOCKS.register("broodstone", () -> new Block(broodstoneProperties())); diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java index 0a90bac9..f93a9ac2 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java @@ -360,7 +360,7 @@ public final class AntarchyFabricEntities { public static final DeferredHolder, EntityType> STINK_BUG = ENTITY_TYPES.register("stink_bug", - () -> EntityType.Builder.of(StinkBugEntity::new, MobCategory.CREATURE) + () -> EntityType.Builder.of(StinkBugEntity::new, MobCategory.AMBIENT) .sized(0.35F, 0.2F) .clientTrackingRange(8) .build("stink_bug")); diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java index 18ace057..e7f8b303 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java @@ -647,6 +647,7 @@ public final class AntarchyFabricItems { public static final DeferredItem BROODSTONE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_BRICK_STAIRS); public static final DeferredItem BROODSTONE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_BRICK_SLAB); public static final DeferredItem BROODSTONE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_BRICK_WALL); + public static final DeferredItem MYRMITE_COAL_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_COAL_ORE); public static final DeferredItem BROODSTONE_URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_URANIUM_ORE); public static final DeferredItem BROODSTONE_TITANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_TITANIUM_ORE); diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java index ecfe57bf..8495d30e 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java @@ -780,6 +780,9 @@ public final class AntarchyFabricMisc { public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.elythia.GiantLilyPadPatchFeature> GIANT_LILY_PAD_PATCH = FEATURES.register("giant_lily_pad_patch", () -> new com.craisinlord.antarchy.content.worldgen.elythia.GiantLilyPadPatchFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.elythia.GiantLilyPadPatchFeature> GIANT_LILY_PAD_PATCH_PEACH_FOREST = FEATURES.register("giant_lily_pad_patch_peach_forest", + () -> new com.craisinlord.antarchy.content.worldgen.elythia.GiantLilyPadPatchFeature(NoneFeatureConfiguration.CODEC, 0.12F)); + public static final DeferredHolder, LumenStreamFeature> LUMEN_STREAM = FEATURES.register("lumen_streams", () -> new LumenStreamFeature(NoneFeatureConfiguration.CODEC)); @@ -841,6 +844,8 @@ public final class AntarchyFabricMisc { public static final DeferredHolder, MoltingVinesFeature> MOLTING_VINES = FEATURES.register("molting_vines", () -> new MoltingVinesFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.cavaryn.GroundMoltingVinesFeature> GROUND_MOLTING_VINES = FEATURES.register("ground_molting_vines", + () -> new com.craisinlord.antarchy.content.worldgen.cavaryn.GroundMoltingVinesFeature(NoneFeatureConfiguration.CODEC)); public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.cavaryn.JumpyBugEggCeilingFeature> JUMPY_BUG_EGG_CEILING = FEATURES.register("jumpy_bug_egg_ceiling", () -> new com.craisinlord.antarchy.content.worldgen.cavaryn.JumpyBugEggCeilingFeature(NoneFeatureConfiguration.CODEC)); diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/StinkySoundHandler.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/StinkySoundHandler.java index 6df0b334..82431443 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/StinkySoundHandler.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/StinkySoundHandler.java @@ -39,13 +39,15 @@ public final class StinkySoundHandler { return; } - mc.level.playSound( - null, - mc.player.blockPosition(), + mc.level.playLocalSound( + mc.player.getX(), + mc.player.getY(), + mc.player.getZ(), AntarchySoundEvents.STINKY_FLY.get(), SoundSource.AMBIENT, 0.14F + mc.level.random.nextFloat() * 0.06F, - 0.92F + mc.level.random.nextFloat() * 0.16F + 0.92F + mc.level.random.nextFloat() * 0.16F, + false ); nextSoundTick = MIN_INTERVAL + mc.level.random.nextInt(MAX_INTERVAL - MIN_INTERVAL + 1); } diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java index a2c5841c..2f43fff5 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java @@ -248,6 +248,8 @@ public final class AntarchyNeoforgeBlocks { )); public static final DeferredBlock MYRMITE = BLOCKS.register("myrmite", () -> new Block(nyxiteProperties())); + public static final DeferredBlock MYRMITE_COAL_ORE = BLOCKS.register("myrmite_coal_ore", + () -> createOre(Blocks.COAL_ORE, 0, 2)); public static final DeferredBlock BROODSTONE = BLOCKS.register("broodstone", () -> new Block(broodstoneProperties())); public static final DeferredBlock POLISHED_BROODSTONE = BLOCKS.register("polished_broodstone", diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeCreativeModeTabs.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeCreativeModeTabs.java index c558cfb9..e4c2bbc2 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeCreativeModeTabs.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeCreativeModeTabs.java @@ -271,6 +271,10 @@ public class AntarchyNeoforgeCreativeModeTabs { event.accept(AntarchyNeoforgeItems.MOSSY_SHELLSTONE_BRICK_SLAB_ITEM.get()); event.accept(AntarchyNeoforgeItems.MOSSY_SHELLSTONE_BRICK_WALL_ITEM.get()); event.accept(AntarchyNeoforgeItems.CRACKED_SHELLSTONE_BRICKS_ITEM.get()); + event.accept(AntarchyNeoforgeItems.BLUSH_MOSS_BLOCK_ITEM.get()); + event.accept(AntarchyNeoforgeItems.BLUSH_MOSS_CARPET_ITEM.get()); + event.accept(AntarchyNeoforgeItems.LUMEN_FROGLIGHT_ITEM.get()); + event.accept(AntarchyNeoforgeItems.ROSEATE_FROGLIGHT_ITEM.get()); event.accept(AntarchyNeoforgeItems.NYXITE_ITEM.get()); event.accept(AntarchyNeoforgeItems.NYXITE_STAIRS_ITEM.get()); event.accept(AntarchyNeoforgeItems.NYXITE_SLAB_ITEM.get()); @@ -292,13 +296,9 @@ public class AntarchyNeoforgeCreativeModeTabs { event.accept(AntarchyNeoforgeItems.ANTIMETAL_SCAFFOLDING_ITEM.get()); event.accept(AntarchyNeoforgeItems.UMBRAL_MOSS_BLOCK_ITEM.get()); event.accept(AntarchyNeoforgeItems.UMBRAL_MOSS_CARPET_ITEM.get()); - event.accept(AntarchyNeoforgeItems.BLUSH_MOSS_BLOCK_ITEM.get()); - event.accept(AntarchyNeoforgeItems.BLUSH_MOSS_CARPET_ITEM.get()); event.accept(AntarchyNeoforgeItems.DREAM_TORCH_ITEM.get()); event.accept(AntarchyNeoforgeItems.DREAM_LANTERN_ITEM.get()); event.accept(AntarchyNeoforgeItems.DREAM_CAMPFIRE_ITEM.get()); - event.accept(AntarchyNeoforgeItems.LUMEN_FROGLIGHT_ITEM.get()); - event.accept(AntarchyNeoforgeItems.ROSEATE_FROGLIGHT_ITEM.get()); event.accept(AntarchyNeoforgeItems.DREAM_SAND_ITEM.get()); event.accept(AntarchyNeoforgeItems.DREAM_SANDSTONE_ITEM.get()); event.accept(AntarchyNeoforgeItems.CHISELED_DREAM_SANDSTONE_ITEM.get()); @@ -330,6 +330,7 @@ public class AntarchyNeoforgeCreativeModeTabs { event.accept(AntarchyNeoforgeItems.BROODSTONE_BRICK_STAIRS_ITEM.get()); event.accept(AntarchyNeoforgeItems.BROODSTONE_BRICK_SLAB_ITEM.get()); event.accept(AntarchyNeoforgeItems.BROODSTONE_BRICK_WALL_ITEM.get()); + event.accept(AntarchyNeoforgeItems.MYRMITE_COAL_ORE_ITEM.get()); event.accept(AntarchyNeoforgeItems.BROODSTONE_URANIUM_ORE_ITEM.get()); event.accept(AntarchyNeoforgeItems.BROODSTONE_TITANIUM_ORE_ITEM.get()); event.accept(AntarchyNeoforgeItems.BILE_VEIN_ITEM.get()); diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java index 29004a81..06349069 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java @@ -152,7 +152,7 @@ public final class AntarchyNeoforgeEntites { .clientTrackingRange(8) .build("bed_bug")); public static final DeferredHolder, EntityType> STINK_BUG = ENTITY_TYPES.register("stink_bug", - () -> EntityType.Builder.of(StinkBugEntity::new, MobCategory.CREATURE) + () -> EntityType.Builder.of(StinkBugEntity::new, MobCategory.AMBIENT) .sized(0.35F, 0.2F) .clientTrackingRange(8) .build("stink_bug")); diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java index 5b0352f4..a08489e7 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java @@ -288,6 +288,7 @@ public final class AntarchyNeoforgeItems { public static final DeferredItem BROODSTONE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_BRICK_STAIRS); public static final DeferredItem BROODSTONE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_BRICK_SLAB); public static final DeferredItem BROODSTONE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_BRICK_WALL); + public static final DeferredItem MYRMITE_COAL_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MYRMITE_COAL_ORE); public static final DeferredItem BROODSTONE_URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_URANIUM_ORE); public static final DeferredItem BROODSTONE_TITANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_TITANIUM_ORE); public static final DeferredItem POLISHED_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_NYXITE); diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java index 4e820e3e..04821095 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java @@ -272,6 +272,8 @@ public final class AntarchyNeoforgeMisc { () -> new LumenLilyPadFeature(NoneFeatureConfiguration.CODEC)); public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.elythia.GiantLilyPadPatchFeature> GIANT_LILY_PAD_PATCH = FEATURES.register("giant_lily_pad_patch", () -> new com.craisinlord.antarchy.content.worldgen.elythia.GiantLilyPadPatchFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.elythia.GiantLilyPadPatchFeature> GIANT_LILY_PAD_PATCH_PEACH_FOREST = FEATURES.register("giant_lily_pad_patch_peach_forest", + () -> new com.craisinlord.antarchy.content.worldgen.elythia.GiantLilyPadPatchFeature(NoneFeatureConfiguration.CODEC, 0.12F)); public static final DeferredHolder, LumenStreamFeature> LUMEN_STREAM = FEATURES.register("lumen_streams", () -> new LumenStreamFeature(NoneFeatureConfiguration.CODEC)); public static final DeferredHolder, LumenSpireFeature> LUMEN_SPIRE = FEATURES.register("lumen_spires", @@ -312,6 +314,8 @@ public final class AntarchyNeoforgeMisc { public static final DeferredHolder, MoltingVinesFeature> MOLTING_VINES = FEATURES.register("molting_vines", () -> new MoltingVinesFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.cavaryn.GroundMoltingVinesFeature> GROUND_MOLTING_VINES = FEATURES.register("ground_molting_vines", + () -> new com.craisinlord.antarchy.content.worldgen.cavaryn.GroundMoltingVinesFeature(NoneFeatureConfiguration.CODEC)); public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.cavaryn.JumpyBugEggCeilingFeature> JUMPY_BUG_EGG_CEILING = FEATURES.register("jumpy_bug_egg_ceiling", () -> new com.craisinlord.antarchy.content.worldgen.cavaryn.JumpyBugEggCeilingFeature(NoneFeatureConfiguration.CODEC)); public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.cavaryn.RollyCavesGiantCavernFeature> ROLLY_CAVES_GIANT_CAVERN = FEATURES.register("rolly_caves_giant_cavern",