From e265d68526c32b844641f4496039cc8dc615c212 Mon Sep 17 00:00:00 2001 From: craisinlord Date: Fri, 17 Jul 2026 01:51:06 -0500 Subject: [PATCH] surprise beta 9 update! --- .../antarchy/config/AntarchySettings.java | 4 +- .../antarchy/content/CreativeTabOrder.java | 12 +- .../content/block/CritterCageBlock.java | 10 ++ .../content/block/PotentNyxiteBlock.java | 2 +- .../block/entity/CritterCageBlockEntity.java | 18 +++ .../block/entity/PotentNyxiteBlockEntity.java | 2 +- .../block/entity/SeashellBlockEntity.java | 18 ++- .../client/renderer/CritterCageRenderer.java | 2 +- .../antarchy/content/entity/BedBugEntity.java | 2 + .../antarchy/content/entity/DorrieEntity.java | 38 ++++-- .../entity/nightmare/NightmareEntity.java | 13 ++ .../antarchy/content/item/BigBerthaItem.java | 1 + .../elythia/GiantLilyPadPatchFeature.java | 4 +- .../elythia/OuranwoodTreeFeature.java | 12 ++ .../worldgen/ocean/SeashellFeature.java | 1 + .../worldgen/ocean/StarCoralPatchFeature.java | 78 ++++++++--- .../worldgen/thoraxis/BedBugNestFeature.java | 4 +- .../thoraxis/BedBugSurfaceClusterFeature.java | 9 +- .../antarchy/mixins/AntarchyMixinPlugin.java | 15 +- .../client/KrakensGraspChargePoseMixin.java | 1 + .../client/MountedVehicleCameraMixin.java | 10 +- .../antarchy/blockstates/potted_lotus.json | 7 + .../blockstates/potted_ouranwood_acorn.json | 7 + .../blockstates/potted_peach_sapling.json | 7 + .../blockstates/potted_spider_lily.json | 7 + .../models/block/critter_cage_block.json | 4 +- .../antarchy/models/block/potted_lotus.json | 6 + .../models/block/potted_ouranwood_acorn.json | 6 + .../models/block/potted_peach_sapling.json | 6 + .../models/block/potted_spider_lily.json | 104 ++++++++++++++ .../nyxite_spike/nyxite_spike_down_base.png | Bin 524 -> 525 bytes .../nyxite_spike_down_frustum.png | Bin 432 -> 423 bytes .../nyxite_spike/nyxite_spike_down_middle.png | Bin 465 -> 464 bytes .../nyxite_spike/nyxite_spike_down_tip.png | Bin 354 -> 356 bytes .../nyxite_spike_down_tip_merge.png | Bin 382 -> 385 bytes .../nyxite_spike/nyxite_spike_up_base.png | Bin 471 -> 469 bytes .../nyxite_spike/nyxite_spike_up_frustum.png | Bin 423 -> 424 bytes .../nyxite_spike/nyxite_spike_up_middle.png | Bin 459 -> 457 bytes .../nyxite_spike/nyxite_spike_up_tip.png | Bin 302 -> 310 bytes .../nyxite_spike_up_tip_merge.png | Bin 369 -> 374 bytes .../entity/glimmer/apple_cow_glimmer.png | Bin 4101 -> 4091 bytes .../glimmer/apple_cow_glimmer_emissive.png | Bin 2772 -> 2761 bytes .../loot_table/blocks/potted_lotus.json | 24 ++++ .../blocks/potted_ouranwood_acorn.json | 24 ++++ .../blocks/potted_peach_sapling.json | 24 ++++ .../loot_table/blocks/potted_spider_lily.json | 24 ++++ .../antarchy/loot_table/chests/seashell.json | 128 ++++++++++++++++-- .../{recipes => recipe}/critter_cage.json | 3 +- .../worldgen/biome/has_rare_seashell.json | 6 + .../tags/worldgen/biome/has_seashell.json | 10 +- .../worldgen/biome/butterfly_fields.json | 8 +- .../worldgen/biome/elythia_meadow.json | 2 +- .../worldgen/biome/elythia_ocean.json | 1 + .../worldgen/biome/glimmering_pools.json | 3 +- .../cornea_stalk_cluster.json | 9 ++ .../patch_ceiling_cornea_stalk_cluster.json | 9 ++ .../placed_feature/cornea_stalk_patch.json | 32 +---- .../placed_feature/cornea_stalk_single.json | 26 ++++ .../giant_lily_pad_patch_meadow.json | 9 ++ .../patch_ceiling_cornea_stalk.json | 32 +---- .../patch_ceiling_cornea_stalk_single.json | 26 ++++ .../placed_feature/seashell_patch_rare.json | 19 +++ .../antarchy/fabric/AntarchyFabric.java | 26 ++++ .../client/AntarchyFabricClientBootstrap.java | 10 ++ .../client/DorrieJumpClientHandler.java | 3 + .../fabric/registry/AntarchyFabricBlocks.java | 8 ++ .../registry/AntarchyFabricEntities.java | 2 +- .../neoforge/AntarchyToolsConfig.java | 4 +- .../client/AntarchyNeoForgeClient.java | 10 ++ .../client/DorrieJumpClientHandler.java | 3 + .../registry/AntarchyNeoForgeEvents.java | 28 ++++ .../registry/AntarchyNeoforgeBlocks.java | 8 ++ .../AntarchyNeoforgeCreativeModeTabs.java | 2 + .../registry/AntarchyNeoforgeEntites.java | 2 +- .../registry/AntarchyNeoforgeItems.java | 5 - .../seashell_in_warm_oceans.json | 6 + .../biome_modifier/star_coral_in_oceans.json | 6 + 77 files changed, 806 insertions(+), 146 deletions(-) create mode 100644 common/src/main/resources/assets/antarchy/blockstates/potted_lotus.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/potted_ouranwood_acorn.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/potted_peach_sapling.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/potted_spider_lily.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/potted_lotus.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/potted_ouranwood_acorn.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/potted_peach_sapling.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/potted_spider_lily.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/potted_lotus.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/potted_ouranwood_acorn.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/potted_peach_sapling.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/potted_spider_lily.json rename common/src/main/resources/data/antarchy/{recipes => recipe}/critter_cage.json (84%) create mode 100644 common/src/main/resources/data/antarchy/tags/worldgen/biome/has_rare_seashell.json create mode 100644 common/src/main/resources/data/antarchy/worldgen/configured_feature/cornea_stalk_cluster.json create mode 100644 common/src/main/resources/data/antarchy/worldgen/configured_feature/patch_ceiling_cornea_stalk_cluster.json create mode 100644 common/src/main/resources/data/antarchy/worldgen/placed_feature/cornea_stalk_single.json create mode 100644 common/src/main/resources/data/antarchy/worldgen/placed_feature/giant_lily_pad_patch_meadow.json create mode 100644 common/src/main/resources/data/antarchy/worldgen/placed_feature/patch_ceiling_cornea_stalk_single.json create mode 100644 common/src/main/resources/data/antarchy/worldgen/placed_feature/seashell_patch_rare.json create mode 100644 neoforge/src/main/resources/data/antarchy/neoforge/biome_modifier/seashell_in_warm_oceans.json create mode 100644 neoforge/src/main/resources/data/antarchy/neoforge/biome_modifier/star_coral_in_oceans.json diff --git a/common/src/main/java/com/craisinlord/antarchy/config/AntarchySettings.java b/common/src/main/java/com/craisinlord/antarchy/config/AntarchySettings.java index d0f14021..ab6761e5 100644 --- a/common/src/main/java/com/craisinlord/antarchy/config/AntarchySettings.java +++ b/common/src/main/java/com/craisinlord/antarchy/config/AntarchySettings.java @@ -141,8 +141,8 @@ public final class AntarchySettings { private static double gravityGunBlastStrength = 1.4D; private static double gravityGunCooldownSeconds = 0.35D; private static double gravityGunMaxHoldDistance = 10.0D; - private static double critterCageMaxCapturableWidth = 1.15D; - private static double critterCageMaxCapturableHeight = 1.15D; + private static double critterCageMaxCapturableWidth = 1.65D; + private static double critterCageMaxCapturableHeight = 1.65D; private static boolean minersDreamEnabled = true; private static int minersDreamMinimumRange = 48; private static int minersDreamMaximumRange = 96; 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 60b97f39..1ef2eff5 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/CreativeTabOrder.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/CreativeTabOrder.java @@ -67,10 +67,9 @@ public final class CreativeTabOrder { case "dream_torch", "dream_lantern", "dream_campfire", "dream_fire", "dream_fire_ceiling", "lumen_froglight", "roseate_froglight" -> 12; case "antimetal_scaffolding" -> 13; - case "infested_rooted_dirt", "infested_coarse_dirt", "bed_bug_egg", - "creeping_horror_egg", "lurking_terror_egg" -> 14; + case "infested_rooted_dirt", "infested_coarse_dirt", "bed_bug_egg" -> 14; case "ultimate_pickaxe", "ultimate_axe", "ultimate_shovel", "ultimate_hoe", - "duct_tape", "diamond_minecart", "gravity_sculk_sensor", "miners_dream" -> 15; + "duct_tape", "diamond_minecart", "critter_cage", "gravity_sculk_sensor", "miners_dream" -> 15; case "bile_bucket", "ichor_bucket", "antiwater_bucket", "cloud_bucket", "lumen_bucket" -> 16; case "moggles", "brutalfly_elytra", "fallen_king_crown", "jumpy_boots" -> 17; case "battle_axe", "basilisk_dagger", "squidzooka", "rpo_launcher", "shrink_ray", "growth_ray", @@ -230,16 +229,15 @@ public final class CreativeTabOrder { case "infested_rooted_dirt" -> 0; case "infested_coarse_dirt" -> 1; case "bed_bug_egg" -> 2; - case "creeping_horror_egg" -> 3; - case "lurking_terror_egg" -> 4; case "ultimate_pickaxe" -> 0; case "ultimate_axe" -> 1; case "ultimate_shovel" -> 2; case "ultimate_hoe" -> 3; case "duct_tape" -> 4; case "diamond_minecart" -> 5; - case "gravity_sculk_sensor" -> 6; - case "miners_dream" -> 7; + case "critter_cage" -> 6; + case "gravity_sculk_sensor" -> 7; + case "miners_dream" -> 8; case "bile_bucket" -> 0; case "ichor_bucket" -> 1; case "antiwater_bucket" -> 2; 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 140f26e8..f4ba338a 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 @@ -15,8 +15,13 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.BlockGetter; +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 final MapCodec codec; public CritterCageBlock(BlockBehaviour.Properties properties) { @@ -34,6 +39,11 @@ public class CritterCageBlock extends BaseEntityBlock { return RenderShape.MODEL; } + @Override + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return SHAPE; + } + @Override public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { return new CritterCageBlockEntity(pos, state); diff --git a/common/src/main/java/com/craisinlord/antarchy/content/block/PotentNyxiteBlock.java b/common/src/main/java/com/craisinlord/antarchy/content/block/PotentNyxiteBlock.java index 75fe9911..414fa23d 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/block/PotentNyxiteBlock.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/block/PotentNyxiteBlock.java @@ -269,7 +269,7 @@ public class PotentNyxiteBlock extends BaseEntityBlock { BlockPos.MutableBlockPos cursor = pos.relative(direction).mutable(); while (true) { FluidState fluidState = level.getFluidState(cursor); - if (!fluidState.isSource() || !isAntiwater(fluidState)) { + if (!isAntiwater(fluidState)) { break; } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/block/entity/CritterCageBlockEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/block/entity/CritterCageBlockEntity.java index 6c8d400d..0ed8ed5b 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/block/entity/CritterCageBlockEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/block/entity/CritterCageBlockEntity.java @@ -10,6 +10,9 @@ import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; +import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.game.ClientGamePacketListener; +import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; @@ -18,6 +21,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.component.CustomData; import net.minecraft.world.level.Level; import org.jetbrains.annotations.Nullable; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; @@ -53,6 +57,10 @@ public class CritterCageBlockEntity extends BlockEntity { this.dataVersion++; this.clientDisplayEntity = null; this.setChanged(); + if (this.level != null) { + BlockState state = this.getBlockState(); + this.level.sendBlockUpdated(this.worldPosition, state, state, Block.UPDATE_CLIENTS); + } } public ItemStack toItemStack() { @@ -150,6 +158,16 @@ public class CritterCageBlockEntity extends BlockEntity { } } + @Override + public CompoundTag getUpdateTag(HolderLookup.Provider registries) { + return this.saveCustomOnly(registries); + } + + @Override + public Packet getUpdatePacket() { + return ClientboundBlockEntityDataPacket.create(this); + } + @Override protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { super.loadAdditional(tag, registries); diff --git a/common/src/main/java/com/craisinlord/antarchy/content/block/entity/PotentNyxiteBlockEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/block/entity/PotentNyxiteBlockEntity.java index 6c26f48f..fcfce0f4 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/block/entity/PotentNyxiteBlockEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/block/entity/PotentNyxiteBlockEntity.java @@ -380,7 +380,7 @@ public class PotentNyxiteBlockEntity extends BlockEntity { FluidState fluidState = level.getFluidState(cursor); BlockState blockState = level.getBlockState(cursor); - if (fluidState.isSource() && isHypnoticGasFluid(fluidState) && isGeyserPassableBlock(level, cursor)) { + if (isHypnoticGasFluid(fluidState) && isGeyserPassableBlock(level, cursor)) { cursor.move(direction); continue; } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/block/entity/SeashellBlockEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/block/entity/SeashellBlockEntity.java index 36bb3af5..773d9f01 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/block/entity/SeashellBlockEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/block/entity/SeashellBlockEntity.java @@ -113,6 +113,7 @@ public final class SeashellBlockEntity extends RandomizableContainerBlockEntity } public boolean hasAnyContents() { + this.generateLootIfNeeded(null); return this.items.stream().anyMatch(stack -> !stack.isEmpty()); } @@ -128,6 +129,9 @@ public final class SeashellBlockEntity extends RandomizableContainerBlockEntity this.redstonePowered = powered; boolean isOpen = this.isEffectivelyOpen(); if (wasOpen != isOpen) { + if (isOpen) { + this.generateLootIfNeeded(null); + } this.beginTransition(isOpen); } @@ -141,6 +145,7 @@ public final class SeashellBlockEntity extends RandomizableContainerBlockEntity } this.manuallyOpened = true; + this.generateLootIfNeeded(null); this.beginTransition(true); this.setChangedAndSync(); return true; @@ -249,7 +254,9 @@ public final class SeashellBlockEntity extends RandomizableContainerBlockEntity @Override protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { super.saveAdditional(tag, registries); - net.minecraft.world.ContainerHelper.saveAllItems(tag, this.items, registries); + if (!this.trySaveLootTable(tag)) { + net.minecraft.world.ContainerHelper.saveAllItems(tag, this.items, registries); + } tag.putBoolean("VisualOpen", this.visualOpen); tag.putBoolean("VisualInitialized", this.initializedVisualState); tag.putBoolean("ManuallyOpened", this.manuallyOpened); @@ -270,7 +277,8 @@ public final class SeashellBlockEntity extends RandomizableContainerBlockEntity @Override protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { super.loadAdditional(tag, registries); - if (tag.contains("Items")) { + this.items = NonNullList.withSize(this.getContainerSize(), ItemStack.EMPTY); + if (!this.tryLoadLootTable(tag) && tag.contains("Items")) { net.minecraft.world.ContainerHelper.loadAllItems(tag, this.items, registries); } this.visualOpen = tag.getBoolean("VisualOpen"); @@ -288,6 +296,12 @@ public final class SeashellBlockEntity extends RandomizableContainerBlockEntity } } + private void generateLootIfNeeded(@Nullable Player player) { + if (this.level instanceof ServerLevel) { + this.unpackLootTable(player); + } + } + private int getFirstEmptySlot() { for (int i = 0; i < this.items.size(); i++) { if (this.items.get(i).isEmpty()) { diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/CritterCageRenderer.java b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/CritterCageRenderer.java index f6bbf25e..176909e5 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/CritterCageRenderer.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/CritterCageRenderer.java @@ -29,7 +29,7 @@ public class CritterCageRenderer implements BlockEntityRenderer QUIRK_TICKS = SynchedEntityData.defineId(DorrieEntity.class, EntityDataSerializers.INT); - private static final int MAX_CHARGE_TICKS = 90; + private static final int MAX_CHARGE_TICKS = 22; private static final float WATER_RIDE_SPEED = 0.42F; private static final float LAND_BEACH_SPEED = 0.07F; private static final double ASCEND_SPEED = 0.06D; @@ -365,6 +365,9 @@ public class DorrieEntity extends Animal implements GeoEntity { if (wasInAir && !inAirNow && isLeaping) { isLeaping = false; landAnimTicks = 12; + if (this.isInWater()) { + this.playSound(SoundEvents.DOLPHIN_SPLASH, 1.0F, 0.8F + this.random.nextFloat() * 0.4F); + } } wasInAir = inAirNow; } @@ -398,8 +401,10 @@ public class DorrieEntity extends Animal implements GeoEntity { Vec3 riddenInput = this.getRiddenInput(rider, travelVector); this.setSpeed(this.getRiddenSpeed(rider)); - if (this.isLeaping) { - super.travel(travelVector); + if (!this.isInWater() && !this.isInLava() && !this.onGround()) { + Vec3 mov = this.getDeltaMovement(); + this.setDeltaMovement(mov.x * 0.91D, mov.y - 0.08D, mov.z * 0.91D); + this.move(net.minecraft.world.entity.MoverType.SELF, this.getDeltaMovement()); return; } @@ -428,18 +433,35 @@ public class DorrieEntity extends Animal implements GeoEntity { super.travel(travelVector); } + public void applyJumpImpulseClient() { + float power = this.getJumpCharge() / 100f; + if (power > 0.05f) { + Vec3 look = this.getLookAngle(); + Vec3 flatLook = new Vec3(look.x, 0.0D, look.z).normalize(); + Vec3 current = this.getDeltaMovement(); + double forwardAdd = 0.15D + power * 0.45D; + double vertical = 0.55D + power * 0.80D; + this.setDeltaMovement( + current.x + flatLook.x * forwardAdd, + vertical, + current.z + flatLook.z * forwardAdd + ); + } + } + public void releaseJump() { if (!this.level().isClientSide && isCharging) { float power = chargeTicks / (float) MAX_CHARGE_TICKS; if (power > 0.05F) { Vec3 look = this.getLookAngle(); + Vec3 flatLook = new Vec3(look.x, 0.0D, look.z).normalize(); Vec3 current = this.getDeltaMovement(); - double forwardAdd = 0.18D + power * 0.42D; - double vertical = 0.85D + power * 1.35D; + double forwardAdd = 0.15D + power * 0.45D; + double vertical = 0.55D + power * 0.80D; this.setDeltaMovement( - current.x + look.x * forwardAdd, - current.y + vertical, - current.z + look.z * forwardAdd + current.x + flatLook.x * forwardAdd, + vertical, + current.z + flatLook.z * forwardAdd ); this.hasImpulse = true; isLeaping = true; diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/nightmare/NightmareEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/nightmare/NightmareEntity.java index 93ffbfed..b30b012b 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/nightmare/NightmareEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/nightmare/NightmareEntity.java @@ -297,6 +297,19 @@ public class NightmareEntity extends Monster implements GeoEntity { public void lavaHurt() { } + @Override + public boolean isInvulnerableTo(DamageSource source) { + return source.is(net.minecraft.world.damagesource.DamageTypes.DROWN) || super.isInvulnerableTo(source); + } + + @Override + public boolean canBeAffected(MobEffectInstance effectInstance) { + if (effectInstance.getEffect() == MobEffects.WITHER) { + return false; + } + return super.canBeAffected(effectInstance); + } + @Override protected void checkFallDamage(double y, boolean onGround, net.minecraft.world.level.block.state.BlockState state, BlockPos pos) { } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/item/BigBerthaItem.java b/common/src/main/java/com/craisinlord/antarchy/content/item/BigBerthaItem.java index e280010f..7a4cd0c2 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/item/BigBerthaItem.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/item/BigBerthaItem.java @@ -321,6 +321,7 @@ public class BigBerthaItem extends SwordItem implements GeoItem { target.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, AntarchySettings.bigBerthaKrakenSlowTicks(), 1)); level.sendParticles(ParticleTypes.SPLASH, target.getX(), target.getY(0.7D), target.getZ(), 16, 0.35D, 0.3D, 0.35D, 0.08D); level.sendParticles(ParticleTypes.ELECTRIC_SPARK, target.getX(), target.getY(0.7D), target.getZ(), 10, 0.25D, 0.25D, 0.25D, 0.02D); + com.craisinlord.antarchy.content.entity.kraken.TentacleEntity.spawnAt(level, target.position(), attacker); } private void cycleMode(Level level, Player player, ItemStack stack) { 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 86524980..87ef7512 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 @@ -1,10 +1,10 @@ package com.craisinlord.antarchy.content.worldgen.elythia; import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.AntarchyTags; import com.craisinlord.antarchy.content.block.GiantLilyPadBlock; import com.mojang.serialization.Codec; import net.minecraft.core.BlockPos; -import net.minecraft.tags.FluidTags; import net.minecraft.util.RandomSource; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Block; @@ -31,7 +31,7 @@ public final class GiantLilyPadPatchFeature extends Feature { return state.isFaceSturdy(level, pos, Direction.UP); } + protected void setBlock(WorldGenLevel level, BlockPos pos, BlockState state) { + if (canWriteAt(level, pos)) { + setBlock((LevelWriter) level, pos, state); + } + } + + protected static boolean canWriteAt(WorldGenLevel level, BlockPos pos) { + return !(level instanceof WorldGenRegion region) || region.ensureCanWrite(pos); + } + protected static boolean canReplace(WorldGenLevel level, BlockPos pos) { BlockState state = level.getBlockState(pos); return state.isAir() || state.canBeReplaced() || state.getBlock() instanceof LeavesBlock; diff --git a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/ocean/SeashellFeature.java b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/ocean/SeashellFeature.java index e0a83d83..43a003bf 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/ocean/SeashellFeature.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/ocean/SeashellFeature.java @@ -56,6 +56,7 @@ public final class SeashellFeature extends Feature { level.setBlock(shellPos, state, 2); if (level.getBlockEntity(shellPos) instanceof SeashellBlockEntity seashell) { seashell.setLootTable(LOOT_TABLE, random.nextLong()); + seashell.setChanged(); } placedAny = true; } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/ocean/StarCoralPatchFeature.java b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/ocean/StarCoralPatchFeature.java index 36845b66..f405ee72 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/ocean/StarCoralPatchFeature.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/ocean/StarCoralPatchFeature.java @@ -2,7 +2,11 @@ package com.craisinlord.antarchy.content.worldgen.ocean; import com.craisinlord.antarchy.content.AntarchyObjects; import com.mojang.serialization.Codec; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; import net.minecraft.tags.FluidTags; import net.minecraft.util.RandomSource; import net.minecraft.world.level.WorldGenLevel; @@ -34,41 +38,81 @@ public final class StarCoralPatchFeature extends Feature 0; } + + private void growCoralStructure(WorldGenLevel level, RandomSource random, BlockPos basePos, Block solidBlock, Block plantBlock, Block fanBlock) { + BlockPos pos = basePos; + int trunkHeight = 1 + random.nextInt(3); + for (int i = 0; i < trunkHeight; i++) { + if (!tryPlaceSolid(level, pos, solidBlock)) { + return; + } + pos = pos.above(); + } + + List directions = new ArrayList<>(List.of(Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST)); + Collections.shuffle(directions, new java.util.Random(random.nextLong())); + + int branchCount = Math.min(directions.size(), 2 + random.nextInt(3)); + for (int b = 0; b < branchCount; b++) { + Direction direction = directions.get(b); + BlockPos branchPos = pos; + int branchLength = 2 + random.nextInt(4); + boolean grew = false; + for (int step = 0; step < branchLength; step++) { + branchPos = branchPos.relative(direction); + if (step > 0 && random.nextInt(3) == 0) { + branchPos = branchPos.above(); + } + if (!tryPlaceSolid(level, branchPos, solidBlock)) { + break; + } + grew = true; + } + + if (grew) { + BlockState tip = random.nextBoolean() ? plantBlock.defaultBlockState() : fanBlock.defaultBlockState(); + tryPlaceState(level, branchPos.above(), tip); + } + } + } + + private boolean tryPlaceSolid(WorldGenLevel level, BlockPos pos, Block block) { + return tryPlaceState(level, pos, block.defaultBlockState()); + } + + private boolean tryPlaceState(WorldGenLevel level, BlockPos pos, BlockState state) { + if (!level.getFluidState(pos).is(FluidTags.WATER) || !level.getBlockState(pos).canBeReplaced()) { + return false; + } + + level.setBlock(pos, state, 2); + return true; + } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/BedBugNestFeature.java b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/BedBugNestFeature.java index fe231f4a..26794162 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/BedBugNestFeature.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/BedBugNestFeature.java @@ -185,7 +185,9 @@ public final class BedBugNestFeature extends Feature { BlockState headState = level.getBlockState(mutable.above()); BlockState floorState = level.getBlockState(mutable.below()); if (feetState.canBeReplaced() + && feetState.getFluidState().isEmpty() && headState.canBeReplaced() + && headState.getFluidState().isEmpty() && floorState.blocksMotion() && floorState.isFaceSturdy(level, mutable.below(), Direction.UP) && floorState.getFluidState().isEmpty()) { @@ -205,6 +207,6 @@ public final class BedBugNestFeature extends Feature { } private static boolean isOpen(BlockState state) { - return state.isAir() || state.canBeReplaced() || !state.blocksMotion(); + return state.getFluidState().isEmpty() && (state.isAir() || state.canBeReplaced() || !state.blocksMotion()); } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/BedBugSurfaceClusterFeature.java b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/BedBugSurfaceClusterFeature.java index c8590bd4..e65207c8 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/BedBugSurfaceClusterFeature.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/BedBugSurfaceClusterFeature.java @@ -72,7 +72,9 @@ public final class BedBugSurfaceClusterFeature extends Featurezf=e+N|oyX5! z58>XUSHlAP<%@T%JvBE!gxLqr&#j$keiP%9adUDuu5>RqR(}NBrhL8LbO7IY_o^jo z?MUujnh3DZ=-FfMXeagu2hs0u#PP`>uJ@+mXt0~nix;|ScRqf4JC>g2fkfA}ot3C! z_RNjDO?33vxk!F|Ss2R^7T&)}lK$b|D64tu{BUNz*^NfhkwJyE#!Uha#X5sv6;s70 zr$(emcfOW@QGbxQyuFkrV)HW=|9_3G{$_#=N#M$KGA}0}QS2)%CyJ@#p7Dnz;fGTI p00960;cI4L00006NkloH~Fja4E5K@s?1*@Rqz&a5}f^*-% z7xM*t0-Y<4#EEfK1yRsgL<^GCpT}$k^5`(Lo2O2v-@JVNWFsTx1Bt2oi~Xq0{EJ&xO7{5Q@FWmhCYw{BJ-fvCp#R8)n?tYR&>B=B9Z zZw;~~!E3Zd4HEl*{qadSKD>LLPoD%LNJs|zQ?d8$eQSVbFH!fNeSDS8`g#Hmd79Z8 zH38C{@ztmb{ixJHPvBYHG|8Y*6WI!pTg8vcGm1e^(3Oj{yUCzg0ce(ow%i92arh4a o0RR7Zls(h{000I_L_t&o0CHjFmvbYdAOHXW07*qoM6N<$f_E(LqW}N^ diff --git a/common/src/main/resources/assets/antarchy/textures/block/nyxite_spike/nyxite_spike_down_frustum.png b/common/src/main/resources/assets/antarchy/textures/block/nyxite_spike/nyxite_spike_down_frustum.png index 0215984034df8c03f863a48e16a4a88f7b4eb218..4872f6ca0a4df14d35d102e50514fce3524673dc 100644 GIT binary patch delta 397 zcmV;80doGZ1E&L!B!65KAkt|5F5b8IY9<_?Klh$<&-3U)n0)pR+N1XAWyJB(`A7}r zT;19^jAs*CC<_zPYjrz9o$xXE4AsS2c?++2h={O-a4gq=i zJqSRA8~wt;)%970h^E(x$r1H8nyvUcG7)D`2q?-TNJJ1DOZ5P9_tqNgLPRE@LqtUI zx~K-@tkjmJ;r6Cek<19#x|i>t@0>@dfuKer%QJzr7zfF2@2jtjOO%w!>P*1$l4X%y zw(UcXFpW&0bANFX=OUCYA`?sY%P!r?1T=`4R}RR=*xlRIhkIdJDGrnrHM&|6ZJg& r00030|H_!6UjP6A21!IgR09BCfvlqcku(ed0000-B!6W|L_t(|0esRsP6AOF1>lQ?_<$iM6oz19W303?R>lSB3fzE8 zas#eF7ho){v@+HjVnJd6U)bP$H{5YXM3dwHxc8iU{(o2q)4$!Fqsj5%X~e!_v>qj7~w|~Op%Tq*gnkU5a5RgB= zJ^~QoM!#@yeREzTqUm*Fazy=3)`_np6LAKGfTApdLtFZ7ol`1%gMx&{jy7UDgqir%qs_EV{ET)g~lH)W&|ve10q@e zx=1L+e|LavW&~uB_1>^2Ek0c=rvGLf=zEP&BI?aUMZk~9%SJ%(DWQ?i&dKiux>FI* zurx7=aH5`vZvX%Q|NmjiPyqk{00v1!K~w_(u>Pr4a1V~z^#A|>07*qoM6N<$g3ye& A=l}o! diff --git a/common/src/main/resources/assets/antarchy/textures/block/nyxite_spike/nyxite_spike_down_middle.png b/common/src/main/resources/assets/antarchy/textures/block/nyxite_spike/nyxite_spike_down_middle.png index 3a143dfc0c0b7cc4f4eb757e9b1bca3b36439ccb..2fe9478992a8d8c9aa38456e74eabcff5eb6ee40 100644 GIT binary patch delta 438 zcmV;n0ZIPR1JDDIB!7iTL_t(|0c6uXFGNug2H->IBSAzYC=`MyBtk=?(P>mPTAlb0 z;y=iCS`EEUBcap@qC~RUY>+I<;PBwI3W&G1 z539h+=6iCXEkGX8Y0l%+}w}Z+|O=ND=UW2qK7I>QAZp zT~EmC^BZYyav=>440}}YPe7{(6C>jZkb;aM=X4_XH|M$IB7m$&%h7?@sdvw}+!XmB zOBMmd#i^xyvXc~pBH$ZodSXUcPz20hvTcV*+vFXv$l8Bvyp{#Z7Xd-->?qI02m7!C zW7x;??5cDk)PHjeb^wp>4+*r4JT^R<$HI)R`0{M-08wBMz*p>4B4Qxw2Ka$2AV5R{ zzFfd9AR9^h7I}SD%j0H&2!cR_j})z1qHc81U7rOMy9ES3*aIQmSRx^(Lo85T5fA_o zWbcHS2un!o{BDsR0R&`1iUa278-WcJ0iP~%JYb1HkT1PNPA3wt^B({J0RR6dM|}wZ g000I_L_t&o0ItX2F94lJ+k z*7J*7HQS@5B5-keJQPXx?W@D2YIHi=kM3u-{(gSHQ-~A+4}XXtg81qEDZO{!67t&Y zN}8+Y(%8tjM+N@`w2Cl2F_i!*$QW`?Cvty#mOCy2$cnTa9f+NJ^L)omkq@$D5kOp+ zna?LXNiiq_zLDBfZDBzXFn`H54w1&>9k9sSf9brG1-zz<{r0U{Fc002ovPDHLkV1g13$cF#` diff --git a/common/src/main/resources/assets/antarchy/textures/block/nyxite_spike/nyxite_spike_down_tip.png b/common/src/main/resources/assets/antarchy/textures/block/nyxite_spike/nyxite_spike_down_tip.png index 59c33d41c87007625efb6941158c28226274b1bd..e540bc194c0fab28cfe24287dc0733ae1fa112dd 100644 GIT binary patch delta 329 zcmV-P0k;0)0^|aaB!3x6L_t(|0mP9pYl1NlhR<$og|;h^QbsMxJ2AFD8SNAH3fsxw|KKxf`**e6FleBAHi4 zvEP(J-|?)n!sQGwoDKv`f}M1PW=A0o2ctaKu4y>R>j z0FqCG-=Z<;jyuxoH+AaWZCHBkT1amWzW|`#C?1`(F`13zDf}oTB0CvI0Kh?|S_mPk z`FsBtED-v~Z|e*|Kqg&MrWIqU0G}-;V7(|No-%TB85}00v1! bK~w_(MmSv|VHxY-00000NkvXXu0mjfrGAr2 delta 327 zcmV-N0l5C;0^$OYB!3r4L_t(|0mP9zZUQk7hKCd(53(pyiU^U0L`qU6Rg@|UJ)D3G za3n6k2{-_Vk_I|Jq5_2I5bsB0_$-WAV;5Ac^zYc7na?wxE3v-pe_o;QuZ%KErhXNA z`$#J*TuuPJQD0CHjqBK#$E2j5UiEslS&9t_0l1MwlHzv{GJjjobs}rMaQs35l8=KE zK|-3tw$!@~oqBV9E1gz3qBr|r2vDsR4^G+`Oa>B*-V2GyPKFTza8RlgA}H9s!RPb4 zU}HN7{o}WF0wCb;C#Os+#!>-3TTTE$v|ucc=_((;6Tq!ZV!W8@N%)ez0Nwy6ASPkY z9-oo30-W5A1wexJ$qP6h>Deuq+h_%uy~}zla0R>0E)UoO00960+w~5!00006NkleT_I1zCH?>a002ovPDHLkV1n-qi9rAW diff --git a/common/src/main/resources/assets/antarchy/textures/block/nyxite_spike/nyxite_spike_down_tip_merge.png b/common/src/main/resources/assets/antarchy/textures/block/nyxite_spike/nyxite_spike_down_tip_merge.png index 2b8be68f96b65d242449759198671879a540c121..9212ef7718aeebcd87cfd837d35cdac443784406 100644 GIT binary patch delta 358 zcmV-s0h#{(0)YdNB!4zZL_t(|0fdr0PXa*@h6g*9#6pdYg@q9dV`8*{#M;hE8(TZ# ze=zZp;3x=?Ldb4nDDXaXq2$Yr9DNz#*ktD0Ui@+uQR6FCA+ zsVfFUeq zH}%%9Hy@QN((TksezJKL06%}9c@kr1*p~TnCK#y?&8!swEPQ=`ln}eAo?l7%@R;Qs z;wM|L9RNAL0!KlB6hbbP3DBa^bmBvfVQrtJ3BZW5aVGR3W{v{1nftaM1&~16gYfc@ zQ<+B~iCIUQ$Xr!s9?AqfJ-j(Bq!$`nqY0o8BbSLrj>df%WdHdkBd;<6G?63FL_T56 z48#PGKtMP@aZD=!00960l}iCI00006NklTAcd0RquQ zN8f-P6WuItesU=<(b*jo1BJR7TgRA4lvfP6`>t=H*82UsWFqQd3SwuR2oJ=$>NgNc z0>!!j?ic9&YMkvRc43ODBq8A8Ou)q3Escng=nmB89W)SfmT=)5QLa-Y50U!=00960 lcGQn)00006NklF7!bZ2JqP}UN6>PBwL7}K!OU5Qs}t?H{izH zfnK6iQ6WJ?M6rqZ{%F?xCeCDqc=kMV<~+|ib9US5=WkM=k7;~lEb_m2Gc=yu!^`Ju`uKXUb=BbH^q_U~aDSVi-VP8ZA^!hwxZYF) z8AT$Kv-^v5_jKo2;&tz;cD_76Y?X`rQ4PG$6J{o+6D&_ICSW?%Or^oDe|8Y!Y*_yv z-<}I+>g}DO(X=+Zn!01%lDABxOkmUyNa94nMN^4QUZ^G7hjTGNbRq;|1@?dwsR3s( zPz=0Lf{92V2Y=2)vDn^oPbzitlaOL?biCivSt3k43vcqsrXe)C8VmKcR#B!68=L_t(|0d$kUN&`UF)XJ_}8t@6tro^#3F?Nfer zodr2Ky9v4yZV8|}?1dQV`r4NDM}x2?9gO+l0PNTsckHMA9e>=+zy3dLG9B6KO3gms zUzUO+8XSOic0AlZvc`Jd&^wJ?mKTZxyuLjqI{-P}JGIT)hS85I$pLTz(fOrS4gQnM z`y4Gv09kPhB#=xG6o}pGHf5ID0Z5hy2y+@r@?Yl{Gijs)5E!D0L35f)GB;5yCw~Xf z`Po(FQwa^^8h^>IHqrqI07B;xY=rsw{)KU+Jf;|u0OCGSzK#M28y!O&fS0HQH05)C z=7^3J_oD=m3>_huWagY72v3@8R5DfIF98@NA=-&G$_An)vWDopZ~z<#N!$d2jl_@` sHUj_v|Nm8Sp)3FZ00v1!K~w_(Kl`|1C>uL$00000Ne4wvM6N<$f+Jq3Y5)KL delta 397 zcmV;80doGR1E&L!B!65P>fs1WpU0xrPC zI0q6XC!hctP^y(s5?-NM{8{-|_F9QDJ08!>XV1*;s&#(X7q^Y%{Pdz=lm<~Nk?Px$N-!;olorT<2|}rzt%7I`+xUi>uVeK{B*w(9myjD zu+NFR+d~^{_6=S2E4G(P26%Y9D^371s`kwFwv2vsNf`hq5Y;cO+u+|nyll{t0>A`F zAekO05WAk$GFzPiNR|f(YZ^-Ocsj-`8kqqIj8WmCwGU$?nMs80;-3LjKd0*Y+{A?j zGDfnyjm!W90DqzL2sXm{Xy?EfDKAqBDFA67e7L?!0fdcCAsK)-Q3+_SPyMVBm6i6R z1&|CKA(&*=F4PZ%SDG;@nOop*0T?79I*C0W%5VXqCbEa7$~wz}D+m9?F2uPhb7@yXs$>$4s4yv|HaCz>9c&Hnt%LVp?^8BgCoofMD)$QjiS z$iv%xF09=04T$0rtc-sECoat`Cy;7C0b1K%&Gg!OVP@T491SrFz`TkD2}H3%dhdMX z_KncEKF!7QGQb6KLJHY{KXMhB!C?vKR@j<}i9*h!@3^+eK%q=OT zC{!H27>KoB8Gj%ELQW&eip>rrCswvDtOdaFB3VOPHuqDrk**#u)7|q;Y^Au!0`L^d zZe_%20da|*K($qh*#)3o&t4%Jfh2*jb>nRm3l)I*1%V{9sow`Od%VW>3xES6Ne84O z@j-c=1M&yp9-K~!zzAsY675p~C>96>#0X;Mk4v=1e<00960l0nX000006Nkl`Fcg75*ktHs6-|7T!9;KW9~pN zQHhEQ2^u1bO~kj=tocp$OxD`$vvcOmdHyqJ-gie+|FgBR-`m?hs4@?&ukH3|ae1>x zE2}%bzAaV2$=Tt^%ja9<%Q!nVlc*h^E%W)A`7|*$nZAF%Qhz`ypj6}^ko)I{V$9R} z4G42h=HMT|j!Sck2_&y4K;vuoC3W69!lIk2;}Jmx=$BcNK$scnz57v)uZ4%Z(_&Uv z04~TR#3%*?5-+q1sTrRx{SVd`fC9TPl30$+LBQJnWojiL1#o_GRF1?*VPuZE9EfpH z1t0-Jb|b~idVdE}6QkHEj1^$wMKXpQxygM$zCNbQr|Wdrxs9b17g+(GLS4;4?AGSK zn+$P@oB!BBkL_t(|0o;<$3IS0R#t%Dx3Q5Wn$VMK(hEn!yZ0+VHV5{wdPZEzMWjP;d|HK^t0RR8WPVW2w h000I_L_t&o02JjRYSeJxV^aVC002ovPDHLkV1h{XfC>Nr delta 252 zcmVnP4V8bWjY&1J_1mPl#5EW{e26iLO)S5@w9|Nj4g~Og9r|= zts)TSLA?OzAJO}Iw-MseISC3DGuHsmSBLdnJkJ`r-Y&jOZD;^?QxsB!4SOL_t(|0hE(HYXU(KhR1YCgd~UvNy>mBO$ek-lRzL%s-#Jq zPW%tze-Jxc8?9{YYy@o-!9r9ltOOBJ!H@Ff5k@?nMLc+KZ+B;&`PjWPaXhjAl&5C^x}tiN1cHo_|63DkP7$PZGL}$X)o} z2{ALsZ*nh9W&5_Fu*r_!kvwoukpP5=f#=tHBNHJ!0B0W^_KoQcl2OD2H2 z5ePN@QH~{GN#j!W+i1uK)nv=|dd;o18R$LthaRDeF7KQ~iA`w$<1p9V;K&=Nqq-y4GQ@&VW0`UTnB!4DJL_t(|0hE)wY63wNhL0&?E?x*&iAfPsq>E`ns*v=_6XXSa zBwxTM&|a|;E3H&e8$~Px@qTGmKjDb0XAl?uot>F;zH^z`D{(x3-ziU(eEanrX5s|k zFq%)K)^A9qnhP+uWCFfE{ym(>tC56)_mX)2ygY;GU05C;5`Pj2MkN-Gi3?(8P%LNm zDFd=n*EJKsCMD=NUCpH1F72VLtDFD~fY66#J#RW=V*+R*n>Z7lZo5d*hyH50>i%$(+as(B@&qC8B=PS7)mX zAAqQ&4L}9x{ZA>mn*ut9_yGJgKsv*&06P5M5sa4)z&;TX&dgDJ&|;9A>svX#R2u*Q o0RR6~m?6mk000I_L_t&o01r5ZeTNkNTmS$707*qoM6N<$f`deniU0rr diff --git a/common/src/main/resources/assets/antarchy/textures/entity/glimmer/apple_cow_glimmer.png b/common/src/main/resources/assets/antarchy/textures/entity/glimmer/apple_cow_glimmer.png index 8507daba4647be60e1951d38b30c19a923675d70..eaf426f363cc798b43a7c769ad305fea1f400e8d 100644 GIT binary patch delta 3916 zcmV-S53}%vAp0MXBmuCIC0l=sZo4Zj?U>&~|HC!Up68r7GiPQ`o73dK*Xw<~-S=~! zXU+j^9iC-d7)9 z-zo+NaM_WUZmM~_e{DmK?JK9xZ0PU-rRLFn-+7>gC+{|X?MwG;8u)+lC!cKatJhsI znuNgt)IuLS{&XikclO&2cZz|34C2hc9cvW>t_xQmIe4)B!O72U#Qo$q?%d!fFw^r(1@h$xb=&&xKcB-YN#%c18V5hktk@?mI7hLo<{OMUR;|fWP_5BhB&8 z?rWT`7iW`r7-`juRGpdNgPkj3G>ySIe{ZaYcA@o7D(@m1IE_qN#ADxE50c5AM z*bpu_bf`W3wd0*ilR>9={vW#M*+C+XcyajNS6tGpd)u`yYwi~y$6kGH1R1S%Ysi}R z2%zMdk3epEQ?)Z>)3g|V9DdfNQETWR z!)N0I^pLgqswXE#j=iJramX3sJ6sQ9KMF>zQG$pzgarNrMCh6wu7<7j;z9f7F`fM8lA@NJh|%0AYQ#>GgOaGnw5)hY$}?ZqYF0S z<~Lv0#b@uB@=rfjF>MrXog8Sj<8z_n!H#i&76>*eh~{tmt>0+6^EMiU^OM zK6$FW^~ZmItlf9_-5v1s75z1ADGDEZ)#2%ZPmsp#JY8hGHE%p{VVeXtKJFKE9*qC& z`>q|q`>#1Vf}0OsG6MXMUis?L&%EIWMz{RpyF1{2=)lW5Klb?HC5IHPD6i0tHF$x7 z6vqyR0Q7br&CZj>1ke2G@xJ!C2Oetw@c0w$z~z7YJJ2Prc-}R<&w%$3Z;pVc!-G7q z=>$+L5*l!OPl~B2s5UZGUFAJCE(}kZzV^>QCmB)m?xG2z*twG7&PIHg&3B(H@dd>h88>3+1w?Y+A{pxxJR$E`L zHoSWSRdjfAAN`zFwzm2k3VY3c&HyY>IN;&4fA!Z5@LPrTl0jWllUIG^)3AcU>6vsA z>KgWZ6w`a`@(36N(6LpF-I{sc@r96!l(Jj zwP^7t#pSC(G_TQVp04ub8e`K5U;s{_Sd+!m2MVF*wmpOJjjn$RD1M> zU`Ubsv^xO`HBkZZaiUWMx$5zbb&6#NdbC1J5UcNh&H6K&ez+k+-%mVs3^n2;_=Jgl zQXK}7p;db~fFx9;WE`R+2Xuj^9It9ig6PO%LUd?i_|nohxO6b<8(cnWLo0u(4lnOC zd$nzRA)=^iz(*HKXVRL-+ZD7z0afnvH5Qw1ZBfX#x%lcAKCwgj;j4XG^Zdc%jzV_= zG(||DP`V&G)KRmm_}Ed!)B>v9_vK$P>8tCZH8n?KR9|_6*dz1Hy}~w5^PwCV$Pl^e z@QPr^2Ye-p%!f=LU8S1#2%vxT(;k5uL(HJ+#h{nhF0)n8d2E3%j34^M@3-KhzxbmT zOw%2__x=Wa1gVhF1sRa5z0c>^yAM1L8AjiaELI=%0h>3=`l1w@$JQrFA>0=uQG_JnQjJLF7ra z8$b-c_MY|?c>ESgHSg~Twj0xTnD2e~iS?`h?#mrse(9wR#CywSm$bip;NfNvhxhMq zXV08z{42Tv_^KOn#BC$%lWf8vtgnv8X?s$`Sv` ztFLGpJ$2$lyK&!o)4ZnX@cQEmc<>%G#tgyb2-V(~t8F{{gExP0w4HTXlZ#HX8Z`(< zoy>o)%|aPW7`f*v5ROv`JX%eRM@%c z-~euaden|xc%XggUmj^6efXK~ueZp+Hg~4y7uYd)UfeOc>{EZfe(&4fGum#T!2u-T z`@a8Z$NDMD4NC~cpKm<-#0BlD&;H4_U!MmDkS1&654?Z*d%8)7Znt@Nh{q}~FWZfi zb^mvE^WQZ`zZE(-fb6_WPs9EOK)}0hxV#$zekZu+uKU{uUbTNGA-c8uF8*dmxBJiF z0Q~VoPQiAA&sz8I51win^eo>Y`(y9;sS(6JFP%7mo9=mZ9qhc%%YINc=nXP8@(^4nxVxx|9R(Z8O;MG>E5z z=oUejasa+<4$@>~G`dC5aedysSNC5ms(li_h$4T^XN>Lyr0MV2|8xTd(FKtwQMwm0 zx&dffvk$)YXGfqRIy4~jsdD%iG97D5(;7@8RYyN0(`U^Km5w#2ctb#;>gb2$=&b=i zmV&zk`gaB$@R^25K6G*{8e{LzM19ey{k&;e*p@v{o$!71-@w(uMy1#WQZ-kbc@77 z2cR$wpwlqTN5e2}{UU7(9YFn9JpAF0u0wx53h|KQ<7*gr)Gqs^h|IV0(}9e~2@7^-LulL1f1Mn)mLoqx$|zxDqu)5FR4{_;Y; zffj2B3mt$ayc}s3uVFIa>Db74Md4A1ZW_tz}nig4J7w`+66bYmlQ8Co?knfB4#D)+p|s#vBVTx4!Pu%TMfafll$9=V~1LO zF|uB4IyOH1>1JW-04zRpW?!p?(WQSdyu$4ykmrFlAcl3C6&r5|h9S2a=up1=G!680 zcwi&*Wt)YW129QJ6_#C*payo_9KWjD3U7_I)mQAAOKvs92M;ele6|67mGMBo70et! zf+);{9kYCf$3~v^+{dp^t+BT1$#TdgXSJme!EBvF~ycctmyH9(*PRe zA74Bj8^nJWojCxz01}w6XS83K7n)g#hV1>dV#^_yoN~jY^%`|z_~9q{%+k#qfB=dD zg^^Lu8=V3iWBTpDS~0{DQ*3{6P&y#@VJI#;ADevebbY^B^3(w&prd8Vc11wcGfPKa z1jG_kZ1GS!xyfn)je@4x*-)Tk1HNptFm(VH3+h73?kG~S*w95l9&yB$!wHa6?%3Gr zofx3^aY>J73+T3jsRQs_r64;ZphTcJMbP=V9o-JHRxB~a2C?Kc3^jkKg|5OHvQG`X zVF2A$F?9frlA<69Q0OO0BU??(ufIl2u_3(NpcaEM5I4VPUyKSmHa>i-ZHS*b02h?c zYVZZ+EDR+X($9*=E;pzJd_{)Ru~*Qs#b+pQ)lVHjb$qe%s{y=NcXq3NtxmvJC-q|W zTly2Q+k;;XV7Di{?D2nBCt%rkXt(QIoq*k*@Uq8Woq%QEq1~=;bpm#K!pk0ibpn=s zhjzQZ)d|?`2`_v6)d^U(9op-9RwrPuC%$a?RwrQDc4V*XS)G8rp7^rmTb+Pq+mXGl zXLSPhdg9BLZ*>BeZAbRHp4AE1>xnO0zSRjh-#c=?^Z!2p001Qa{|MOjv;Y7A21!Ig aR09A)Pz|-^X6z;a0000X)_bQ;n@;SD47me5b^q$Ba@5+43+IvSnwG z7$qV5G7Q-@naMUW%+GV)_s{pd|K8_wuKT{uef@FmDI_SSDRVVGIfDQMLYf3L=xH;S zoDPG&+@1PQg~T0uaT$&Z^UT&tU^6*Zga7 z!l&^3ds%(dDl8ppRz;YxXAfj3T+5S;=dPdcerz-hn{KUDqHGrp1{g-Ma91{#$?K;5 zAJgy2v~DFd849skzz?Dkt2bCv*8U?66jVTz1FFRG&hJqZO*-4mz;_l~2{kEPqeUe| zIoR02{Ct4n9G0D37tTn3*#M4Maz9BQ!LDttyzseQbyb)hd9aXCo5EEm@64H)RhUWI z+ulHq3f{CF@Vg~UQy_0TMY5~+WJqhB^k$XU@+8jeKkNwkl-r)}50>8(H zaiT}1&zD|4IW%BP@`(VAubeY{v>_}XKGEMSf>`RJ<^T zc2Ud0HwCb@DU-zKMF$Sa7z|z8E*%=<<@oYltrUS8%zkMGNzD zNV@j7IsL6K!J5C=S3pW|)FU|ry4nznRy<(Afp;3r{u%yE-q_8`&KPBsAng?Q0f*WScb{5Z)=HitswX)C@R zS}B#h5AFG1|3P5aMJ6~i(T)&ywx;Lg?JlnhH$k*UO0MQJq3*=C6aBHpbaD;}S~%j8 zB2qj)rIva2$AxUaw9tCK27YOLywZu;k|1j zuVz#pq!Raduk-w9-7P4wWlWb42(+$v$y5+0J)`yRra<}LlL7nI-EYDy1rx^8Z$wjU z%x5KQ^)Kol{Df}gD|S}KD}h?5w$&T{I_-ME{pNDaA{jE#3fuKCiC8%RgrkzxbMFbQ z>(NXn9)YK((|v>Z-=zw=y2lbzFZV4-Vxs07YxCSS(7S&HfQtRR zVk6_0_NJ>3GU_;S5VV;&5`~!5=)`?Gt6~zIO1*&hrYmPBLRSh)Pz{B)3+oiq01%-< z<=mV0?#FFjY5jytxm!TgEOcOO_^HK$&a9Ru|E7PiQ&rvI)M@k)=0|+49;mZR)q@rL z=Eytb_42l$wVvU`d*S&h!j8WR^Qym$xB-?v)(`T#GLeV7REI{&z&atx0CHX#&$7HrU7ASOO%!K31ZM#bD6-0#BUl zU|t31oi6(Z4H3A>hJTWQ7Si6amaZhzH9uL>Ums*Xdp=s98_5(?at6c^ziRepZuM+Nr&+b2g;$F=)FC?_`nqXGf)FST7~R?6#o3 zl}&q(Q*XQ5s9UbaGC1GK5+`+mR|H9aPQ)Cycb-$dGRVbg+?X97Zwq98_BTDBzd`nq zx?8V0{u9n0bH2K^>n1)`0Z(_~_wLV6P{EVp8PYOIANqfT#<`Ef+CoKxMd#CxSz&zbZWO87qXz;H@N@+LMrgrs+|b8r3L z9D}w)?S7`OY9|SnO*C;S7o0ltLsb5JzJUHhj4R@}mF)?!*Op=(8867~Me&|9wBOFM zUe3`#Oe|@CF>6lLe}+83PG*-gwq09i<5E*d0nLJ?fK({yI*8KoycBfl=7wccSn=dlf>^UM?GzP1MUpj>+ znC(s~NNMoT2tJ5DI*%x_o|Qa7%aBrNq%VT!t$(-x>)dr_&)<2){h93u6K#=Sv9igMAq z3XKf(gOdbP>ckLNOeIY!2K6xxpZFXf;LfJQ+{}e!AM)nv1a7 zxdiDS3IxZ+^#LvY)|?)#Sagto{(!~>2qaB$x@2z#M5&d?^351P|2B)5!ZF`#17JgNHti}E8UEx!=&W6zW`!T4v_ACiXXwHG{a!5@ar@@Rd}vB^2FkK69CD9(Cp>OOeLMV7T3>~cc%<&0CVS*nZaNhV zp%E4C@~dc3$=j{#X2bfzh`<}X#Af=E4GwRua|dKJwZ$+Vi_Oc}&kyMz)jEY_{qC8F zHUh2<3(B1EY_gk4=8pL4qk2qMa6Dke)WJy>3aK8^8id~g_1INB_c%D-nZV~sgw!s- zu;`O+>jVy%TPZh{J@pfj6yRXTEb5!Cac!jFq|+-sT<9mS)$f;59lnPet>nt#!n4~6 zBnz0lRh?iX6hfO^RJ6CTDMWzfN0+E^Ks2ZG^#qjJqdM2{_dpI#f8TU3FC<^FQSrC( ze|FF|Mj-p(?E@pu9G|`w9_$Zy73QFe{p(Gmd295SAr$N`BYux_tWHB z3}}=q5gF#3Z~5HtLG90Y2f|Ii(spb=Iqc%Ewa(bN0)v14a4me&YQeZzP^1(9*e395 zOAo#umfytv;<;)nEP98*i9LZpTMpy!0R*$D{&yYgJTHtvy=Sp*1!&f9OD>UpY5;d_ zPTLiTHvI0&l)>-bLY&!tLb*Yz3_&r**zhi(9aVAtTr}u0T8&{}9g}+7P|-4kS%gqI zlt~B#%M#(oYbJoBUjd2cl1x6lU< z%R@+icHv@mj8Hn4BgLjmou7CiYA~kurte$si#}PMjzOx1D4@f9O?3Be2=gXVrC3;T zeN9tWQi|4+QC%>PwWwhR8kT?l>6_&0_k}lP6GF&c!SZhZTepST<7&%eZ8DVsKC7US zk=!uFhNVHx`nN6r#3VD>69eKp>Yg*X(Y{G%ipTDDpCL^J@j2v7%{a)J46QzXvgJEi z$((gG61WNhyqTGLdtMrUYbMM}gh3xP^ObVxln$1T#aL%^GO}tvYA?w z=f29}F7dys_?g0EQ1N4t?ee#v%YLX)9SHOcCHE_E%O1@f)Q$ulQR5d^@gbbl~7aq`XBA`>*quf!VTtO26idw zD$Xy{uM0_Vsi#K@odVB#n`}-9q-P5$AHg)Iw+qPtOGP6d!T8SOS3}OvKdtW46(xH+ zvB#bB{kX{?)!I8CUFYPVY03|6i8E@)E$u27MAh%3Y5F+uABvSTyM9^6kv3>&Ha5zJ7m_!Syc&d*%>Ue@r*ZHt9t;!_j**U`~=`>rp%7us{^Uq8SQTL(XWz4njKgN$V#%f1{a!bVhZF!#Y ziIez@&FTsf79%N#kx_i{DzN|z)bzW0SZ=?4U?iBIEqN6}Q$5T76qJB{t*;yIi`_Ty zO%a-10M|(U{h7K7k|6!;Qp_c3+uKIkmTfCNPfRF0uG^`s8)nK7PQ`db)Xn9D` zfLq3vU{^u!eh55A3egf8t2ef5jJY-(Rufk1mK@t0M6d?9oLt5YVk=) z$5xK6Z?Q_mDn{?!CaocI{+IZ_0MzZeHP0LzHJ5dxr|u94wM8}M9xBk2*K5%KDxm!T zUx0CKy*o08GYJBn0dY7Lf$LNd2n4=lW#PgND(N|0^TDb4?coG;$=bo{{RQub{{=an BzRv&v diff --git a/common/src/main/resources/assets/antarchy/textures/entity/glimmer/apple_cow_glimmer_emissive.png b/common/src/main/resources/assets/antarchy/textures/entity/glimmer/apple_cow_glimmer_emissive.png index d18c587d2306b3d6327a95d69ce126078f75a31b..92ac039684135fd429a7ce040da56904572de370 100644 GIT binary patch delta 1493 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 HAS_RARE_SEASHELL = TagKey.create( + Registries.BIOME, + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "has_rare_seashell") + ); private static final ResourceKey SEASHELL_PATCH = ResourceKey.create( Registries.PLACED_FEATURE, ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "seashell_patch") ); + private static final ResourceKey SEASHELL_PATCH_RARE = ResourceKey.create( + Registries.PLACED_FEATURE, + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "seashell_patch_rare") + ); + private static final TagKey HAS_STAR_CORAL = TagKey.create( + Registries.BIOME, + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "has_star_coral") + ); + private static final ResourceKey STAR_CORAL_PATCH = ResourceKey.create( + Registries.PLACED_FEATURE, + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "star_coral_patch") + ); @Override public void onInitialize() { AntarchyFabricNetworking.register(); @@ -226,6 +242,16 @@ public final class AntarchyFabric implements ModInitializer { GenerationStep.Decoration.VEGETAL_DECORATION, SEASHELL_PATCH ); + BiomeModifications.addFeature( + BiomeSelectors.tag(HAS_RARE_SEASHELL), + GenerationStep.Decoration.VEGETAL_DECORATION, + SEASHELL_PATCH_RARE + ); + BiomeModifications.addFeature( + BiomeSelectors.tag(HAS_STAR_CORAL), + GenerationStep.Decoration.VEGETAL_DECORATION, + STAR_CORAL_PATCH + ); BiomeModifications.addSpawn( BiomeSelectors.tag(APPLE_COW_SPAWN_BIOMES), net.minecraft.world.entity.MobCategory.CREATURE, diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java index 4d88145d..e5fb5345 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java @@ -155,6 +155,12 @@ public final class AntarchyFabricClientBootstrap { : net.minecraft.world.level.GrassColor.getDefaultColor(), AntarchyFabricBlocks.SPIDER_LILY.get() ); + ColorProviderRegistry.BLOCK.register( + (state, level, pos, tintIndex) -> level != null && pos != null + ? BiomeColors.getAverageGrassColor(level, pos) + : net.minecraft.world.level.GrassColor.getDefaultColor(), + AntarchyFabricBlocks.POTTED_SPIDER_LILY.get() + ); ColorProviderRegistry.ITEM.register((stack, tintIndex) -> FoliageColor.getDefaultColor(), AntarchyFabricItems.OURANWOOD_LEAVES_ITEM.get()); ColorProviderRegistry.ITEM.register( (stack, tintIndex) -> tintIndex == 0 ? net.minecraft.world.level.GrassColor.getDefaultColor() : -1, @@ -266,11 +272,13 @@ public final class AntarchyFabricClientBootstrap { BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.OURANWOOD_DOOR.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.OURANWOOD_TRAPDOOR.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.OURANWOOD_ACORN_BLOCK.get(), RenderType.cutout()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.POTTED_OURANWOOD_ACORN.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_LEAVES.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_HANGING_PEACH.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_DOOR.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_TRAPDOOR.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_SAPLING.get(), RenderType.cutout()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.POTTED_PEACH_SAPLING.get(), RenderType.cutout()); // BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricContent.OURANWOOD_VINE.get(), RenderType.cutout()); // BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricContent.OURANWOOD_VINE_PLANT.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.DUPLICATOR_SAPLING.get(), RenderType.cutout()); @@ -278,7 +286,9 @@ public final class AntarchyFabricClientBootstrap { BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PINK_MILKWEED.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CAMELLIA.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.SPIDER_LILY.get(), RenderType.cutout()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.POTTED_SPIDER_LILY.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.LOTUS.get(), RenderType.cutout()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.POTTED_LOTUS.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.GIANT_LILY_PAD.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.HUSHWEED.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CRITTER_CAGE_BLOCK.get(), RenderType.cutout()); diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/DorrieJumpClientHandler.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/DorrieJumpClientHandler.java index 75f9c640..5e469b65 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/DorrieJumpClientHandler.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/DorrieJumpClientHandler.java @@ -38,6 +38,9 @@ public final class DorrieJumpClientHandler { boolean pressingCharge = AntarchyKeyBindings.isDorrieChargeJumpPressed(); if (pressingCharge != wasPressingCharge) { ClientPlayNetworking.send(new DorrieChargeJumpPayload(pressingCharge)); + if (!pressingCharge && player.getVehicle() instanceof DorrieEntity dorrie) { + dorrie.applyJumpImpulseClient(); + } wasPressingCharge = pressingCharge; } } 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 7361be8f..c289196d 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 @@ -335,6 +335,8 @@ public final class AntarchyFabricBlocks { public static final DeferredBlock OURANWOOD_ACORN_BLOCK = BLOCKS.register("ouranwood_acorn", () -> new OuranwoodAcornBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission())); + public static final DeferredBlock POTTED_OURANWOOD_ACORN = BLOCKS.register("potted_ouranwood_acorn", + () -> new net.minecraft.world.level.block.FlowerPotBlock(OURANWOOD_ACORN_BLOCK.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION))); public static final DeferredBlock ORANGE_MILKWEED = BLOCKS.register("orange_milkweed", @@ -351,12 +353,16 @@ public final class AntarchyFabricBlocks { public static final DeferredBlock SPIDER_LILY = BLOCKS.register("spider_lily", () -> new com.craisinlord.antarchy.content.block.SpiderLilyBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.POPPY))); + public static final DeferredBlock POTTED_SPIDER_LILY = BLOCKS.register("potted_spider_lily", + () -> new net.minecraft.world.level.block.FlowerPotBlock(SPIDER_LILY.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION))); public static final DeferredBlock GIANT_LILY_PAD = BLOCKS.register("giant_lily_pad", () -> new GiantLilyPadBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.LILY_PAD))); public static final DeferredBlock LOTUS = BLOCKS.register("lotus", () -> new com.craisinlord.antarchy.content.block.LotusBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPORE_BLOSSOM))); + public static final DeferredBlock POTTED_LOTUS = BLOCKS.register("potted_lotus", + () -> new net.minecraft.world.level.block.FlowerPotBlock(LOTUS.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION))); public static final DeferredBlock SEASHELL = BLOCKS.register("seashell", () -> new SeashellBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG).noOcclusion())); public static final DeferredBlock CRITTER_CAGE_BLOCK = BLOCKS.register("critter_cage_block", @@ -441,6 +447,8 @@ public final class AntarchyFabricBlocks { public static final DeferredBlock PEACH_SAPLING = BLOCKS.register("peach_sapling", () -> new com.craisinlord.antarchy.content.block.PeachSaplingBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission())); + public static final DeferredBlock POTTED_PEACH_SAPLING = BLOCKS.register("potted_peach_sapling", + () -> new net.minecraft.world.level.block.FlowerPotBlock(PEACH_SAPLING.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION))); public static final DeferredBlock PEACH_SIGN = BLOCKS.register("peach_sign", 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 7d4495c4..26b62fbe 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 @@ -409,7 +409,7 @@ public final class AntarchyFabricEntities { public static final DeferredHolder, EntityType> BUTTERFLY = ENTITY_TYPES.register("butterfly", () -> EntityType.Builder.of(ButterflyEntity::new, MobCategory.AMBIENT) - .sized(1.125F, 1.375F) + .sized(1.125F, 0.6875F) .clientTrackingRange(8) .build("butterfly")); diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyToolsConfig.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyToolsConfig.java index 833bc155..0def34c2 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyToolsConfig.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyToolsConfig.java @@ -479,8 +479,8 @@ public final class AntarchyToolsConfig { // Critter Cage b.push("critterCage"); - CRITTER_CAGE_MAX_CAPTURABLE_WIDTH = b.comment("Maximum capturable entity width/depth based on the live hitbox, in blocks.").defineInRange("maxCapturableWidth", 1.15D, 0.1D, 64.0D); - CRITTER_CAGE_MAX_CAPTURABLE_HEIGHT = b.comment("Maximum capturable entity height based on the live hitbox, in blocks.").defineInRange("maxCapturableHeight", 1.15D, 0.1D, 64.0D); + CRITTER_CAGE_MAX_CAPTURABLE_WIDTH = b.comment("Maximum capturable entity width/depth based on the live hitbox, in blocks.").defineInRange("maxCapturableWidth", 1.65D, 0.1D, 64.0D); + CRITTER_CAGE_MAX_CAPTURABLE_HEIGHT = b.comment("Maximum capturable entity height based on the live hitbox, in blocks.").defineInRange("maxCapturableHeight", 1.65D, 0.1D, 64.0D); b.pop(); diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java index 5db9ece6..3e8f315a 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java @@ -210,6 +210,12 @@ public final class AntarchyNeoForgeClient { : net.minecraft.world.level.GrassColor.getDefaultColor(), AntarchyNeoforgeBlocks.SPIDER_LILY.get() ); + event.register( + (state, level, pos, tintIndex) -> level != null && pos != null + ? BiomeColors.getAverageGrassColor(level, pos) + : net.minecraft.world.level.GrassColor.getDefaultColor(), + AntarchyNeoforgeBlocks.POTTED_SPIDER_LILY.get() + ); } @SubscribeEvent @@ -505,11 +511,13 @@ public final class AntarchyNeoForgeClient { ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_DOOR.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_TRAPDOOR.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_ACORN_BLOCK.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.POTTED_OURANWOOD_ACORN.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_LEAVES.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_HANGING_PEACH.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_DOOR.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_TRAPDOOR.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_SAPLING.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.POTTED_PEACH_SAPLING.get(), RenderType.cutout()); // ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_VINE.get(), RenderType.cutout()); // ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_VINE_PLANT.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.DUPLICATOR_SAPLING.get(), RenderType.cutout()); @@ -517,7 +525,9 @@ public final class AntarchyNeoForgeClient { ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PINK_MILKWEED.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.CAMELLIA.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.SPIDER_LILY.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.POTTED_SPIDER_LILY.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.LOTUS.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.POTTED_LOTUS.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.GIANT_LILY_PAD.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.HUSHWEED.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.CRITTER_CAGE_BLOCK.get(), RenderType.cutout()); diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/DorrieJumpClientHandler.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/DorrieJumpClientHandler.java index 66f95787..d0386426 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/DorrieJumpClientHandler.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/DorrieJumpClientHandler.java @@ -43,6 +43,9 @@ public final class DorrieJumpClientHandler { boolean pressingCharge = AntarchyKeyBindings.DORRIE_CHARGE_JUMP.isDown(); if (pressingCharge != wasPressingCharge) { PacketDistributor.sendToServer(new DorrieChargeJumpPayload(pressingCharge)); + if (!pressingCharge && player.getVehicle() instanceof DorrieEntity dorrie) { + dorrie.applyJumpImpulseClient(); + } wasPressingCharge = pressingCharge; } } diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java index 0f3854bc..fd31d377 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java @@ -49,6 +49,10 @@ import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; import net.neoforged.neoforge.common.ItemAbilities; import net.neoforged.neoforge.common.NeoForge; import net.neoforged.neoforge.common.NeoForgeMod; +import net.minecraft.world.entity.npc.VillagerProfession; +import net.minecraft.world.entity.npc.VillagerTrades; +import net.minecraft.world.item.trading.ItemCost; +import net.minecraft.world.item.trading.MerchantOffer; import net.neoforged.neoforge.event.AddReloadListenerEvent; import net.neoforged.neoforge.event.brewing.RegisterBrewingRecipesEvent; import net.neoforged.neoforge.event.entity.EntityAttributeModificationEvent; @@ -58,6 +62,8 @@ import net.neoforged.neoforge.event.entity.player.PlayerEvent; import net.neoforged.neoforge.event.entity.player.PlayerInteractEvent; import net.neoforged.neoforge.event.level.BlockEvent; import net.neoforged.neoforge.event.tick.EntityTickEvent; +import net.neoforged.neoforge.event.village.VillagerTradesEvent; +import net.neoforged.neoforge.event.village.WandererTradesEvent; import net.neoforged.neoforge.event.tick.PlayerTickEvent; import net.neoforged.neoforge.event.tick.ServerTickEvent; import com.craisinlord.antarchy.content.item.MinersDreamExcavationManager; @@ -118,6 +124,28 @@ public final class AntarchyNeoForgeEvents { NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleStartTracking); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleDreamSandLogout); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::registerReloadListeners); + NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::onVillagerTrades); + NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::onWandererTrades); + } + + static void onVillagerTrades(VillagerTradesEvent event) { + if (event.getType() == VillagerProfession.FARMER) { + event.getTrades().get(1).add(emeraldForItems(AntarchyObjects.CORN.get(), 20, 16, 2)); + } else if (event.getType() == VillagerProfession.BUTCHER) { + event.getTrades().get(1).add(emeraldForItems(AntarchyObjects.COOKED_CORNDOG.get(), 5, 16, 2)); + } + } + + static void onWandererTrades(WandererTradesEvent event) { + event.getGenericTrades().add(itemsForEmerald(AntarchyObjects.CORN_SEEDS.get(), 1, 3, 12, 2)); + } + + private static VillagerTrades.ItemListing emeraldForItems(Item item, int count, int maxUses, int villagerXp) { + return (trader, random) -> new MerchantOffer(new ItemCost(item, count), new ItemStack(Items.EMERALD), maxUses, villagerXp, 0.05F); + } + + private static VillagerTrades.ItemListing itemsForEmerald(Item item, int emeraldCost, int count, int maxUses, int villagerXp) { + return (trader, random) -> new MerchantOffer(new ItemCost(Items.EMERALD, emeraldCost), new ItemStack(item, count), maxUses, villagerXp, 0.05F); } public static void onMissileSquidDeath(LivingDeathEvent event) { 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 a0f97b5b..7bae9663 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 @@ -79,6 +79,8 @@ public final class AntarchyNeoforgeBlocks { () -> new OuranwoodLeavesBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LEAVES).randomTicks())); public static final DeferredBlock OURANWOOD_ACORN_BLOCK = BLOCKS.register("ouranwood_acorn", () -> new OuranwoodAcornBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission())); + public static final DeferredBlock POTTED_OURANWOOD_ACORN = BLOCKS.register("potted_ouranwood_acorn", + () -> new FlowerPotBlock(OURANWOOD_ACORN_BLOCK.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION))); // public static final DeferredBlock OURANWOOD_VINE = BLOCKS.register("ouranwood_vine", // () -> OURANWOOD_VINE_INSTANCE); // public static final DeferredBlock OURANWOOD_VINE_PLANT = BLOCKS.register("ouranwood_vine_plant", @@ -91,10 +93,14 @@ public final class AntarchyNeoforgeBlocks { () -> new com.craisinlord.antarchy.content.block.CamelliaBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.PEONY))); public static final DeferredBlock SPIDER_LILY = BLOCKS.register("spider_lily", () -> new com.craisinlord.antarchy.content.block.SpiderLilyBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.POPPY))); + public static final DeferredBlock POTTED_SPIDER_LILY = BLOCKS.register("potted_spider_lily", + () -> new FlowerPotBlock(SPIDER_LILY.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION))); public static final DeferredBlock GIANT_LILY_PAD = BLOCKS.register("giant_lily_pad", () -> new GiantLilyPadBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.LILY_PAD))); public static final DeferredBlock LOTUS = BLOCKS.register("lotus", () -> new com.craisinlord.antarchy.content.block.LotusBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPORE_BLOSSOM))); + public static final DeferredBlock POTTED_LOTUS = BLOCKS.register("potted_lotus", + () -> new FlowerPotBlock(LOTUS.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION))); public static final DeferredBlock SEASHELL = BLOCKS.register("seashell", () -> new SeashellBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG).noOcclusion())); public static final DeferredBlock CRITTER_CAGE_BLOCK = BLOCKS.register("critter_cage_block", @@ -139,6 +145,8 @@ public final class AntarchyNeoforgeBlocks { () -> new HangingPeachBlock(BlockBehaviour.Properties.of().noOcclusion().instabreak())); public static final DeferredBlock PEACH_SAPLING = BLOCKS.register("peach_sapling", () -> new com.craisinlord.antarchy.content.block.PeachSaplingBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission())); + public static final DeferredBlock POTTED_PEACH_SAPLING = BLOCKS.register("potted_peach_sapling", + () -> new FlowerPotBlock(PEACH_SAPLING.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION))); public static final DeferredBlock PEACH_SIGN = BLOCKS.register("peach_sign", () -> new StandingSignBlock(AntarchyWoodTypes.PEACH, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_SIGN))); public static final DeferredBlock PEACH_WALL_SIGN = BLOCKS.register("peach_wall_sign", 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 6245ef58..9417dc19 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 @@ -134,6 +134,8 @@ public class AntarchyNeoforgeCreativeModeTabs { event.accept(AntarchyNeoforgeItems.LUMEN_BUCKET.get()); event.accept(AntarchyNeoforgeItems.CLOUD_BUCKET.get()); event.accept(AntarchyNeoforgeItems.REVERIE_BOTTLE.get()); + event.accept(AntarchyNeoforgeItems.GLIMMER_BOTTLE.get()); + event.accept(AntarchyNeoforgeItems.CRITTER_CAGE.get()); event.accept(AntarchyNeoforgeItems.ULTIMATE_PICKAXE.get()); event.accept(AntarchyNeoforgeItems.ULTIMATE_AXE.get()); event.accept(AntarchyNeoforgeItems.ULTIMATE_SHOVEL.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 936cac14..502821b2 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 @@ -193,7 +193,7 @@ public final class AntarchyNeoforgeEntites { .build("caterpillar")); public static final DeferredHolder, EntityType> BUTTERFLY = ENTITY_TYPES.register("butterfly", () -> EntityType.Builder.of(ButterflyEntity::new, MobCategory.AMBIENT) - .sized(1.125F, 1.375F) + .sized(1.125F, 0.6875F) .clientTrackingRange(8) .build("butterfly")); public static final DeferredHolder, EntityType> REVERIE = ENTITY_TYPES.register("reverie", 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 e6b006a9..32c5a18f 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 @@ -711,11 +711,6 @@ public final class AntarchyNeoforgeItems { .nutrition(2) .saturationModifier(0.1F) .build()))); - public static final DeferredItem CREEPING_HORROR_EGG_ITEM = ITEMS.register("creeping_horror_egg", - () -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE))); - public static final DeferredItem LURKING_TERROR_EGG_ITEM = ITEMS.register("lurking_terror_egg", - () -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE))); - private AntarchyNeoforgeItems() {} public static Collection> getItemEntries() { diff --git a/neoforge/src/main/resources/data/antarchy/neoforge/biome_modifier/seashell_in_warm_oceans.json b/neoforge/src/main/resources/data/antarchy/neoforge/biome_modifier/seashell_in_warm_oceans.json new file mode 100644 index 00000000..660adf03 --- /dev/null +++ b/neoforge/src/main/resources/data/antarchy/neoforge/biome_modifier/seashell_in_warm_oceans.json @@ -0,0 +1,6 @@ +{ + "type": "neoforge:add_features", + "biomes": "#antarchy:has_rare_seashell", + "features": ["antarchy:seashell_patch_rare"], + "step": "vegetal_decoration" +} diff --git a/neoforge/src/main/resources/data/antarchy/neoforge/biome_modifier/star_coral_in_oceans.json b/neoforge/src/main/resources/data/antarchy/neoforge/biome_modifier/star_coral_in_oceans.json new file mode 100644 index 00000000..281f4a35 --- /dev/null +++ b/neoforge/src/main/resources/data/antarchy/neoforge/biome_modifier/star_coral_in_oceans.json @@ -0,0 +1,6 @@ +{ + "type": "neoforge:add_features", + "biomes": "#antarchy:has_star_coral", + "features": ["antarchy:star_coral_patch"], + "step": "vegetal_decoration" +}