diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/GroundPathNavigationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/GroundPathNavigationMixin.java index c643f810..363ecc56 100644 --- a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/GroundPathNavigationMixin.java +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/GroundPathNavigationMixin.java @@ -5,6 +5,7 @@ import com.craisinlord.antarchy.content.gravity.GravityWalkNodeEvaluator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import net.minecraft.world.entity.ai.navigation.GroundPathNavigation; +import net.minecraft.world.level.pathfinder.NodeEvaluator; import net.minecraft.world.level.pathfinder.PathFinder; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -20,7 +21,8 @@ public abstract class GroundPathNavigationMixin { @Inject(method = "createPathFinder", at = @At("HEAD"), cancellable = true) private void antarchy$useGravityEvaluator(int maxVisitedNodes, CallbackInfoReturnable cir) { - var mob = ((PathNavigationAccessor) (Object) this).antarchy$getMob(); + var accessor = (PathNavigationAccessor) (Object) this; + var mob = accessor.antarchy$getMob(); if (!AntarchyGravityApi.isGravityInverted(mob)) { return; } @@ -31,6 +33,8 @@ public abstract class GroundPathNavigationMixin { maxVisitedNodes ); - cir.setReturnValue(new PathFinder(new GravityWalkNodeEvaluator(), maxVisitedNodes)); + NodeEvaluator evaluator = new GravityWalkNodeEvaluator(); + accessor.antarchy$setNodeEvaluator(evaluator); + cir.setReturnValue(new PathFinder(evaluator, maxVisitedNodes)); } } diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/PathNavigationAccessor.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/PathNavigationAccessor.java index 1a512fef..f7bdcedc 100644 --- a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/PathNavigationAccessor.java +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/PathNavigationAccessor.java @@ -2,6 +2,7 @@ package com.craisinlord.antarchy.mixins.gravity; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.ai.navigation.PathNavigation; +import net.minecraft.world.level.pathfinder.NodeEvaluator; import net.minecraft.world.level.pathfinder.Path; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; @@ -16,4 +17,7 @@ public interface PathNavigationAccessor { @Accessor("path") Path antarchy$getPath(); + + @Accessor("nodeEvaluator") + void antarchy$setNodeEvaluator(NodeEvaluator nodeEvaluator); } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/AntarchyObjects.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/AntarchyObjects.java index 65508353..56eb38cf 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/AntarchyObjects.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/AntarchyObjects.java @@ -358,6 +358,11 @@ public final class AntarchyObjects { public static Supplier> CRITTER_CAGE_PROJECTILE = (Supplier>) UNBOUND; @SuppressWarnings("unchecked") + public static Supplier> WORM_HOOK_PROJECTILE = + (Supplier>) UNBOUND; + @SuppressWarnings("unchecked") + public static Supplier WORM_HOOK = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") public static Supplier> CRITTER_CAGE_ENTITY_TYPE_COMPONENT = (Supplier>) UNBOUND; @SuppressWarnings("unchecked") @@ -770,6 +775,14 @@ public final class AntarchyObjects { CRITTER_CAGE_PROJECTILE = supplier; } + public static void setWormHookProjectile(Supplier> supplier) { + WORM_HOOK_PROJECTILE = supplier; + } + + public static void setWormHook(Supplier supplier) { + WORM_HOOK = supplier; + } + public static void setCritterCageEntityTypeComponent(Supplier> supplier) { CRITTER_CAGE_ENTITY_TYPE_COMPONENT = supplier; } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/NadirSaplingBlock.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/NadirSaplingBlock.java index 0e9a2dd9..9a64473e 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/NadirSaplingBlock.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/NadirSaplingBlock.java @@ -1,22 +1,37 @@ package com.craisinlord.antarchy.content.block; +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.worldgen.thoraxis.NadirTreeGrowers; import com.mojang.serialization.MapCodec; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.tags.BlockTags; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.tags.TagKey; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.BonemealableBlock; import net.minecraft.world.level.block.BushBlock; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -public class NadirSaplingBlock extends BushBlock { +public class NadirSaplingBlock extends BushBlock implements BonemealableBlock { public static final MapCodec CODEC = Block.simpleCodec(NadirSaplingBlock::new); - private static final VoxelShape SHAPE = Block.box(2.0D, 0.0D, 2.0D, 14.0D, 12.0D, 14.0D); + private static final TagKey SUPPORTS = TagKey.create( + Registries.BLOCK, + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "nadir_sapling_supports") + ); + private static final VoxelShape SHAPE = Block.box(2.0D, 4.0D, 2.0D, 14.0D, 16.0D, 14.0D); public NadirSaplingBlock(BlockBehaviour.Properties properties) { super(properties); @@ -34,7 +49,21 @@ public class NadirSaplingBlock extends BushBlock { @Override protected boolean mayPlaceOn(BlockState state, BlockGetter level, BlockPos pos) { - return state.is(BlockTags.DIRT) || state.is(Blocks.FARMLAND); + return state.is(SUPPORTS); + } + + @Override + protected boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + BlockPos supportPos = pos.above(); + BlockState supportState = level.getBlockState(supportPos); + return supportState.is(SUPPORTS) && supportState.isFaceSturdy(level, supportPos, Direction.DOWN); + } + + @Override + protected void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + if (random.nextInt(7) == 0) { + this.growConfiguredTree(level, pos, state, random); + } } @Override @@ -50,4 +79,32 @@ public class NadirSaplingBlock extends BushBlock { ? super.updateShape(state, direction, neighborState, level, pos, neighborPos) : Blocks.AIR.defaultBlockState(); } + + @Override + public boolean isValidBonemealTarget(LevelReader level, BlockPos pos, BlockState state) { + return true; + } + + @Override + public boolean isBonemealSuccess(Level level, RandomSource random, BlockPos pos, BlockState state) { + return random.nextFloat() < 0.45F; + } + + @Override + public void performBonemeal(ServerLevel level, RandomSource random, BlockPos pos, BlockState state) { + this.growConfiguredTree(level, pos, state, random); + } + + private void growConfiguredTree(ServerLevel level, BlockPos pos, BlockState state, RandomSource random) { + Holder.Reference> feature = level.registryAccess() + .lookupOrThrow(Registries.CONFIGURED_FEATURE) + .getOrThrow(NadirTreeGrowers.NADIR_TREE); + + level.removeBlock(pos, false); + if (feature.value().place(level, level.getChunkSource().getGenerator(), random, pos)) { + return; + } + + level.setBlock(pos, state, Block.UPDATE_ALL); + } } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/WormHookTetherClientState.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/WormHookTetherClientState.java new file mode 100644 index 00000000..17835eea --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/WormHookTetherClientState.java @@ -0,0 +1,27 @@ +package com.craisinlord.antarchy.content.client; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +public final class WormHookTetherClientState { + private static final Map TETHERS = new ConcurrentHashMap<>(); + + private WormHookTetherClientState() { + } + + public static void update(int playerId, int hookId) { + if (hookId < 0) { + TETHERS.remove(playerId); + } else { + TETHERS.put(playerId, hookId); + } + } + + public static Map snapshot() { + return Map.copyOf(TETHERS); + } + + public static void clear() { + TETHERS.clear(); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/model/PortalGunBlackHoleModel.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/model/PortalGunBlackHoleModel.java new file mode 100644 index 00000000..bada5a4b --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/model/PortalGunBlackHoleModel.java @@ -0,0 +1,25 @@ +package com.craisinlord.antarchy.content.client.model; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.portalgun.PortalGunBlackHoleEntity; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class PortalGunBlackHoleModel extends GeoModel { + private static final ResourceLocation TEXTURE = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/vfx/portal_gun_black_hole.png"); + + @Override + public ResourceLocation getModelResource(PortalGunBlackHoleEntity animatable) { + return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "geo/portal_gun_portal.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(PortalGunBlackHoleEntity animatable) { + return TEXTURE; + } + + @Override + public ResourceLocation getAnimationResource(PortalGunBlackHoleEntity animatable) { + return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "animations/portal_gun_portal.animation.json"); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/model/PortalGunPortalModel.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/model/PortalGunPortalModel.java new file mode 100644 index 00000000..d12f735f --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/model/PortalGunPortalModel.java @@ -0,0 +1,26 @@ +package com.craisinlord.antarchy.content.client.model; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class PortalGunPortalModel extends GeoModel { + private static final ResourceLocation BLUE_TEXTURE = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/vfx/portal_gun_portal_blue.png"); + private static final ResourceLocation ORANGE_TEXTURE = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/vfx/portal_gun_portal_orange.png"); + + @Override + public ResourceLocation getModelResource(PortalGunPortalEntity animatable) { + return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "geo/portal_gun_portal.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(PortalGunPortalEntity animatable) { + return animatable.getPortalSide() == PortalGunPortalEntity.PortalSide.BLUE ? BLUE_TEXTURE : ORANGE_TEXTURE; + } + + @Override + public ResourceLocation getAnimationResource(PortalGunPortalEntity animatable) { + return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "animations/portal_gun_portal.animation.json"); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/model/WormModel.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/model/WormModel.java new file mode 100644 index 00000000..d8320693 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/model/WormModel.java @@ -0,0 +1,27 @@ +package com.craisinlord.antarchy.content.client.model; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.entity.WormEntity; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class WormModel extends GeoModel { + private static final ResourceLocation MODEL = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "geo/worm_large.geo.json"); + private static final ResourceLocation TEXTURE = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/worm/worm_large.png"); + private static final ResourceLocation ANIMATION = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "animations/worm_large.animation.json"); + + @Override + public ResourceLocation getModelResource(WormEntity animatable) { + return MODEL; + } + + @Override + public ResourceLocation getTextureResource(WormEntity animatable) { + return TEXTURE; + } + + @Override + public ResourceLocation getAnimationResource(WormEntity animatable) { + return ANIMATION; + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunBlackHoleRenderer.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunBlackHoleRenderer.java new file mode 100644 index 00000000..18b4bcc7 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunBlackHoleRenderer.java @@ -0,0 +1,28 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.model.PortalGunBlackHoleModel; +import com.craisinlord.antarchy.content.portalgun.PortalGunBlackHoleEntity; +import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.renderer.GeoEntityRenderer; + +public class PortalGunBlackHoleRenderer extends GeoEntityRenderer { + public PortalGunBlackHoleRenderer(EntityRendererProvider.Context context) { + super(context, new PortalGunBlackHoleModel()); + this.shadowRadius = 0.0F; + } + + @Override + public void render(PortalGunBlackHoleEntity entity, float entityYaw, float partialTick, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight) { + super.render(entity, entityYaw, partialTick, poseStack, bufferSource, 0xF000F0); + } + + @Override + public @Nullable RenderType getRenderType(PortalGunBlackHoleEntity animatable, ResourceLocation texture, @Nullable MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityTranslucent(this.getTextureLocation(animatable)); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunPortalRenderer.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunPortalRenderer.java new file mode 100644 index 00000000..dd3c7bc7 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunPortalRenderer.java @@ -0,0 +1,36 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.model.PortalGunPortalModel; +import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Axis; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.core.Direction; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.renderer.GeoEntityRenderer; + +public class PortalGunPortalRenderer extends GeoEntityRenderer { + public PortalGunPortalRenderer(EntityRendererProvider.Context context) { + super(context, new PortalGunPortalModel()); + this.shadowRadius = 0.0F; + } + + @Override + public void render(PortalGunPortalEntity entity, float entityYaw, float partialTick, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight) { + Direction facing = entity.getFacingDirection(); + poseStack.pushPose(); + if (facing.getAxis() == Direction.Axis.Y) { + poseStack.mulPose(Axis.XP.rotationDegrees(facing == Direction.UP ? -90.0F : 90.0F)); + } + super.render(entity, entityYaw, partialTick, poseStack, bufferSource, 0xF000F0); + poseStack.popPose(); + } + + @Override + public @Nullable RenderType getRenderType(PortalGunPortalEntity animatable, ResourceLocation texture, @Nullable MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityTranslucent(this.getTextureLocation(animatable)); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/WormRenderer.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/WormRenderer.java new file mode 100644 index 00000000..d92f43a7 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/WormRenderer.java @@ -0,0 +1,13 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.model.WormModel; +import com.craisinlord.antarchy.content.entity.WormEntity; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import software.bernie.geckolib.renderer.GeoEntityRenderer; + +public class WormRenderer extends GeoEntityRenderer { + public WormRenderer(EntityRendererProvider.Context context) { + super(context, new WormModel()); + this.shadowRadius = 0.75F; + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/creative/CreativeTabContents.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/creative/CreativeTabContents.java index 204bca70..3c999bd0 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/creative/CreativeTabContents.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/creative/CreativeTabContents.java @@ -126,6 +126,10 @@ public final class CreativeTabContents { entry("nyxite_brick_stairs", "building_blocks"), entry("nyxite_brick_slab", "building_blocks"), entry("nyxite_brick_wall", "building_blocks"), + entry("mossy_nyxite_bricks", "building_blocks"), + entry("mossy_nyxite_brick_stairs", "building_blocks"), + entry("mossy_nyxite_brick_slab", "building_blocks"), + entry("mossy_nyxite_brick_wall", "building_blocks"), entry("chiseled_nyxite", "building_blocks"), entry("nyxite_pillar", "building_blocks"), entry("pale_nyxite", "building_blocks"), @@ -167,15 +171,39 @@ public final class CreativeTabContents { entry("medium_blood_crystal_bud", "building_blocks"), entry("large_blood_crystal_bud", "building_blocks"), entry("myrmite", "building_blocks"), + entry("myrmite_stairs", "building_blocks"), + entry("myrmite_slab", "building_blocks"), + entry("myrmite_wall", "building_blocks"), + entry("polished_myrmite", "building_blocks"), + entry("polished_myrmite_stairs", "building_blocks"), + entry("polished_myrmite_slab", "building_blocks"), + entry("polished_myrmite_wall", "building_blocks"), + entry("chiseled_myrmite", "building_blocks"), + entry("myrmite_bricks", "building_blocks"), + entry("myrmite_brick_stairs", "building_blocks"), + entry("myrmite_brick_slab", "building_blocks"), + entry("myrmite_brick_wall", "building_blocks"), + entry("mossy_myrmite_bricks", "building_blocks"), + entry("mossy_myrmite_brick_stairs", "building_blocks"), + entry("mossy_myrmite_brick_slab", "building_blocks"), + entry("mossy_myrmite_brick_wall", "building_blocks"), + entry("myrmite_pillar", "building_blocks"), entry("biomite", "building_blocks"), entry("biomite_turf", "building_blocks"), entry("biowart", "building_blocks"), entry("biowart_tendrils", "building_blocks"), - entry("loam", "natural_blocks"), + entry("loam", "building_blocks"), + entry("packed_loam", "building_blocks"), + entry("loam_bricks", "building_blocks"), + entry("loam_brick_stairs", "building_blocks"), + entry("loam_brick_slab", "building_blocks"), + entry("loam_brick_wall", "building_blocks"), + entry("chiseled_loam_bricks", "building_blocks"), entry("broodstone", "building_blocks"), entry("polished_broodstone", "building_blocks"), entry("chiseled_broodstone", "building_blocks"), entry("broodstone_bricks", "building_blocks"), + entry("mossy_broodstone_bricks", "building_blocks"), entry("broodstone_stairs", "building_blocks"), entry("broodstone_slab", "building_blocks"), entry("broodstone_wall", "building_blocks"), @@ -185,6 +213,9 @@ public final class CreativeTabContents { entry("broodstone_brick_stairs", "building_blocks"), entry("broodstone_brick_slab", "building_blocks"), entry("broodstone_brick_wall", "building_blocks"), + entry("mossy_broodstone_brick_stairs", "building_blocks"), + entry("mossy_broodstone_brick_slab", "building_blocks"), + entry("mossy_broodstone_brick_wall", "building_blocks"), entry("broodstone_pillar", "building_blocks"), entry("myrmite_coal_ore", "building_blocks"), entry("broodstone_uranium_ore", "building_blocks"), @@ -275,10 +306,12 @@ public final class CreativeTabContents { entry("antiwater_bucket", "tools_and_utilities"), entry("lumen_bucket", "tools_and_utilities"), entry("cloud_bucket", "tools_and_utilities"), + entry("cheep_bucket", "tools_and_utilities"), entry("lucid_anchor", "tools_and_utilities"), entry("reverie_bottle", "tools_and_utilities"), entry("glimmer_bottle", "tools_and_utilities"), entry("critter_cage", "tools_and_utilities"), + entry("worm_hook", "tools_and_utilities"), entry("ultimate_pickaxe", "tools_and_utilities"), entry("ultimate_axe", "tools_and_utilities"), entry("ultimate_shovel", "tools_and_utilities"), @@ -299,6 +332,7 @@ public final class CreativeTabContents { entry("shrink_ray", "combat"), entry("growth_ray", "combat"), entry("gravity_gun", "combat"), + entry("portal_gun", "combat"), entry("water_cannon", "combat"), entry("attitude_adjuster", "combat"), entry("lucid_pearl", "combat"), @@ -340,10 +374,12 @@ public final class CreativeTabContents { entry("nightmare_scale", "ingredients"), entry("molevore_nose", "ingredients"), entry("moleworm", "ingredients"), + entry("worm_tooth", "ingredients"), entry("mud_pie", "ingredients"), entry("lucid_eye", "ingredients"), entry("blood_crystal_shard", "ingredients"), entry("tigers_eye", "ingredients"), + entry("tigers_eye_block", "building_blocks"), entry("blood_crystal_apple", "ingredients"), entry("spirit_apple", "ingredients"), entry("mantis_claw", "combat"), @@ -377,6 +413,7 @@ public final class CreativeTabContents { entry("cooked_bug_meat", "ingredients"), entry("broodfruit", "ingredients"), entry("cheep", "ingredients"), + entry("cooked_cheep", "ingredients"), entry("root_beer", "ingredients"), entry("rainbow_sugar", "ingredients"), entry("big_bertha_blade", "ingredients"), @@ -393,6 +430,7 @@ public final class CreativeTabContents { entry("rainbow_ant_spawn_egg", "spawn_eggs"), entry("termite_spawn_egg", "spawn_eggs"), entry("moleworm_spawn_egg", "spawn_eggs"), + entry("worm_spawn_egg", "spawn_eggs"), entry("mantis_spawn_egg", "spawn_eggs"), entry("alpha_mantis_spawn_egg", "spawn_eggs"), entry("rolly_polly_spawn_egg", "spawn_eggs"), diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/CheepEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/CheepEntity.java index 5274e4e7..30d3acd8 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/CheepEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/CheepEntity.java @@ -2,6 +2,8 @@ package com.craisinlord.antarchy.content.entity; import com.craisinlord.antarchy.config.AntarchySettings; import net.minecraft.nbt.CompoundTag; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; import net.minecraft.world.damagesource.DamageSource; @@ -24,6 +26,7 @@ import software.bernie.geckolib.animation.RawAnimation; import software.bernie.geckolib.util.GeckoLibUtil; public class CheepEntity extends AbstractFish implements GeoEntity { + private static final ResourceLocation CHEEP_BUCKET_ID = ResourceLocation.fromNamespaceAndPath("antarchy", "cheep_bucket"); private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("idle"); private static final RawAnimation SWIM_ANIM = RawAnimation.begin().thenLoop("swim"); private static final RawAnimation ATTACK_ANIM = RawAnimation.begin().thenLoop("attack"); @@ -56,7 +59,7 @@ public class CheepEntity extends AbstractFish implements GeoEntity { @Override public ItemStack getBucketItemStack() { - return new ItemStack(Items.WATER_BUCKET); + return new ItemStack(BuiltInRegistries.ITEM.getOptional(CHEEP_BUCKET_ID).orElse(Items.WATER_BUCKET)); } @Override diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/WormEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/WormEntity.java new file mode 100644 index 00000000..b89e907b --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/WormEntity.java @@ -0,0 +1,158 @@ +package com.craisinlord.antarchy.content.entity; + +import com.craisinlord.antarchy.content.AntarchySoundEvents; +import net.minecraft.network.syncher.EntityDataAccessor; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.network.syncher.SynchedEntityData; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.ai.goal.FloatGoal; +import net.minecraft.world.entity.ai.goal.LookAtPlayerGoal; +import net.minecraft.world.entity.ai.goal.MeleeAttackGoal; +import net.minecraft.world.entity.ai.goal.RandomLookAroundGoal; +import net.minecraft.world.entity.ai.goal.RandomStrollGoal; +import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal; +import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal; +import net.minecraft.world.entity.monster.Monster; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.core.BlockPos; +import net.minecraft.world.phys.Vec3; +import software.bernie.geckolib.animatable.GeoEntity; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; +import software.bernie.geckolib.animation.AnimationState; +import software.bernie.geckolib.animation.PlayState; +import software.bernie.geckolib.animation.RawAnimation; +import software.bernie.geckolib.util.GeckoLibUtil; + +public class WormEntity extends Monster implements GeoEntity { + private static final EntityDataAccessor ANIMATION_STATE = SynchedEntityData.defineId(WormEntity.class, EntityDataSerializers.INT); + private static final int ANIM_INGROUND = 0; + private static final int ANIM_CRAWL = 1; + private static final int ANIM_ATTACK = 2; + private static final RawAnimation INGROUND_ANIM = RawAnimation.begin().thenLoop("inground"); + private static final RawAnimation CRAWL_ANIM = RawAnimation.begin().thenLoop("crawl"); + private static final RawAnimation ATTACK_ANIM = RawAnimation.begin().thenPlay("attack"); + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + private int attackAnimationTicks; + + public WormEntity(EntityType entityType, Level level) { + super(entityType, level); + this.xpReward = 8; + } + + public static AttributeSupplier.Builder createAttributes() { + return Monster.createMonsterAttributes() + .add(Attributes.MAX_HEALTH, 36.0D) + .add(Attributes.MOVEMENT_SPEED, 0.22D) + .add(Attributes.ATTACK_DAMAGE, 7.0D) + .add(Attributes.FOLLOW_RANGE, 28.0D) + .add(Attributes.KNOCKBACK_RESISTANCE, 0.45D); + } + + @Override + protected void defineSynchedData(SynchedEntityData.Builder builder) { + super.defineSynchedData(builder); + builder.define(ANIMATION_STATE, ANIM_INGROUND); + } + + @Override + protected void registerGoals() { + this.goalSelector.addGoal(1, new FloatGoal(this)); + this.goalSelector.addGoal(2, new MeleeAttackGoal(this, 1.05D, false)); + this.goalSelector.addGoal(3, new RandomStrollGoal(this, 0.8D)); + this.goalSelector.addGoal(4, new LookAtPlayerGoal(this, Player.class, 8.0F)); + this.goalSelector.addGoal(5, new RandomLookAroundGoal(this)); + this.targetSelector.addGoal(1, new HurtByTargetGoal(this)); + this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "main_controller", 0, this::mainAnimController) + .triggerableAnim("attack", ATTACK_ANIM)); + } + + private PlayState mainAnimController(AnimationState state) { + return switch (this.entityData.get(ANIMATION_STATE)) { + case ANIM_CRAWL -> state.setAndContinue(CRAWL_ANIM); + case ANIM_ATTACK -> state.setAndContinue(ATTACK_ANIM); + default -> state.setAndContinue(INGROUND_ANIM); + }; + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } + + @Override + public boolean doHurtTarget(Entity target) { + boolean hurt = super.doHurtTarget(target); + if (hurt && target instanceof LivingEntity) { + this.attackAnimationTicks = 45; + this.entityData.set(ANIMATION_STATE, ANIM_ATTACK); + this.triggerAnim("main_controller", "attack"); + this.playSound(AntarchySoundEvents.MOLEWORM_ATTACK.get(), 0.45F, 0.85F + this.random.nextFloat() * 0.2F); + } + return hurt; + } + + @Override + public void tick() { + super.tick(); + if (this.level().isClientSide) { + return; + } + if (this.attackAnimationTicks > 0) { + this.attackAnimationTicks--; + } + this.updateAnimationState(); + } + + private void updateAnimationState() { + if (this.attackAnimationTicks > 0) { + this.entityData.set(ANIMATION_STATE, ANIM_ATTACK); + return; + } + Vec3 velocity = this.getDeltaMovement(); + if (this.getTarget() != null || velocity.horizontalDistanceSqr() > 1.0E-4D || this.walkAnimation.speed() > 0.03F) { + this.entityData.set(ANIMATION_STATE, ANIM_CRAWL); + return; + } + this.entityData.set(ANIMATION_STATE, ANIM_INGROUND); + } + + @Override + protected Entity.MovementEmission getMovementEmission() { + return Entity.MovementEmission.EVENTS; + } + + @Override + protected SoundEvent getAmbientSound() { + return AntarchySoundEvents.MOLEWORM_AMBIENT.get(); + } + + @Override + protected SoundEvent getHurtSound(DamageSource damageSource) { + return AntarchySoundEvents.MOLEWORM_HURT.get(); + } + + @Override + protected SoundEvent getDeathSound() { + return AntarchySoundEvents.MOLEWORM_HURT.get(); + } + + @Override + protected void playStepSound(BlockPos pos, BlockState state) { + this.playSound(AntarchySoundEvents.MOLEWORM_DIG.get(), 0.15F, 0.9F + this.random.nextFloat() * 0.2F); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/WormHookProjectileEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/WormHookProjectileEntity.java new file mode 100644 index 00000000..1a37212a --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/WormHookProjectileEntity.java @@ -0,0 +1,91 @@ +package com.craisinlord.antarchy.content.entity; + +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.item.WormHookTetherManager; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.projectile.ThrowableItemProjectile; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.EntityHitResult; +import net.minecraft.world.phys.HitResult; + +/** + * Thrown out by the worm hook item. Sticks into the first block it hits and stays there, + * anchoring a swing rope back to the thrower until the player detaches. + */ +public class WormHookProjectileEntity extends ThrowableItemProjectile { + private boolean stuck = false; + + public WormHookProjectileEntity(EntityType entityType, Level level) { + super(entityType, level); + } + + public WormHookProjectileEntity(EntityType entityType, LivingEntity owner, Level level) { + super(entityType, owner, level); + } + + @Override + protected Item getDefaultItem() { + return AntarchyObjects.WORM_HOOK.get(); + } + + @Override + public void tick() { + if (this.stuck) { + this.setDeltaMovement(net.minecraft.world.phys.Vec3.ZERO); + } + super.tick(); + + if (!this.level().isClientSide && !this.stuck && this.tickCount > 200) { + this.discard(); + } + } + + @Override + protected void onHit(HitResult hitResult) { + if (this.level().isClientSide || this.stuck) { + return; + } + + if (hitResult instanceof EntityHitResult) { + this.discard(); + return; + } + + if (!(hitResult instanceof BlockHitResult blockHit)) { + return; + } + + if (!(this.getOwner() instanceof ServerPlayer player)) { + this.discard(); + return; + } + + this.stuck = true; + this.setDeltaMovement(net.minecraft.world.phys.Vec3.ZERO); + this.setNoGravity(true); + this.setPos(blockHit.getLocation()); + + boolean attached = WormHookTetherManager.attach(player, this); + if (!attached) { + this.discard(); + return; + } + + this.level().playSound(null, this.blockPosition(), SoundEvents.FISHING_BOBBER_THROW, SoundSource.PLAYERS, 0.8F, 1.4F); + } + + public boolean isStuck() { + return this.stuck; + } + + public void removeHook() { + this.discard(); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/PortalGunItem.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/PortalGunItem.java new file mode 100644 index 00000000..d583ddd6 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/PortalGunItem.java @@ -0,0 +1,307 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.client.model.ResourceBackedGeoItemModel; +import com.craisinlord.antarchy.content.client.renderer.AnimatedHeldItemRenderer; +import com.craisinlord.antarchy.content.network.PortalGunPrimaryPayload; +import com.craisinlord.antarchy.content.portalgun.PortalGunBlackHoleEntity; +import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity; +import com.craisinlord.antarchy.content.portalgun.PortalGunSavedData; +import java.util.List; +import java.util.Optional; +import java.util.UUID; +import java.util.function.Consumer; +import java.util.function.Supplier; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.component.DataComponents; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.stats.Stats; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.level.ClipContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; +import software.bernie.geckolib.animatable.GeoItem; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.Animation; +import software.bernie.geckolib.animation.AnimationController; +import software.bernie.geckolib.animation.PlayState; +import software.bernie.geckolib.animation.RawAnimation; +import software.bernie.geckolib.constant.DataTickets; +import software.bernie.geckolib.util.GeckoLibUtil; + +public class PortalGunItem extends Item implements GeoItem { + private static final String LED_CONTROLLER = "led_controller"; + private static final String FIRE_CONTROLLER = "fire_controller"; + private static final String LAST_SIDE_TAG = "antarchy.portal_gun_last_side"; + private static final ResourceLocation MODEL_LOCATION = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "geo/portal_gun.geo.json"); + private static final ResourceLocation TEXTURE_LOCATION = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/models/item/portal_gun.png"); + private static final ResourceLocation ANIMATION_LOCATION = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "animations/portal_gun.animation.json"); + private final Supplier> portalType; + private final Supplier> blackHoleType; + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + + public PortalGunItem(Item.Properties properties, Supplier> portalType, Supplier> blackHoleType) { + super(properties); + this.portalType = portalType; + this.blackHoleType = blackHoleType; + GeoItem.registerSyncedAnimatable(this); + } + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand usedHand) { + ItemStack stack = player.getItemInHand(usedHand); + if (level.isClientSide) { + return InteractionResultHolder.consume(stack); + } + ServerLevel serverLevel = (ServerLevel) level; + if (player.isShiftKeyDown()) { + PortalGunSavedData.clearAllPortals(serverLevel.getServer(), player.getUUID()); + this.setLastSide(stack, null); + level.playSound(null, player.getX(), player.getY(), player.getZ(), PortalGunPortalEntity.sound("portal_fizzle", SoundEvents.ENDER_CHEST_CLOSE), SoundSource.PLAYERS, 0.6F, 1.0F); + return InteractionResultHolder.consume(stack); + } + boolean fired = this.firePortal(serverLevel, player, stack, PortalGunPortalEntity.PortalSide.ORANGE); + return fired ? InteractionResultHolder.consume(stack) : InteractionResultHolder.fail(stack); + } + + public void firePrimary(ServerLevel level, ServerPlayer player, ItemStack stack) { + this.firePortal(level, player, stack, PortalGunPortalEntity.PortalSide.BLUE); + } + + private boolean firePortal(ServerLevel level, Player player, ItemStack stack, PortalGunPortalEntity.PortalSide side) { + BlockHitResult hitResult = this.raycast(level, player); + if (hitResult.getType() == HitResult.Type.MISS) { + if (this.tryShootMoon(level, player, stack, side)) { + return true; + } + level.playSound(null, player.getX(), player.getY(), player.getZ(), PortalGunPortalEntity.sound("portal_gun_invalid_surface", SoundEvents.DISPENSER_FAIL), SoundSource.PLAYERS, 0.55F, 1.0F); + return false; + } + this.spawnShotTrail(level, player, hitResult.getLocation(), side); + Placement placement = this.findPlacement(level, player, hitResult); + if (placement == null) { + level.playSound(null, player.getX(), player.getY(), player.getZ(), PortalGunPortalEntity.sound("portal_gun_invalid_surface", SoundEvents.DISPENSER_FAIL), SoundSource.PLAYERS, 0.55F, 1.0F); + return false; + } + + PortalGunPortalEntity portal = new PortalGunPortalEntity(this.portalType.get(), level); + portal.configure(player.getUUID(), side, placement.facing(), placement.upAxis(), placement.supportOrigin()); + portal.moveTo(placement.center().x, placement.center().y, placement.center().z, placement.yaw(), 0.0F); + level.addFreshEntity(portal); + PortalGunSavedData.setPortal(level.getServer(), player.getUUID(), side, portal.getUUID()); + PortalGunPortalEntity other = this.findCounterpart(level, player.getUUID(), side); + if (other != null) { + portal.linkTo(other); + other.linkTo(portal); + } + this.setLastSide(stack, side); + this.triggerFireAnimation(level, player, stack); + stack.hurtAndBreak(1, player, EquipmentSlot.MAINHAND); + player.awardStat(Stats.ITEM_USED.get(this)); + player.getCooldowns().addCooldown(this, 6); + String firePath = side == PortalGunPortalEntity.PortalSide.BLUE ? "portal_gun_fire_blue" : "portal_gun_fire_orange"; + String openPath = side == PortalGunPortalEntity.PortalSide.BLUE ? "portal_open_blue" : "portal_open_orange"; + level.playSound(null, player.getX(), player.getY(), player.getZ(), PortalGunPortalEntity.sound(firePath, SoundEvents.BEACON_ACTIVATE), SoundSource.PLAYERS, 0.65F, side == PortalGunPortalEntity.PortalSide.BLUE ? 1.15F : 0.88F); + level.playSound(null, portal.getX(), portal.getY(), portal.getZ(), PortalGunPortalEntity.sound(openPath, SoundEvents.END_PORTAL_SPAWN), SoundSource.PLAYERS, 0.45F, side == PortalGunPortalEntity.PortalSide.BLUE ? 1.05F : 0.92F); + return true; + } + + private boolean tryShootMoon(ServerLevel level, Player player, ItemStack stack, PortalGunPortalEntity.PortalSide side) { + if (!level.dimensionType().hasSkyLight() || !level.isNight() || player.getXRot() > -40.0F) { + return false; + } + PortalGunPortalEntity counterpart = this.findCounterpart(level, player.getUUID(), side); + Vec3 spawnPos; + if (counterpart != null) { + spawnPos = counterpart.position(); + counterpart.discard(); + } else { + spawnPos = player.getEyePosition().add(player.getLookAngle().scale(20.0D)); + } + PortalGunBlackHoleEntity blackHole = new PortalGunBlackHoleEntity(this.blackHoleType.get(), level); + blackHole.configure(player.getUUID()); + blackHole.moveTo(spawnPos.x, spawnPos.y, spawnPos.z, 0.0F, 0.0F); + level.addFreshEntity(blackHole); + this.setLastSide(stack, side); + this.triggerFireAnimation(level, player, stack); + stack.hurtAndBreak(1, player, EquipmentSlot.MAINHAND); + player.awardStat(Stats.ITEM_USED.get(this)); + player.getCooldowns().addCooldown(this, 6); + level.playSound(null, spawnPos.x, spawnPos.y, spawnPos.z, PortalGunPortalEntity.sound("portal_gun_black_hole", SoundEvents.WARDEN_SONIC_BOOM), SoundSource.PLAYERS, 0.6F, 0.6F); + this.spawnShotTrail(level, player, spawnPos, side); + return true; + } + + private void spawnShotTrail(ServerLevel level, Player player, Vec3 endPos, PortalGunPortalEntity.PortalSide side) { + Vec3 start = player.getEyePosition(); + Vec3 delta = endPos.subtract(start); + double length = delta.length(); + int steps = (int) Math.max(4.0D, Math.min(48.0D, length * 2.0D)); + net.minecraft.core.particles.ParticleOptions particle = side == PortalGunPortalEntity.PortalSide.BLUE ? ParticleTypes.SOUL_FIRE_FLAME : ParticleTypes.FLAME; + for (int i = 0; i <= steps; i++) { + double t = (double) i / steps; + Vec3 point = start.add(delta.scale(t)); + level.sendParticles(particle, point.x, point.y, point.z, 1, 0.0D, 0.0D, 0.0D, 0.0D); + } + } + + private PortalGunPortalEntity findCounterpart(ServerLevel level, UUID owner, PortalGunPortalEntity.PortalSide side) { + PortalGunPortalEntity.PortalSide otherSide = side == PortalGunPortalEntity.PortalSide.BLUE ? PortalGunPortalEntity.PortalSide.ORANGE : PortalGunPortalEntity.PortalSide.BLUE; + Optional otherId = PortalGunSavedData.getPortalId(level.getServer(), owner, otherSide); + if (otherId.isEmpty()) { + return null; + } + Entity entity = level.getEntity(otherId.get()); + return entity instanceof PortalGunPortalEntity portal ? portal : null; + } + + private BlockHitResult raycast(Level level, Player player) { + Vec3 start = player.getEyePosition(); + Vec3 end = start.add(player.getLookAngle().scale(64.0D)); + return level.clip(new ClipContext(start, end, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, player)); + } + + private Placement findPlacement(Level level, Player player, BlockHitResult hitResult) { + Direction facing = hitResult.getDirection(); + Direction heightAxis; + float yaw; + if (facing.getAxis() == Direction.Axis.Y) { + heightAxis = Direction.fromYRot(player.getYRot()); + yaw = heightAxis.toYRot(); + } else { + heightAxis = Direction.UP; + yaw = facing.toYRot(); + } + BlockPos hitPos = hitResult.getBlockPos(); + for (int offset = -1; offset <= 0; offset++) { + BlockPos supportOrigin = hitPos.relative(heightAxis, offset); + if (this.canPlaceAt(level, supportOrigin, facing, heightAxis)) { + Vec3 firstCellCenter = supportOrigin.relative(facing).getCenter(); + Vec3 halfStep = Vec3.atLowerCornerOf(heightAxis.getNormal()).scale(0.5D); + Vec3 center = firstCellCenter.add(halfStep); + return new Placement(center, facing, heightAxis, yaw, supportOrigin); + } + } + return null; + } + + private boolean canPlaceAt(Level level, BlockPos supportOrigin, Direction facing, Direction heightAxis) { + for (int h = 0; h < 2; h++) { + BlockPos supportPos = supportOrigin.relative(heightAxis, h); + BlockPos airPos = supportPos.relative(facing); + BlockState supportState = level.getBlockState(supportPos); + BlockState airState = level.getBlockState(airPos); + FluidState fluidState = level.getFluidState(airPos); + if (!supportState.isFaceSturdy(level, supportPos, facing)) { + return false; + } + if (!airState.isAir() && !airState.canBeReplaced()) { + return false; + } + if (!fluidState.isEmpty()) { + return false; + } + } + return true; + } + + private void setLastSide(ItemStack stack, PortalGunPortalEntity.PortalSide side) { + if (side == null) { + net.minecraft.world.item.component.CustomData.update(DataComponents.CUSTOM_DATA, stack, tag -> tag.remove(LAST_SIDE_TAG)); + return; + } + net.minecraft.world.item.component.CustomData.update(DataComponents.CUSTOM_DATA, stack, tag -> tag.putString(LAST_SIDE_TAG, side.name())); + } + + private PortalGunPortalEntity.PortalSide getLastSide(ItemStack stack) { + net.minecraft.world.item.component.CustomData customData = stack.get(DataComponents.CUSTOM_DATA); + if (customData == null) { + return null; + } + String sideName = customData.copyTag().getString(LAST_SIDE_TAG); + if (PortalGunPortalEntity.PortalSide.BLUE.name().equals(sideName)) { + return PortalGunPortalEntity.PortalSide.BLUE; + } + if (PortalGunPortalEntity.PortalSide.ORANGE.name().equals(sideName)) { + return PortalGunPortalEntity.PortalSide.ORANGE; + } + return null; + } + + private void triggerFireAnimation(ServerLevel level, LivingEntity livingEntity, ItemStack stack) { + long animatableId = GeoItem.getOrAssignId(stack, level); + triggerAnim(livingEntity, animatableId, FIRE_CONTROLLER, "fire"); + } + + @Override + public UseAnim getUseAnimation(ItemStack stack) { + return UseAnim.NONE; + } + + @Override + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltipComponents, TooltipFlag tooltipFlag) { + tooltipComponents.add(Component.translatable("tooltip.antarchy.portal_gun.primary").withStyle(ChatFormatting.GRAY)); + tooltipComponents.add(Component.translatable("tooltip.antarchy.portal_gun.secondary").withStyle(ChatFormatting.GRAY)); + tooltipComponents.add(Component.translatable("tooltip.antarchy.portal_gun.reset").withStyle(ChatFormatting.DARK_GRAY)); + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, LED_CONTROLLER, state -> { + ItemStack stack = state.getData(DataTickets.ITEMSTACK); + PortalGunPortalEntity.PortalSide side = stack == null ? null : this.getLastSide(stack); + String animation = side == null ? "off_led" : side == PortalGunPortalEntity.PortalSide.BLUE ? "blue_led" : "orange_led"; + return state.setAndContinue(RawAnimation.begin().thenLoop(animation)); + })); + controllers.add(new AnimationController<>(this, FIRE_CONTROLLER, state -> PlayState.STOP) + .triggerableAnim("fire", RawAnimation.begin().then("fire", Animation.LoopType.PLAY_ONCE))); + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } + + @Override + public void createGeoRenderer(Consumer consumer) { + consumer.accept(new GeoRenderProvider() { + private AnimatedHeldItemRenderer renderer; + + @Override + public net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer getGeoItemRenderer() { + if (this.renderer == null) { + this.renderer = new AnimatedHeldItemRenderer<>(new ResourceBackedGeoItemModel<>(MODEL_LOCATION, TEXTURE_LOCATION, ANIMATION_LOCATION)); + } + return this.renderer; + } + }); + } + + private record Placement(Vec3 center, Direction facing, Direction upAxis, float yaw, BlockPos supportOrigin) { + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookItem.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookItem.java new file mode 100644 index 00000000..ebae707b --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookItem.java @@ -0,0 +1,52 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.entity.WormHookProjectileEntity; +import java.util.List; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; + +public final class WormHookItem extends Item { + public WormHookItem(Item.Properties properties) { + super(properties); + } + + @Override + public InteractionResultHolder use(Level level, net.minecraft.world.entity.player.Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + if (!(player instanceof ServerPlayer serverPlayer)) { + return InteractionResultHolder.sidedSuccess(stack, level.isClientSide()); + } + + if (WormHookTetherManager.hasTether(serverPlayer)) { + WormHookTetherManager.detach(serverPlayer); + return InteractionResultHolder.sidedSuccess(stack, false); + } + + WormHookProjectileEntity hook = new WormHookProjectileEntity(AntarchyObjects.WORM_HOOK_PROJECTILE.get(), player, level); + hook.shootFromRotation(player, player.getXRot(), player.getYRot(), 0.0F, 2.2F, 0.5F); + level.addFreshEntity(hook); + + stack.hurtAndBreak(1, serverPlayer, LivingEntity.getSlotForHand(hand)); + level.playSound(null, player.getX(), player.getY(), player.getZ(), SoundEvents.FISHING_BOBBER_THROW, SoundSource.PLAYERS, 0.7F, 0.9F); + + return InteractionResultHolder.sidedSuccess(stack, false); + } + + @Override + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltipComponents, TooltipFlag tooltipFlag) { + tooltipComponents.add(Component.translatable("tooltip.antarchy.worm_hook.throw").withStyle(ChatFormatting.GRAY)); + tooltipComponents.add(Component.translatable("tooltip.antarchy.worm_hook.reel").withStyle(ChatFormatting.DARK_GRAY)); + super.appendHoverText(stack, context, tooltipComponents, tooltipFlag); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookTetherManager.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookTetherManager.java new file mode 100644 index 00000000..c0bb2f67 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookTetherManager.java @@ -0,0 +1,166 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.content.entity.WormHookProjectileEntity; +import com.craisinlord.antarchy.content.util.WormHookRope; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.phys.Vec3; + +/** + * Server-authoritative swing physics for the worm hook: pulls the holding player taut against + * a rope anchored to a stuck {@link WormHookProjectileEntity}, wrapping the rope around block + * corners via {@link WormHookRope} so the swing radius shortens realistically when the player + * swings around an obstacle. + */ +public final class WormHookTetherManager { + private static final double DEFAULT_MAX_LEN = 24.0D; + private static final double MIN_LEN = 2.0D; + private static final double REEL_SPEED = 0.12D; + private static final double BREAK_RANGE_MULTIPLIER = 1.5D; + private static final double SNAP_BUFFER = 4.0D; + private static final double PULL_CORRECTION = 0.35D; + + private static final Map TETHERS = new ConcurrentHashMap<>(); + + private WormHookTetherManager() { + } + + public static boolean hasTether(ServerPlayer player) { + return TETHERS.containsKey(player.getUUID()); + } + + public static WormHookProjectileEntity getHook(ServerPlayer player) { + TetherState state = TETHERS.get(player.getUUID()); + if (state == null) { + return null; + } + Entity hook = player.serverLevel().getEntity(state.hookEntityId); + return hook instanceof WormHookProjectileEntity wormHook ? wormHook : null; + } + + public static boolean attach(ServerPlayer player, WormHookProjectileEntity hook) { + clear(player); + + double dist = player.getEyePosition().distanceTo(hook.position()); + if (dist < MIN_LEN) { + return false; + } + + TetherState state = new TetherState(hook.getId(), Math.max(DEFAULT_MAX_LEN, dist)); + state.rope = new WormHookRope(hook.position(), player.getEyePosition()); + TETHERS.put(player.getUUID(), state); + WormHookTetherSync.send(player, hook.getId()); + return true; + } + + public static void detach(ServerPlayer player) { + WormHookProjectileEntity hook = getHook(player); + clear(player); + if (hook != null) { + hook.removeHook(); + } + player.level().playSound(null, player.blockPosition(), SoundEvents.FISHING_BOBBER_RETRIEVE, SoundSource.PLAYERS, 0.7F, 1.2F); + } + + private static void clear(ServerPlayer player) { + TetherState removed = TETHERS.remove(player.getUUID()); + if (removed != null) { + WormHookTetherSync.send(player, -1); + } + } + + public static void tick(ServerPlayer player) { + TetherState state = TETHERS.get(player.getUUID()); + if (state == null) { + return; + } + + WormHookProjectileEntity hook = getHook(player); + if (!isValid(player, hook, state)) { + clear(player); + if (hook != null) { + hook.removeHook(); + } + return; + } + + if (player.isShiftKeyDown()) { + state.maxLen = Math.max(MIN_LEN, state.maxLen - REEL_SPEED); + } + + Vec3 anchor = hook.position(); + Vec3 playerEye = player.getEyePosition(); + + state.rope.update(hook, anchor, playerEye, state.maxLen); + + Vec3 pivot = state.rope.getPivot(); + double consumed = state.rope.getConsumedLength(); + double remaining = Math.max(0.5D, state.maxLen - consumed); + + Vec3 toPlayer = playerEye.subtract(pivot); + double dist = toPlayer.length(); + if (dist < 0.001D) { + return; + } + + if (dist <= remaining) { + return; + } + + double overshoot = dist - remaining; + if (overshoot > SNAP_BUFFER) { + clear(player); + hook.removeHook(); + player.level().playSound(null, player.blockPosition(), SoundEvents.ITEM_BREAK, SoundSource.PLAYERS, 0.8F, 0.9F); + return; + } + + Vec3 direction = toPlayer.scale(1.0D / dist); + Vec3 motion = player.getDeltaMovement(); + double outward = motion.dot(direction); + if (outward > 0) { + motion = motion.subtract(direction.scale(outward)); + } + + Vec3 correction = direction.scale(-overshoot * PULL_CORRECTION); + Vec3 newMotion = motion.add(correction); + newMotion = new Vec3(newMotion.x, Mth.clamp(newMotion.y, -1.0D, 1.0D), newMotion.z); + player.setDeltaMovement(newMotion); + player.hurtMarked = true; + player.fallDistance = 0; + } + + private static boolean isValid(ServerPlayer player, WormHookProjectileEntity hook, TetherState state) { + double breakRange = state.maxLen * BREAK_RANGE_MULTIPLIER; + return player.isAlive() + && hook != null + && hook.isAlive() + && !hook.isRemoved() + && hook.isStuck() + && player.level() == hook.level() + && isHoldingHook(player) + && player.distanceToSqr(hook) <= breakRange * breakRange; + } + + private static boolean isHoldingHook(ServerPlayer player) { + return player.getMainHandItem().getItem() instanceof WormHookItem + || player.getOffhandItem().getItem() instanceof WormHookItem; + } + + private static final class TetherState { + private final int hookEntityId; + private double maxLen; + private WormHookRope rope; + + private TetherState(int hookEntityId, double maxLen) { + this.hookEntityId = hookEntityId; + this.maxLen = maxLen; + } + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookTetherSync.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookTetherSync.java new file mode 100644 index 00000000..81e51d9a --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookTetherSync.java @@ -0,0 +1,22 @@ +package com.craisinlord.antarchy.content.item; + +import java.util.function.BiConsumer; +import net.minecraft.server.level.ServerPlayer; + +public final class WormHookTetherSync { + private static final BiConsumer NOOP = (player, hookId) -> { + }; + + private static volatile BiConsumer sink = NOOP; + + private WormHookTetherSync() { + } + + public static void setSink(BiConsumer sink) { + WormHookTetherSync.sink = sink == null ? NOOP : sink; + } + + public static void send(ServerPlayer player, int hookId) { + sink.accept(player, hookId); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/network/PortalGunPrimaryPayload.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/network/PortalGunPrimaryPayload.java new file mode 100644 index 00000000..e466a550 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/network/PortalGunPrimaryPayload.java @@ -0,0 +1,17 @@ +package com.craisinlord.antarchy.content.network; + +import com.craisinlord.antarchy.Antarchy; +import io.netty.buffer.ByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public record PortalGunPrimaryPayload() implements CustomPacketPayload { + public static final Type TYPE = new Type<>(ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "portal_gun_primary")); + public static final StreamCodec STREAM_CODEC = StreamCodec.unit(new PortalGunPrimaryPayload()); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/network/WormHookTetherPayload.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/network/WormHookTetherPayload.java new file mode 100644 index 00000000..19ce40d3 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/network/WormHookTetherPayload.java @@ -0,0 +1,26 @@ +package com.craisinlord.antarchy.content.network; + +import com.craisinlord.antarchy.Antarchy; +import io.netty.buffer.ByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public record WormHookTetherPayload(int playerId, int hookId) implements CustomPacketPayload { + public static final Type TYPE = + new Type<>(ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "worm_hook_tether")); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.VAR_INT, + WormHookTetherPayload::playerId, + ByteBufCodecs.VAR_INT, + WormHookTetherPayload::hookId, + WormHookTetherPayload::new + ); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunBlackHoleEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunBlackHoleEntity.java new file mode 100644 index 00000000..9be64f20 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunBlackHoleEntity.java @@ -0,0 +1,197 @@ +package com.craisinlord.antarchy.content.portalgun; + +import java.util.List; +import java.util.UUID; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import software.bernie.geckolib.animatable.GeoEntity; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; +import software.bernie.geckolib.animation.AnimationState; +import software.bernie.geckolib.animation.PlayState; +import software.bernie.geckolib.animation.RawAnimation; +import software.bernie.geckolib.util.GeckoLibUtil; + +public class PortalGunBlackHoleEntity extends Entity implements GeoEntity { + private static final RawAnimation OPEN_ANIM = RawAnimation.begin().thenPlay("open"); + private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("idle"); + private static final RawAnimation CLOSE_ANIM = RawAnimation.begin().thenPlay("close"); + private static final int OPEN_TICKS = 10; + private static final int CLOSE_TICKS = 12; + private static final int LIFETIME_TICKS = 20 * 12; + private static final double PULL_RADIUS = 6.0D; + private static final double CONSUME_RADIUS = 0.6D; + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + private UUID ownerId; + private int ageTicks; + private boolean closing; + + public PortalGunBlackHoleEntity(EntityType entityType, Level level) { + super(entityType, level); + this.setInvulnerable(true); + this.noPhysics = true; + this.noCulling = true; + } + + @Override + protected void defineSynchedData(net.minecraft.network.syncher.SynchedEntityData.Builder builder) { + } + + public void configure(UUID ownerId) { + this.ownerId = ownerId; + } + + @Override + public void tick() { + super.tick(); + this.ageTicks++; + this.setYRot(this.getYRot() + 6.0F); + if (this.level().isClientSide) { + return; + } + if (!(this.level() instanceof ServerLevel serverLevel)) { + return; + } + if (this.ageTicks >= LIFETIME_TICKS - CLOSE_TICKS) { + this.closing = true; + } + if (this.ageTicks >= LIFETIME_TICKS) { + this.discard(); + return; + } + this.pullNearby(serverLevel); + if (this.ageTicks % 10 == 0) { + serverLevel.playSound(null, this.blockPosition(), SoundEvents.PORTAL_AMBIENT, SoundSource.HOSTILE, 0.5F, 0.6F); + } + } + + private void pullNearby(ServerLevel level) { + AABB pullBox = this.getBoundingBox().inflate(PULL_RADIUS); + List nearby = level.getEntities(this, pullBox, this::canAffect); + for (Entity entity : nearby) { + Vec3 toCenter = this.position().subtract(entity.position()); + double distance = toCenter.length(); + if (distance < 1.0E-4D) { + continue; + } + if (distance <= CONSUME_RADIUS) { + this.consume(entity); + continue; + } + double strength = 0.09D * (1.0D - Math.min(distance / PULL_RADIUS, 1.0D)) + 0.02D; + Vec3 pull = toCenter.normalize().scale(strength); + entity.setDeltaMovement(entity.getDeltaMovement().add(pull)); + entity.hasImpulse = true; + entity.fallDistance = 0.0F; + } + } + + private boolean canAffect(Entity entity) { + if (!entity.isAlive() || entity instanceof PortalGunPortalEntity || entity instanceof PortalGunBlackHoleEntity) { + return false; + } + if (entity instanceof Player player && player.isCreative()) { + return false; + } + return entity instanceof ItemEntity || entity instanceof LivingEntity; + } + + private void consume(Entity entity) { + if (entity instanceof ItemEntity itemEntity) { + itemEntity.discard(); + } else if (entity instanceof Player) { + entity.teleportTo(this.getX(), this.getY(), this.getZ()); + entity.setDeltaMovement(Vec3.ZERO); + } else if (entity instanceof LivingEntity living) { + living.hurt(this.damageSources().magic(), 4.0F); + entity.setDeltaMovement(entity.getDeltaMovement().scale(0.1D)); + } + } + + @Override + public AABB getBoundingBoxForCulling() { + return this.getBoundingBox().inflate(2.0D); + } + + @Override + protected AABB makeBoundingBox() { + return new AABB(this.getX() - 0.6D, this.getY() - 0.6D, this.getZ() - 0.6D, this.getX() + 0.6D, this.getY() + 0.6D, this.getZ() + 0.6D); + } + + @Override + public void addAdditionalSaveData(CompoundTag tag) { + if (this.ownerId != null) { + tag.putUUID("OwnerId", this.ownerId); + } + tag.putInt("AgeTicks", this.ageTicks); + } + + @Override + public void readAdditionalSaveData(CompoundTag tag) { + if (tag.hasUUID("OwnerId")) { + this.ownerId = tag.getUUID("OwnerId"); + } + this.ageTicks = tag.getInt("AgeTicks"); + } + + @Override + public boolean isInvulnerableTo(DamageSource damageSource) { + return true; + } + + @Override + public boolean fireImmune() { + return true; + } + + @Override + public void lavaHurt() { + } + + @Override + public boolean isPushable() { + return false; + } + + @Override + public boolean canBeCollidedWith() { + return false; + } + + @Override + public boolean isPickable() { + return false; + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "black_hole_controller", 0, this::blackHoleController)); + } + + private PlayState blackHoleController(AnimationState state) { + if (this.closing) { + return state.setAndContinue(CLOSE_ANIM); + } + if (this.ageTicks < OPEN_TICKS) { + return state.setAndContinue(OPEN_ANIM); + } + return state.setAndContinue(IDLE_ANIM); + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunPortalEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunPortalEntity.java new file mode 100644 index 00000000..785004a9 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunPortalEntity.java @@ -0,0 +1,343 @@ +package com.craisinlord.antarchy.content.portalgun; + +import com.craisinlord.antarchy.Antarchy; +import java.util.List; +import java.util.UUID; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.syncher.EntityDataAccessor; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.network.syncher.SynchedEntityData; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import software.bernie.geckolib.animatable.GeoEntity; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; +import software.bernie.geckolib.animation.AnimationState; +import software.bernie.geckolib.animation.PlayState; +import software.bernie.geckolib.animation.RawAnimation; +import software.bernie.geckolib.util.GeckoLibUtil; + +public class PortalGunPortalEntity extends Entity implements GeoEntity { + public enum PortalSide { + BLUE, + ORANGE + } + + private static final EntityDataAccessor SIDE = SynchedEntityData.defineId(PortalGunPortalEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor FACING = SynchedEntityData.defineId(PortalGunPortalEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor UP_AXIS = SynchedEntityData.defineId(PortalGunPortalEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor CLOSING = SynchedEntityData.defineId(PortalGunPortalEntity.class, EntityDataSerializers.BOOLEAN); + private static final RawAnimation OPEN_ANIM = RawAnimation.begin().thenPlay("open"); + private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("idle"); + private static final RawAnimation CLOSE_ANIM = RawAnimation.begin().thenPlay("close"); + private static final int OPEN_TICKS = 10; + private static final int CLOSE_TICKS = 10; + private static final int MAX_LIFETIME_TICKS = 20 * 60 * 20; + private static final int TELEPORT_COOLDOWN_TICKS = 15; + private static final double HALF_WIDTH = 0.5D; + private static final double HALF_HEIGHT = 1.0D; + private static final double HALF_DEPTH = 0.35D; + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + private UUID ownerId; + private UUID linkedPortalId; + private int ageTicks; + private BlockPos supportOrigin = BlockPos.ZERO; + private static final java.util.Map TELEPORT_COOLDOWNS = new java.util.HashMap<>(); + + public PortalGunPortalEntity(EntityType entityType, Level level) { + super(entityType, level); + this.setInvulnerable(true); + this.noPhysics = true; + this.noCulling = true; + } + + @Override + protected void defineSynchedData(SynchedEntityData.Builder builder) { + builder.define(SIDE, PortalSide.BLUE.ordinal()); + builder.define(FACING, Direction.NORTH.get3DDataValue()); + builder.define(UP_AXIS, Direction.UP.get3DDataValue()); + builder.define(CLOSING, false); + } + + public void configure(UUID ownerId, PortalSide side, Direction facing, Direction upAxis, BlockPos supportOrigin) { + this.ownerId = ownerId; + this.entityData.set(SIDE, side.ordinal()); + this.entityData.set(FACING, facing.get3DDataValue()); + this.entityData.set(UP_AXIS, upAxis.get3DDataValue()); + this.supportOrigin = supportOrigin.immutable(); + } + + public void linkTo(PortalGunPortalEntity other) { + this.linkedPortalId = other.getUUID(); + } + + public PortalSide getPortalSide() { + int ordinal = this.entityData.get(SIDE); + return ordinal == PortalSide.ORANGE.ordinal() ? PortalSide.ORANGE : PortalSide.BLUE; + } + + public Direction getFacingDirection() { + return Direction.from3DDataValue(this.entityData.get(FACING)); + } + + public Direction getUpAxis() { + return Direction.from3DDataValue(this.entityData.get(UP_AXIS)); + } + + public Vec3 getNormalVec() { + return Vec3.atLowerCornerOf(this.getFacingDirection().getNormal()); + } + + public Vec3 getUpVec() { + return Vec3.atLowerCornerOf(this.getUpAxis().getNormal()); + } + + public Vec3 getWidthVec() { + return this.getNormalVec().cross(this.getUpVec()).normalize(); + } + + @Override + public void tick() { + super.tick(); + this.ageTicks++; + if (this.level().isClientSide) { + return; + } + if (!(this.level() instanceof ServerLevel serverLevel)) { + return; + } + if (this.ownerId == null || !this.isStillRegistered(serverLevel)) { + this.discard(); + return; + } + if (!this.hasValidSurface()) { + this.discard(); + return; + } + if (this.ageTicks >= MAX_LIFETIME_TICKS - CLOSE_TICKS) { + this.entityData.set(CLOSING, true); + } + if (this.ageTicks >= MAX_LIFETIME_TICKS) { + this.discard(); + return; + } + PortalGunPortalEntity linked = this.findLinkedPortal(serverLevel); + if (linked == null || !linked.isAlive()) { + return; + } + this.tickTeleport(linked); + } + + private boolean isStillRegistered(ServerLevel level) { + return this.ownerId != null && PortalGunSavedData.isRegistered(level.getServer(), this.ownerId, this.getPortalSide(), this.getUUID()); + } + + private boolean hasValidSurface() { + Direction facing = this.getFacingDirection(); + Direction heightAxis = this.getUpAxis(); + for (int h = 0; h < 2; h++) { + BlockPos supportPos = this.supportOrigin.relative(heightAxis, h); + BlockPos airPos = supportPos.relative(facing); + BlockState supportState = this.level().getBlockState(supportPos); + BlockState airState = this.level().getBlockState(airPos); + FluidState fluidState = this.level().getFluidState(airPos); + if (!supportState.isFaceSturdy(this.level(), supportPos, facing)) { + return false; + } + if (!airState.isAir() && !airState.canBeReplaced()) { + return false; + } + if (!fluidState.isEmpty()) { + return false; + } + } + return true; + } + + private void tickTeleport(PortalGunPortalEntity linked) { + List entities = this.level().getEntities(this, this.getBoundingBox().inflate(0.75D), this::canTeleportEntity); + for (Entity entity : entities) { + if (this.isInsidePortal(entity.position())) { + this.teleportEntity(entity, linked); + } + } + } + + private boolean canTeleportEntity(Entity entity) { + if (!entity.isAlive() || entity instanceof PortalGunPortalEntity || entity.isPassenger() || entity.isVehicle()) { + return false; + } + long gameTime = this.level().getGameTime(); + long cooldownUntil = TELEPORT_COOLDOWNS.getOrDefault(entity.getUUID(), 0L); + if (cooldownUntil <= gameTime) { + TELEPORT_COOLDOWNS.remove(entity.getUUID()); + return true; + } + return false; + } + + private boolean isInsidePortal(Vec3 position) { + Vec3 relative = position.subtract(this.position()); + double horizontal = relative.dot(this.getWidthVec()); + double vertical = relative.dot(this.getUpVec()); + double depth = Math.abs(relative.dot(this.getNormalVec())); + return Math.abs(horizontal) <= HALF_WIDTH && Math.abs(vertical) <= HALF_HEIGHT && depth <= HALF_DEPTH; + } + + private void teleportEntity(Entity entity, PortalGunPortalEntity destination) { + Vec3 sourceNormal = this.getNormalVec(); + Vec3 sourceUp = this.getUpVec(); + Vec3 sourceWidth = this.getWidthVec(); + Vec3 destinationNormal = destination.getNormalVec(); + Vec3 destinationUp = destination.getUpVec(); + Vec3 destinationWidth = destination.getWidthVec(); + Vec3 motion = entity.getDeltaMovement(); + double widthComponent = motion.dot(sourceWidth); + double upComponent = motion.dot(sourceUp); + double forward = -motion.dot(sourceNormal); + Vec3 transformedMotion = destinationWidth.scale(widthComponent).add(destinationUp.scale(upComponent)).add(destinationNormal.scale(forward)); + Vec3 exitPos = destination.position().add(destinationNormal.scale(1.0D)); + TELEPORT_COOLDOWNS.put(entity.getUUID(), this.level().getGameTime() + TELEPORT_COOLDOWN_TICKS); + if (entity instanceof ServerPlayer player && destination.level() instanceof ServerLevel destinationLevel) { + player.teleportTo(destinationLevel, exitPos.x, exitPos.y, exitPos.z, player.getYRot(), player.getXRot()); + } else { + entity.teleportTo(exitPos.x, exitPos.y, exitPos.z); + } + entity.setDeltaMovement(transformedMotion); + entity.hasImpulse = true; + entity.fallDistance = 0.0F; + } + + private PortalGunPortalEntity findLinkedPortal(ServerLevel level) { + if (this.linkedPortalId == null) { + return null; + } + Entity entity = level.getEntity(this.linkedPortalId); + return entity instanceof PortalGunPortalEntity portal ? portal : null; + } + + @Override + public AABB getBoundingBoxForCulling() { + return this.getBoundingBox().inflate(1.5D); + } + + @Override + protected AABB makeBoundingBox() { + Vec3 widthVec = this.getWidthVec(); + Vec3 upVec = this.getUpVec(); + Vec3 normalVec = this.getNormalVec(); + double halfX = HALF_WIDTH * Math.abs(widthVec.x) + HALF_HEIGHT * Math.abs(upVec.x) + HALF_DEPTH * Math.abs(normalVec.x); + double halfY = HALF_WIDTH * Math.abs(widthVec.y) + HALF_HEIGHT * Math.abs(upVec.y) + HALF_DEPTH * Math.abs(normalVec.y); + double halfZ = HALF_WIDTH * Math.abs(widthVec.z) + HALF_HEIGHT * Math.abs(upVec.z) + HALF_DEPTH * Math.abs(normalVec.z); + return new AABB(this.getX() - halfX, this.getY() - halfY, this.getZ() - halfZ, this.getX() + halfX, this.getY() + halfY, this.getZ() + halfZ); + } + + @Override + public void addAdditionalSaveData(CompoundTag tag) { + if (this.ownerId != null) { + tag.putUUID("OwnerId", this.ownerId); + } + if (this.linkedPortalId != null) { + tag.putUUID("LinkedPortalId", this.linkedPortalId); + } + tag.putInt("AgeTicks", this.ageTicks); + tag.putInt("Side", this.getPortalSide().ordinal()); + tag.putInt("Facing", this.getFacingDirection().get3DDataValue()); + tag.putInt("SupportX", this.supportOrigin.getX()); + tag.putInt("SupportY", this.supportOrigin.getY()); + tag.putInt("SupportZ", this.supportOrigin.getZ()); + } + + @Override + public void readAdditionalSaveData(CompoundTag tag) { + if (tag.hasUUID("OwnerId")) { + this.ownerId = tag.getUUID("OwnerId"); + } + if (tag.hasUUID("LinkedPortalId")) { + this.linkedPortalId = tag.getUUID("LinkedPortalId"); + } + this.ageTicks = tag.getInt("AgeTicks"); + this.entityData.set(SIDE, tag.getInt("Side")); + this.entityData.set(FACING, tag.getInt("Facing")); + this.supportOrigin = new BlockPos(tag.getInt("SupportX"), tag.getInt("SupportY"), tag.getInt("SupportZ")); + } + + @Override + public void remove(Entity.RemovalReason reason) { + if (!this.level().isClientSide && this.ownerId != null && this.level() instanceof ServerLevel serverLevel) { + PortalGunSavedData.clearPortal(serverLevel.getServer(), this.ownerId, this.getPortalSide(), this.getUUID()); + } + super.remove(reason); + } + + @Override + public boolean isInvulnerableTo(DamageSource damageSource) { + return true; + } + + @Override + public boolean fireImmune() { + return true; + } + + @Override + public void lavaHurt() { + } + + @Override + public boolean isPushable() { + return false; + } + + @Override + public boolean canBeCollidedWith() { + return false; + } + + @Override + public boolean isPickable() { + return false; + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "portal_controller", 0, this::portalController)); + } + + private PlayState portalController(AnimationState state) { + state.getController().setAnimationSpeed(this.entityData.get(CLOSING) || this.ageTicks < OPEN_TICKS ? 4.0D : 1.0D); + if (this.entityData.get(CLOSING)) { + return state.setAndContinue(CLOSE_ANIM); + } + if (this.ageTicks < OPEN_TICKS) { + return state.setAndContinue(OPEN_ANIM); + } + return state.setAndContinue(IDLE_ANIM); + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } + + public static SoundEvent sound(String path, SoundEvent fallback) { + return BuiltInRegistries.SOUND_EVENT.getOptional(ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, path)).orElse(fallback); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunSavedData.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunSavedData.java new file mode 100644 index 00000000..5f06a112 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunSavedData.java @@ -0,0 +1,136 @@ +package com.craisinlord.antarchy.content.portalgun; + +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.level.saveddata.SavedData; + +public final class PortalGunSavedData extends SavedData { + private static final String ID = "antarchy_portal_gun_pairs"; + private static final String ENTRIES_KEY = "Entries"; + private static final String OWNER_KEY = "Owner"; + private static final String BLUE_KEY = "Blue"; + private static final String ORANGE_KEY = "Orange"; + private final Map pairs = new HashMap<>(); + + public static PortalGunSavedData create() { + return new PortalGunSavedData(); + } + + public static PortalGunSavedData load(CompoundTag tag, HolderLookup.Provider registries) { + PortalGunSavedData data = new PortalGunSavedData(); + for (net.minecraft.nbt.Tag rawEntry : tag.getList(ENTRIES_KEY, net.minecraft.nbt.Tag.TAG_COMPOUND)) { + CompoundTag entryTag = (CompoundTag) rawEntry; + UUID owner = entryTag.getUUID(OWNER_KEY); + UUID blue = entryTag.hasUUID(BLUE_KEY) ? entryTag.getUUID(BLUE_KEY) : null; + UUID orange = entryTag.hasUUID(ORANGE_KEY) ? entryTag.getUUID(ORANGE_KEY) : null; + data.pairs.put(owner, new PairRecord(blue, orange)); + } + return data; + } + + @Override + public CompoundTag save(CompoundTag tag, HolderLookup.Provider registries) { + ListTag entries = new ListTag(); + for (Map.Entry entry : this.pairs.entrySet()) { + CompoundTag entryTag = new CompoundTag(); + entryTag.putUUID(OWNER_KEY, entry.getKey()); + if (entry.getValue().bluePortalId() != null) { + entryTag.putUUID(BLUE_KEY, entry.getValue().bluePortalId()); + } + if (entry.getValue().orangePortalId() != null) { + entryTag.putUUID(ORANGE_KEY, entry.getValue().orangePortalId()); + } + entries.add(entryTag); + } + tag.put(ENTRIES_KEY, entries); + return tag; + } + + private static PortalGunSavedData get(MinecraftServer server) { + return server.overworld().getDataStorage().computeIfAbsent( + new SavedData.Factory<>(PortalGunSavedData::create, PortalGunSavedData::load, null), + ID + ); + } + + public static Optional getPortalId(MinecraftServer server, UUID owner, PortalGunPortalEntity.PortalSide side) { + PairRecord record = get(server).pairs.get(owner); + if (record == null) { + return Optional.empty(); + } + return Optional.ofNullable(side == PortalGunPortalEntity.PortalSide.BLUE ? record.bluePortalId() : record.orangePortalId()); + } + + public static boolean isRegistered(MinecraftServer server, UUID owner, PortalGunPortalEntity.PortalSide side, UUID portalId) { + return getPortalId(server, owner, side).map(portalId::equals).orElse(false); + } + + public static void setPortal(MinecraftServer server, UUID owner, PortalGunPortalEntity.PortalSide side, UUID portalId) { + PortalGunSavedData data = get(server); + PairRecord current = data.pairs.getOrDefault(owner, new PairRecord(null, null)); + PairRecord updated = side == PortalGunPortalEntity.PortalSide.BLUE + ? new PairRecord(portalId, current.orangePortalId()) + : new PairRecord(current.bluePortalId(), portalId); + if (updated.bluePortalId() == null && updated.orangePortalId() == null) { + data.pairs.remove(owner); + } else { + data.pairs.put(owner, updated); + } + data.setDirty(); + } + + public static void clearPortal(MinecraftServer server, UUID owner, PortalGunPortalEntity.PortalSide side, UUID portalId) { + PortalGunSavedData data = get(server); + PairRecord current = data.pairs.get(owner); + if (current == null) { + return; + } + UUID blue = current.bluePortalId(); + UUID orange = current.orangePortalId(); + if (side == PortalGunPortalEntity.PortalSide.BLUE && portalId.equals(blue)) { + blue = null; + } + if (side == PortalGunPortalEntity.PortalSide.ORANGE && portalId.equals(orange)) { + orange = null; + } + if (blue == null && orange == null) { + data.pairs.remove(owner); + } else { + data.pairs.put(owner, new PairRecord(blue, orange)); + } + data.setDirty(); + } + + public static void clearAllPortals(MinecraftServer server, UUID owner) { + PortalGunSavedData data = get(server); + PairRecord current = data.pairs.remove(owner); + data.setDirty(); + if (current == null) { + return; + } + discardIfLoaded(server, current.bluePortalId()); + discardIfLoaded(server, current.orangePortalId()); + } + + private static void discardIfLoaded(MinecraftServer server, UUID portalId) { + if (portalId == null) { + return; + } + for (ServerLevel level : server.getAllLevels()) { + if (level.getEntity(portalId) instanceof PortalGunPortalEntity portal) { + portal.discard(); + return; + } + } + } + + private record PairRecord(UUID bluePortalId, UUID orangePortalId) { + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/util/WormHookRope.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/util/WormHookRope.java new file mode 100644 index 00000000..6912b529 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/util/WormHookRope.java @@ -0,0 +1,200 @@ +package com.craisinlord.antarchy.content.util; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.ClipContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; + +import java.util.ArrayList; +import java.util.List; + +/** + * Tracks the path of a taut rope from a fixed anchor point to a moving end point (the + * player's eyes), bending around block corners when the straight-line path would otherwise + * clip through terrain. The anchor never moves (the worm hook is stuck in a block), so this + * only needs to add/remove bends on the player's side of the rope. + * + * Ported from the corner-wrapping algorithm in Yyon's GrappleMod (GPL-3.0), adapted from a + * custom vector class to vanilla Vec3 and from a moving-hook/moving-player pair to a fixed + * anchor. + */ +public final class WormHookRope { + private static final double BEND_OFFSET = 0.05D; + private static final double INTO_BLOCK = 0.05D; + private static final int MAX_RECURSIONS = 10; + + private final List points = new ArrayList<>(); + private final List bottomSides = new ArrayList<>(); + private final List topSides = new ArrayList<>(); + + private Vec3 prevEnd; + private double ropeLength; + + public WormHookRope(Vec3 anchor, Vec3 end) { + points.add(anchor); + points.add(end); + bottomSides.add(null); + bottomSides.add(null); + topSides.add(null); + topSides.add(null); + this.prevEnd = end; + } + + /** Recomputes the bend list for the current anchor/end positions. Anchor must stay constant. */ + public void update(Entity context, Vec3 anchor, Vec3 end, double ropeLength) { + this.ropeLength = ropeLength; + Level level = context.level(); + + points.set(0, anchor); + points.set(points.size() - 1, end); + + // Unwind bends the rope has swung clear of. + while (points.size() > 2) { + int index = points.size() - 2; + Vec3 closest = points.get(index); + Direction bottomSide = bottomSides.get(index); + Direction topSide = topSides.get(index); + Vec3 ropeVec = end.subtract(closest); + Vec3 beforePoint = points.get(index - 1); + Vec3 edgeVec = normal(bottomSide).cross(normal(topSide)); + Vec3 planeNormal = beforePoint.subtract(closest).cross(edgeVec); + + if (planeNormal.lengthSqr() > 1.0E-9D && ropeVec.dot(planeNormal) > 0) { + remove(index); + } else { + break; + } + } + + Vec3 closest = points.get(points.size() - 2); + Vec3 prevClosest = points.size() == 2 ? anchor : closest; + updateSegment(level, context, closest, prevClosest, end, prevEnd, points.size() - 1, 0); + + this.prevEnd = end; + } + + private void updateSegment(Level level, Entity context, Vec3 top, Vec3 prevTop, Vec3 bottom, Vec3 prevBottom, int index, int recursions) { + BlockHitResult bottomHit = rayTraceBlocks(level, context, bottom, top); + if (bottomHit == null) { + return; + } + if (rayTraceBlocks(level, context, prevBottom, prevTop) != null) { + return; + } + + Vec3 bottomHitVec = bottomHit.getLocation(); + Direction bottomSide = bottomHit.getDirection(); + Vec3 bottomNormal = normal(bottomSide); + + double prevRopeLen = prevTop.subtract(prevBottom).length(); + + Vec3 cornerBound1 = bottomHitVec.add(changeLen(bottomNormal, -INTO_BLOCK)); + + Vec3 boundOption1 = linePlaneIntersection(prevTop, prevBottom, cornerBound1, bottomNormal); + Vec3 boundOption2 = linePlaneIntersection(top, prevTop, cornerBound1, bottomNormal); + Vec3 boundOption3 = linePlaneIntersection(prevBottom, bottom, cornerBound1, bottomNormal); + + for (Vec3 cornerBound2 : new Vec3[]{boundOption1, boundOption2, boundOption3}) { + if (cornerBound2 == null) { + continue; + } + + BlockHitResult cornerHit = rayTraceBlocks(level, context, cornerBound2, cornerBound1); + if (cornerHit == null) { + continue; + } + + Vec3 cornerHitPos = cornerHit.getLocation(); + Direction cornerSide = cornerHit.getDirection(); + + if (cornerSide == bottomSide || cornerSide.getOpposite() == bottomSide) { + continue; + } + + Vec3 actualCorner = cornerHitPos.add(changeLen(bottomNormal, INTO_BLOCK)); + Vec3 bend = actualCorner.add(changeLen(bottomNormal, BEND_OFFSET)).add(changeLen(normal(cornerSide), BEND_OFFSET)); + Vec3 topRopeVec = bend.subtract(top); + Vec3 bottomRopeVec = bend.subtract(bottom); + + if (topRopeVec.length() < 0.05D && bottomSides.get(index - 1) == bottomSide && topSides.get(index - 1) == cornerSide) { + continue; + } + if (bottomRopeVec.length() < 0.05D && bottomSides.get(index) == bottomSide && topSides.get(index) == cornerSide) { + continue; + } + + points.add(index, bend); + bottomSides.add(index, bottomSide); + topSides.add(index, cornerSide); + + if (getConsumedLength() + 0.2D > this.ropeLength) { + remove(index); + continue; + } + + double newRopeLen = topRopeVec.length() + bottomRopeVec.length(); + double prevTopToBend = newRopeLen <= 0 ? 0 : topRopeVec.length() * prevRopeLen / newRopeLen; + Vec3 prevBend = prevTop.add(changeLen(prevBottom.subtract(prevTop), prevTopToBend)); + + if (recursions < MAX_RECURSIONS) { + updateSegment(level, context, top, prevTop, bend, prevBend, index, recursions + 1); + } + break; + } + } + + private void remove(int index) { + points.remove(index); + bottomSides.remove(index); + topSides.remove(index); + } + + /** The pivot point closest to the moving end: either the anchor, or the last bend before it. */ + public Vec3 getPivot() { + return points.get(points.size() - 2); + } + + /** Rope length used up getting from the anchor to the pivot (0 if the rope has no bends). */ + public double getConsumedLength() { + double dist = 0; + for (int i = 0; i < points.size() - 2; i++) { + dist += points.get(i).subtract(points.get(i + 1)).length(); + } + return dist; + } + + public List points() { + return points; + } + + private static Vec3 normal(Direction direction) { + if (direction == null) { + return Vec3.ZERO; + } + return new Vec3(direction.getStepX(), direction.getStepY(), direction.getStepZ()); + } + + private static Vec3 changeLen(Vec3 v, double len) { + double oldLen = v.length(); + return oldLen == 0 ? v : v.scale(len / oldLen); + } + + private static Vec3 linePlaneIntersection(Vec3 linePoint1, Vec3 linePoint2, Vec3 planePoint, Vec3 planeNormal) { + Vec3 lineVec = linePoint2.subtract(linePoint1); + double denom = lineVec.dot(planeNormal); + if (denom == 0) { + return null; + } + double d = planePoint.subtract(linePoint1).dot(planeNormal) / denom; + return linePoint1.add(lineVec.scale(d)); + } + + private static BlockHitResult rayTraceBlocks(Level level, Entity context, Vec3 from, Vec3 to) { + BlockHitResult result = level.clip(new ClipContext(from, to, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, context)); + return result.getType() == HitResult.Type.MISS ? null : result; + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NadirTreeConfiguration.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NadirTreeConfiguration.java new file mode 100644 index 00000000..df598f8a --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NadirTreeConfiguration.java @@ -0,0 +1,27 @@ +package com.craisinlord.antarchy.content.worldgen.thoraxis; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.util.valueproviders.IntProvider; +import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.stateproviders.BlockStateProvider; + +public record NadirTreeConfiguration( + BlockStateProvider trunkProvider, + BlockStateProvider foliageProvider, + IntProvider height, + IntProvider bottomRadius, + IntProvider branchCount, + IntProvider branchLength, + IntProvider veilRadius +) implements FeatureConfiguration { + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + BlockStateProvider.CODEC.fieldOf("trunk_provider").forGetter(NadirTreeConfiguration::trunkProvider), + BlockStateProvider.CODEC.fieldOf("foliage_provider").forGetter(NadirTreeConfiguration::foliageProvider), + IntProvider.codec(6, 48).fieldOf("height").forGetter(NadirTreeConfiguration::height), + IntProvider.codec(1, 6).fieldOf("bottom_radius").forGetter(NadirTreeConfiguration::bottomRadius), + IntProvider.codec(1, 12).fieldOf("branch_count").forGetter(NadirTreeConfiguration::branchCount), + IntProvider.codec(2, 16).fieldOf("branch_length").forGetter(NadirTreeConfiguration::branchLength), + IntProvider.codec(1, 8).fieldOf("veil_radius").forGetter(NadirTreeConfiguration::veilRadius) + ).apply(instance, NadirTreeConfiguration::new)); +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NadirTreeFeature.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NadirTreeFeature.java new file mode 100644 index 00000000..762aac66 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NadirTreeFeature.java @@ -0,0 +1,281 @@ +package com.craisinlord.antarchy.content.worldgen.thoraxis; + +import com.mojang.serialization.Codec; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.LevelWriter; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.block.LeavesBlock; +import net.minecraft.world.level.block.RotatedPillarBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; + +public class NadirTreeFeature extends Feature { + public NadirTreeFeature(Codec codec) { + super(codec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + WorldGenLevel level = context.level(); + BlockPos origin = context.origin(); + BlockPos supportPos = origin.above(); + if (!level.getBlockState(supportPos).isFaceSturdy(level, supportPos, Direction.DOWN)) { + return false; + } + + RandomSource random = context.random(); + NadirTreeConfiguration config = context.config(); + int height = config.height().sample(random); + int bottomRadius = config.bottomRadius().sample(random); + int branchCount = config.branchCount().sample(random); + int branchLength = config.branchLength().sample(random); + int veilRadius = config.veilRadius().sample(random); + + List spine = buildSpine(origin, height, random); + Map logs = new LinkedHashMap<>(); + Set foliage = new LinkedHashSet<>(); + + placeTrunk(spine, bottomRadius, logs, random); + placeLowerMass(spine, bottomRadius, logs, foliage, random, veilRadius); + placeBranches(spine, branchCount, branchLength, logs, foliage, random, veilRadius); + placeVeilCurtains(spine, foliage, random, veilRadius); + + if (logs.isEmpty()) { + return false; + } + if (!canPlace(level, logs.keySet(), foliage)) { + return false; + } + + for (Map.Entry entry : logs.entrySet()) { + BlockPos pos = entry.getKey(); + BlockState state = config.trunkProvider().getState(random, pos); + if (state.hasProperty(RotatedPillarBlock.AXIS)) { + state = state.setValue(RotatedPillarBlock.AXIS, entry.getValue()); + } + setBlock(level, pos, state); + } + + for (BlockPos pos : foliage) { + if (!logs.containsKey(pos)) { + setBlock(level, pos, config.foliageProvider().getState(random, pos)); + } + } + + return true; + } + + private List buildSpine(BlockPos origin, int height, RandomSource random) { + List spine = new ArrayList<>(height); + BlockPos current = origin; + Direction lateral = Direction.Plane.HORIZONTAL.getRandomDirection(random); + for (int step = 0; step < height; step++) { + if (step > 1 && random.nextFloat() < 0.42F) { + if (random.nextFloat() < 0.3F) { + lateral = lateral.getClockWise(); + } else if (random.nextFloat() < 0.3F) { + lateral = lateral.getCounterClockWise(); + } + current = current.relative(lateral); + } + if (step > 0) { + current = current.below(); + } + spine.add(current); + } + return spine; + } + + private void placeTrunk(List spine, int bottomRadius, Map logs, RandomSource random) { + for (int index = 0; index < spine.size(); index++) { + BlockPos center = spine.get(index); + float progress = spine.size() == 1 ? 1.0F : index / (float) (spine.size() - 1); + int radius = Mth.clamp(Math.round(progress * bottomRadius), 0, bottomRadius); + fillTrunkLayer(center, radius, logs, random); + } + } + + private void fillTrunkLayer(BlockPos center, int radius, Map logs, RandomSource random) { + if (radius <= 0) { + putLog(logs, center, Direction.Axis.Y); + return; + } + + int radiusSq = radius * radius; + for (int dx = -radius; dx <= radius; dx++) { + for (int dz = -radius; dz <= radius; dz++) { + int dist = dx * dx + dz * dz; + if (dist > radiusSq + 1) { + continue; + } + if (dist > radiusSq - radius && random.nextFloat() < 0.2F) { + continue; + } + putLog(logs, center.offset(dx, 0, dz), Direction.Axis.Y); + } + } + } + + private void placeLowerMass( + List spine, + int bottomRadius, + Map logs, + Set foliage, + RandomSource random, + int veilRadius + ) { + int start = Math.max(0, spine.size() - Math.max(3, bottomRadius + 2)); + for (int index = start; index < spine.size(); index++) { + BlockPos center = spine.get(index); + int extraRadius = Math.max(1, bottomRadius - Math.max(0, spine.size() - 1 - index)); + for (int dy = 0; dy <= Math.min(2, index - start); dy++) { + fillTrunkLayer(center.below(dy), extraRadius, logs, random); + } + placeVeilCluster(foliage, center.below(), Math.max(1, veilRadius), random, true); + } + } + + private void placeBranches( + List spine, + int branchCount, + int branchLength, + Map logs, + Set foliage, + RandomSource random, + int veilRadius + ) { + int minAttach = Math.min(spine.size() - 1, Math.max(1, spine.size() / 4)); + int maxAttach = Math.max(minAttach, spine.size() - 2); + for (int i = 0; i < branchCount; i++) { + int attachIndex = Mth.nextInt(random, minAttach, maxAttach); + BlockPos attach = spine.get(attachIndex); + Direction direction = Direction.Plane.HORIZONTAL.getRandomDirection(random); + BlockPos cursor = attach; + BlockPos previous = attach; + int length = Math.max(2, branchLength - random.nextInt(Math.max(1, branchLength / 2 + 1))); + + for (int step = 0; step < length; step++) { + cursor = cursor.relative(direction); + if (step > 0 || random.nextFloat() < 0.85F) { + cursor = cursor.below(); + } + if (random.nextFloat() < 0.25F) { + direction = random.nextBoolean() ? direction.getClockWise() : direction.getCounterClockWise(); + } + putLog(logs, cursor, axisForSegment(previous, cursor)); + if (random.nextFloat() < 0.35F) { + putLog(logs, cursor.below(), Direction.Axis.Y); + } + previous = cursor; + } + + placeVeilCluster(foliage, cursor, veilRadius + random.nextInt(2), random, true); + placeVeilCluster(foliage, cursor.below(1 + random.nextInt(2)), Math.max(1, veilRadius - 1), random, true); + + if (random.nextFloat() < 0.45F) { + BlockPos fork = cursor; + Direction forkDirection = random.nextBoolean() ? direction.getClockWise() : direction.getCounterClockWise(); + int forkLength = Math.max(2, length / 2); + for (int step = 0; step < forkLength; step++) { + BlockPos next = fork.relative(forkDirection).below(); + putLog(logs, next, axisForSegment(fork, next)); + fork = next; + } + placeVeilCluster(foliage, fork, Math.max(1, veilRadius - 1), random, true); + } + } + } + + private void placeVeilCurtains(List spine, Set foliage, RandomSource random, int veilRadius) { + for (int index = 1; index < spine.size(); index++) { + if (random.nextFloat() > 0.33F) { + continue; + } + BlockPos anchor = spine.get(index); + Direction side = Direction.Plane.HORIZONTAL.getRandomDirection(random); + BlockPos start = anchor.relative(side); + int length = 2 + random.nextInt(Math.max(2, veilRadius + 1)); + for (int i = 0; i < length; i++) { + BlockPos pos = start.below(i); + foliage.add(pos); + if (random.nextFloat() < 0.22F) { + foliage.add(pos.relative(side.getClockWise())); + } + } + } + } + + private void placeVeilCluster(Set foliage, BlockPos center, int radius, RandomSource random, boolean stretchDown) { + int radiusSq = radius * radius; + for (int dx = -radius; dx <= radius; dx++) { + for (int dz = -radius; dz <= radius; dz++) { + for (int dy = -radius; dy <= 1; dy++) { + int adjustedDy = stretchDown ? Math.max(0, -dy) : Math.abs(dy); + int dist = dx * dx + dz * dz + adjustedDy * adjustedDy; + if (dist > radiusSq + 1) { + continue; + } + if (dist > radiusSq - radius && random.nextFloat() < 0.28F) { + continue; + } + foliage.add(center.offset(dx, dy, dz)); + } + } + } + } + + private boolean canPlace(WorldGenLevel level, Set logs, Set foliage) { + for (BlockPos pos : logs) { + if (!canReplace(level, pos)) { + return false; + } + } + for (BlockPos pos : foliage) { + if (logs.contains(pos)) { + continue; + } + if (!canReplace(level, pos)) { + return false; + } + } + return true; + } + + private void putLog(Map logs, BlockPos pos, Direction.Axis axis) { + Direction.Axis existing = logs.get(pos); + if (existing == null || existing == Direction.Axis.Y) { + logs.put(pos, axis); + } + } + + private static Direction.Axis axisForSegment(BlockPos from, BlockPos to) { + int dx = Math.abs(to.getX() - from.getX()); + int dy = Math.abs(to.getY() - from.getY()); + int dz = Math.abs(to.getZ() - from.getZ()); + if (dy >= dx && dy >= dz) { + return Direction.Axis.Y; + } + return dx >= dz ? Direction.Axis.X : Direction.Axis.Z; + } + + private static boolean canReplace(WorldGenLevel level, BlockPos pos) { + BlockState state = level.getBlockState(pos); + return state.isAir() || state.canBeReplaced() || state.getBlock() instanceof LeavesBlock; + } + + private void setBlock(WorldGenLevel level, BlockPos pos, BlockState state) { + if (level instanceof LevelWriter writer) { + setBlock(writer, pos, state); + } + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NadirTreeGrowers.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NadirTreeGrowers.java new file mode 100644 index 00000000..e1d13ed6 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NadirTreeGrowers.java @@ -0,0 +1,18 @@ +package com.craisinlord.antarchy.content.worldgen.thoraxis; + +import com.craisinlord.antarchy.Antarchy; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; + +public final class NadirTreeGrowers { + public static final ResourceKey> NADIR_TREE = featureKey("nadir_tree"); + + private NadirTreeGrowers() { + } + + private static ResourceKey> featureKey(String path) { + return ResourceKey.create(Registries.CONFIGURED_FEATURE, ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, path)); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/GroundPathNavigationMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/GroundPathNavigationMixin.java index 2c6a226f..701e42bf 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/GroundPathNavigationMixin.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/GroundPathNavigationMixin.java @@ -5,6 +5,7 @@ import com.craisinlord.antarchy.content.gravity.GravityWalkNodeEvaluator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import net.minecraft.world.entity.ai.navigation.GroundPathNavigation; +import net.minecraft.world.level.pathfinder.NodeEvaluator; import net.minecraft.world.level.pathfinder.PathFinder; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -20,7 +21,8 @@ public abstract class GroundPathNavigationMixin { @Inject(method = "createPathFinder", at = @At("HEAD"), cancellable = true) private void antarchy$useGravityEvaluator(int maxVisitedNodes, CallbackInfoReturnable cir) { - var mob = ((PathNavigationAccessor) (Object) this).antarchy$getMob(); + var accessor = (PathNavigationAccessor) (Object) this; + var mob = accessor.antarchy$getMob(); if (AntarchyGravityApi.isGravityInverted(mob)) { LOGGER.debug( "[Path] swap evaluator mob={} maxVisitedNodes={}", @@ -29,6 +31,8 @@ public abstract class GroundPathNavigationMixin { ); } - cir.setReturnValue(new PathFinder(new GravityWalkNodeEvaluator(), maxVisitedNodes)); + NodeEvaluator evaluator = new GravityWalkNodeEvaluator(); + accessor.antarchy$setNodeEvaluator(evaluator); + cir.setReturnValue(new PathFinder(evaluator, maxVisitedNodes)); } } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/PathNavigationAccessor.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/PathNavigationAccessor.java index 1a512fef..f7bdcedc 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/PathNavigationAccessor.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/PathNavigationAccessor.java @@ -2,6 +2,7 @@ package com.craisinlord.antarchy.mixins.gravity; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.ai.navigation.PathNavigation; +import net.minecraft.world.level.pathfinder.NodeEvaluator; import net.minecraft.world.level.pathfinder.Path; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; @@ -16,4 +17,7 @@ public interface PathNavigationAccessor { @Accessor("path") Path antarchy$getPath(); + + @Accessor("nodeEvaluator") + void antarchy$setNodeEvaluator(NodeEvaluator nodeEvaluator); } diff --git a/common-1.21.1/src/main/resources/assets/antarchy/animations/portal_gun_portal.animation.json b/common-1.21.1/src/main/resources/assets/antarchy/animations/portal_gun_portal.animation.json new file mode 100644 index 00000000..ee9796f3 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/animations/portal_gun_portal.animation.json @@ -0,0 +1,48 @@ +{ + "format_version": "1.8.0", + "animations": { + "idle": { + "loop": true, + "animation_length": 4.0, + "bones": { + "Portal_Layer": { + "rotation": { + "0.0": {"vector": [0, 0, 0]}, + "4.0": {"vector": [0, 0, 360]} + } + }, + "Portal_Layer2": { + "rotation": { + "0.0": {"vector": [0, 0, 0]}, + "4.0": {"vector": [0, 0, -360]} + } + } + } + }, + "open": { + "loop": false, + "animation_length": 0.5, + "bones": { + "Root": { + "scale": { + "0.0": {"vector": [0, 0, 0]}, + "0.35": {"vector": [1.15, 1.15, 1.15]}, + "0.5": {"vector": [1, 1, 1]} + } + } + } + }, + "close": { + "loop": false, + "animation_length": 0.4, + "bones": { + "Root": { + "scale": { + "0.0": {"vector": [1, 1, 1]}, + "0.4": {"vector": [0, 0, 0]} + } + } + } + } + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/chiseled_loam_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/chiseled_loam_bricks.json new file mode 100644 index 00000000..38f370c3 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/chiseled_loam_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/chiseled_loam_bricks" + } + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/chiseled_myrmite.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/chiseled_myrmite.json new file mode 100644 index 00000000..a781555a --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/chiseled_myrmite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/chiseled_myrmite" + } + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/loam_brick_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/loam_brick_slab.json new file mode 100644 index 00000000..239a88fc --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/loam_brick_slab.json @@ -0,0 +1,14 @@ +{ + "variants": { + "type=double": { + "model": "antarchy:block/loam_bricks" + }, + "type=bottom": { + "model": "antarchy:block/loam_brick_slab" + }, + "type=top": { + "model": "antarchy:block/loam_brick_slab_top" + } + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/loam_brick_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/loam_brick_stairs.json new file mode 100644 index 00000000..e4a8c0ec --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/loam_brick_stairs.json @@ -0,0 +1,210 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/loam_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/loam_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/loam_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/loam_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/loam_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/loam_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/loam_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/loam_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/loam_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/loam_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/loam_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/loam_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/loam_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/loam_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/loam_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/loam_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/loam_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/loam_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/loam_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/loam_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/loam_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/loam_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/loam_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/loam_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/loam_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/loam_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/loam_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/loam_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/loam_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/loam_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/loam_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/loam_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/loam_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/loam_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/loam_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/loam_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/loam_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/loam_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/loam_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/loam_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/loam_brick_wall.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/loam_brick_wall.json new file mode 100644 index 00000000..fcfac968 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/loam_brick_wall.json @@ -0,0 +1,41 @@ +{ + "multipart": [ + { + "when": { "up": "true" }, + "apply": { "model": "antarchy:block/loam_brick_wall_post" } + }, + { + "when": { "north": "low" }, + "apply": { "model": "antarchy:block/loam_brick_wall_side", "uvlock": true } + }, + { + "when": { "east": "low" }, + "apply": { "model": "antarchy:block/loam_brick_wall_side", "y": 90, "uvlock": true } + }, + { + "when": { "south": "low" }, + "apply": { "model": "antarchy:block/loam_brick_wall_side", "y": 180, "uvlock": true } + }, + { + "when": { "west": "low" }, + "apply": { "model": "antarchy:block/loam_brick_wall_side", "y": 270, "uvlock": true } + }, + { + "when": { "north": "tall" }, + "apply": { "model": "antarchy:block/loam_brick_wall_side_tall", "uvlock": true } + }, + { + "when": { "east": "tall" }, + "apply": { "model": "antarchy:block/loam_brick_wall_side_tall", "y": 90, "uvlock": true } + }, + { + "when": { "south": "tall" }, + "apply": { "model": "antarchy:block/loam_brick_wall_side_tall", "y": 180, "uvlock": true } + }, + { + "when": { "west": "tall" }, + "apply": { "model": "antarchy:block/loam_brick_wall_side_tall", "y": 270, "uvlock": true } + } + ] +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/loam_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/loam_bricks.json new file mode 100644 index 00000000..bcb97c07 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/loam_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/loam_bricks" + } + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_brick_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_brick_slab.json new file mode 100644 index 00000000..51f612bb --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_brick_slab.json @@ -0,0 +1,14 @@ +{ + "variants": { + "type=double": { + "model": "antarchy:block/mossy_broodstone_bricks" + }, + "type=bottom": { + "model": "antarchy:block/mossy_broodstone_brick_slab" + }, + "type=top": { + "model": "antarchy:block/mossy_broodstone_brick_slab_top" + } + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_brick_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_brick_stairs.json new file mode 100644 index 00000000..a03427e1 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_brick_stairs.json @@ -0,0 +1,210 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/mossy_broodstone_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/mossy_broodstone_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/mossy_broodstone_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/mossy_broodstone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/mossy_broodstone_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/mossy_broodstone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/mossy_broodstone_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/mossy_broodstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/mossy_broodstone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_brick_wall.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_brick_wall.json new file mode 100644 index 00000000..d66eeac9 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_brick_wall.json @@ -0,0 +1,41 @@ +{ + "multipart": [ + { + "when": { "up": "true" }, + "apply": { "model": "antarchy:block/mossy_broodstone_brick_wall_post" } + }, + { + "when": { "north": "low" }, + "apply": { "model": "antarchy:block/mossy_broodstone_brick_wall_side", "uvlock": true } + }, + { + "when": { "east": "low" }, + "apply": { "model": "antarchy:block/mossy_broodstone_brick_wall_side", "y": 90, "uvlock": true } + }, + { + "when": { "south": "low" }, + "apply": { "model": "antarchy:block/mossy_broodstone_brick_wall_side", "y": 180, "uvlock": true } + }, + { + "when": { "west": "low" }, + "apply": { "model": "antarchy:block/mossy_broodstone_brick_wall_side", "y": 270, "uvlock": true } + }, + { + "when": { "north": "tall" }, + "apply": { "model": "antarchy:block/mossy_broodstone_brick_wall_side_tall", "uvlock": true } + }, + { + "when": { "east": "tall" }, + "apply": { "model": "antarchy:block/mossy_broodstone_brick_wall_side_tall", "y": 90, "uvlock": true } + }, + { + "when": { "south": "tall" }, + "apply": { "model": "antarchy:block/mossy_broodstone_brick_wall_side_tall", "y": 180, "uvlock": true } + }, + { + "when": { "west": "tall" }, + "apply": { "model": "antarchy:block/mossy_broodstone_brick_wall_side_tall", "y": 270, "uvlock": true } + } + ] +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_bricks.json new file mode 100644 index 00000000..fb9074e6 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/mossy_broodstone_bricks" + } + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_brick_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_brick_slab.json new file mode 100644 index 00000000..57448dd8 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_brick_slab.json @@ -0,0 +1,14 @@ +{ + "variants": { + "type=double": { + "model": "antarchy:block/mossy_myrmite_bricks" + }, + "type=bottom": { + "model": "antarchy:block/mossy_myrmite_brick_slab" + }, + "type=top": { + "model": "antarchy:block/mossy_myrmite_brick_slab_top" + } + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_brick_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_brick_stairs.json new file mode 100644 index 00000000..3f6fa609 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_brick_stairs.json @@ -0,0 +1,210 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/mossy_myrmite_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/mossy_myrmite_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/mossy_myrmite_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/mossy_myrmite_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/mossy_myrmite_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/mossy_myrmite_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/mossy_myrmite_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/mossy_myrmite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/mossy_myrmite_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_brick_wall.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_brick_wall.json new file mode 100644 index 00000000..fa80c745 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_brick_wall.json @@ -0,0 +1,41 @@ +{ + "multipart": [ + { + "when": { "up": "true" }, + "apply": { "model": "antarchy:block/mossy_myrmite_brick_wall_post" } + }, + { + "when": { "north": "low" }, + "apply": { "model": "antarchy:block/mossy_myrmite_brick_wall_side", "uvlock": true } + }, + { + "when": { "east": "low" }, + "apply": { "model": "antarchy:block/mossy_myrmite_brick_wall_side", "y": 90, "uvlock": true } + }, + { + "when": { "south": "low" }, + "apply": { "model": "antarchy:block/mossy_myrmite_brick_wall_side", "y": 180, "uvlock": true } + }, + { + "when": { "west": "low" }, + "apply": { "model": "antarchy:block/mossy_myrmite_brick_wall_side", "y": 270, "uvlock": true } + }, + { + "when": { "north": "tall" }, + "apply": { "model": "antarchy:block/mossy_myrmite_brick_wall_side_tall", "uvlock": true } + }, + { + "when": { "east": "tall" }, + "apply": { "model": "antarchy:block/mossy_myrmite_brick_wall_side_tall", "y": 90, "uvlock": true } + }, + { + "when": { "south": "tall" }, + "apply": { "model": "antarchy:block/mossy_myrmite_brick_wall_side_tall", "y": 180, "uvlock": true } + }, + { + "when": { "west": "tall" }, + "apply": { "model": "antarchy:block/mossy_myrmite_brick_wall_side_tall", "y": 270, "uvlock": true } + } + ] +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_bricks.json new file mode 100644 index 00000000..965e67df --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/mossy_myrmite_bricks" + } + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_brick_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_brick_slab.json new file mode 100644 index 00000000..5a6fb1f8 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_brick_slab.json @@ -0,0 +1,14 @@ +{ + "variants": { + "type=double": { + "model": "antarchy:block/mossy_nyxite_bricks" + }, + "type=bottom": { + "model": "antarchy:block/mossy_nyxite_brick_slab" + }, + "type=top": { + "model": "antarchy:block/mossy_nyxite_brick_slab_top" + } + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_brick_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_brick_stairs.json new file mode 100644 index 00000000..d7993490 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_brick_stairs.json @@ -0,0 +1,210 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/mossy_nyxite_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/mossy_nyxite_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/mossy_nyxite_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/mossy_nyxite_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/mossy_nyxite_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/mossy_nyxite_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/mossy_nyxite_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/mossy_nyxite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/mossy_nyxite_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_brick_wall.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_brick_wall.json new file mode 100644 index 00000000..6d48a7b6 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_brick_wall.json @@ -0,0 +1,41 @@ +{ + "multipart": [ + { + "when": { "up": "true" }, + "apply": { "model": "antarchy:block/mossy_nyxite_brick_wall_post" } + }, + { + "when": { "north": "low" }, + "apply": { "model": "antarchy:block/mossy_nyxite_brick_wall_side", "uvlock": true } + }, + { + "when": { "east": "low" }, + "apply": { "model": "antarchy:block/mossy_nyxite_brick_wall_side", "y": 90, "uvlock": true } + }, + { + "when": { "south": "low" }, + "apply": { "model": "antarchy:block/mossy_nyxite_brick_wall_side", "y": 180, "uvlock": true } + }, + { + "when": { "west": "low" }, + "apply": { "model": "antarchy:block/mossy_nyxite_brick_wall_side", "y": 270, "uvlock": true } + }, + { + "when": { "north": "tall" }, + "apply": { "model": "antarchy:block/mossy_nyxite_brick_wall_side_tall", "uvlock": true } + }, + { + "when": { "east": "tall" }, + "apply": { "model": "antarchy:block/mossy_nyxite_brick_wall_side_tall", "y": 90, "uvlock": true } + }, + { + "when": { "south": "tall" }, + "apply": { "model": "antarchy:block/mossy_nyxite_brick_wall_side_tall", "y": 180, "uvlock": true } + }, + { + "when": { "west": "tall" }, + "apply": { "model": "antarchy:block/mossy_nyxite_brick_wall_side_tall", "y": 270, "uvlock": true } + } + ] +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_bricks.json new file mode 100644 index 00000000..2588a902 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/mossy_nyxite_bricks" + } + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_brick_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_brick_slab.json new file mode 100644 index 00000000..5543b856 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_brick_slab.json @@ -0,0 +1,14 @@ +{ + "variants": { + "type=double": { + "model": "antarchy:block/myrmite_bricks" + }, + "type=bottom": { + "model": "antarchy:block/myrmite_brick_slab" + }, + "type=top": { + "model": "antarchy:block/myrmite_brick_slab_top" + } + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_brick_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_brick_stairs.json new file mode 100644 index 00000000..2d64faa5 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_brick_stairs.json @@ -0,0 +1,210 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/myrmite_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/myrmite_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/myrmite_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/myrmite_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/myrmite_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/myrmite_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/myrmite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/myrmite_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/myrmite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/myrmite_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/myrmite_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/myrmite_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/myrmite_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/myrmite_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/myrmite_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/myrmite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/myrmite_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/myrmite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/myrmite_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/myrmite_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/myrmite_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/myrmite_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/myrmite_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/myrmite_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/myrmite_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/myrmite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/myrmite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/myrmite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/myrmite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/myrmite_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/myrmite_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/myrmite_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/myrmite_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/myrmite_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/myrmite_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/myrmite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/myrmite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/myrmite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/myrmite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/myrmite_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_brick_wall.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_brick_wall.json new file mode 100644 index 00000000..5810e32e --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_brick_wall.json @@ -0,0 +1,41 @@ +{ + "multipart": [ + { + "when": { "up": "true" }, + "apply": { "model": "antarchy:block/myrmite_brick_wall_post" } + }, + { + "when": { "north": "low" }, + "apply": { "model": "antarchy:block/myrmite_brick_wall_side", "uvlock": true } + }, + { + "when": { "east": "low" }, + "apply": { "model": "antarchy:block/myrmite_brick_wall_side", "y": 90, "uvlock": true } + }, + { + "when": { "south": "low" }, + "apply": { "model": "antarchy:block/myrmite_brick_wall_side", "y": 180, "uvlock": true } + }, + { + "when": { "west": "low" }, + "apply": { "model": "antarchy:block/myrmite_brick_wall_side", "y": 270, "uvlock": true } + }, + { + "when": { "north": "tall" }, + "apply": { "model": "antarchy:block/myrmite_brick_wall_side_tall", "uvlock": true } + }, + { + "when": { "east": "tall" }, + "apply": { "model": "antarchy:block/myrmite_brick_wall_side_tall", "y": 90, "uvlock": true } + }, + { + "when": { "south": "tall" }, + "apply": { "model": "antarchy:block/myrmite_brick_wall_side_tall", "y": 180, "uvlock": true } + }, + { + "when": { "west": "tall" }, + "apply": { "model": "antarchy:block/myrmite_brick_wall_side_tall", "y": 270, "uvlock": true } + } + ] +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_bricks.json new file mode 100644 index 00000000..34f93a5a --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/myrmite_bricks" + } + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_pillar.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_pillar.json new file mode 100644 index 00000000..f7b88b9e --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_pillar.json @@ -0,0 +1,17 @@ +{ + "variants": { + "axis=x": { + "model": "antarchy:block/myrmite_pillar", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "antarchy:block/myrmite_pillar" + }, + "axis=z": { + "model": "antarchy:block/myrmite_pillar", + "x": 90 + } + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_slab.json new file mode 100644 index 00000000..8c0a3ec3 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_slab.json @@ -0,0 +1,14 @@ +{ + "variants": { + "type=double": { + "model": "antarchy:block/myrmite" + }, + "type=bottom": { + "model": "antarchy:block/myrmite_slab" + }, + "type=top": { + "model": "antarchy:block/myrmite_slab_top" + } + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_stairs.json new file mode 100644 index 00000000..f360f413 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_stairs.json @@ -0,0 +1,210 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/myrmite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/myrmite_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/myrmite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/myrmite_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/myrmite_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/myrmite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/myrmite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/myrmite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/myrmite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/myrmite_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/myrmite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/myrmite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/myrmite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/myrmite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/myrmite_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/myrmite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/myrmite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/myrmite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/myrmite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/myrmite_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/myrmite_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/myrmite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/myrmite_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/myrmite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/myrmite_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/myrmite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/myrmite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/myrmite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/myrmite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/myrmite_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/myrmite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/myrmite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/myrmite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/myrmite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/myrmite_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/myrmite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/myrmite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/myrmite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/myrmite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/myrmite_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_wall.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_wall.json new file mode 100644 index 00000000..c0da350d --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/myrmite_wall.json @@ -0,0 +1,41 @@ +{ + "multipart": [ + { + "when": { "up": "true" }, + "apply": { "model": "antarchy:block/myrmite_wall_post" } + }, + { + "when": { "north": "low" }, + "apply": { "model": "antarchy:block/myrmite_wall_side", "uvlock": true } + }, + { + "when": { "east": "low" }, + "apply": { "model": "antarchy:block/myrmite_wall_side", "y": 90, "uvlock": true } + }, + { + "when": { "south": "low" }, + "apply": { "model": "antarchy:block/myrmite_wall_side", "y": 180, "uvlock": true } + }, + { + "when": { "west": "low" }, + "apply": { "model": "antarchy:block/myrmite_wall_side", "y": 270, "uvlock": true } + }, + { + "when": { "north": "tall" }, + "apply": { "model": "antarchy:block/myrmite_wall_side_tall", "uvlock": true } + }, + { + "when": { "east": "tall" }, + "apply": { "model": "antarchy:block/myrmite_wall_side_tall", "y": 90, "uvlock": true } + }, + { + "when": { "south": "tall" }, + "apply": { "model": "antarchy:block/myrmite_wall_side_tall", "y": 180, "uvlock": true } + }, + { + "when": { "west": "tall" }, + "apply": { "model": "antarchy:block/myrmite_wall_side_tall", "y": 270, "uvlock": true } + } + ] +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/packed_loam.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/packed_loam.json new file mode 100644 index 00000000..f90bda40 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/packed_loam.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/packed_loam" + } + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite.json new file mode 100644 index 00000000..420c583e --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/polished_myrmite" + } + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite_slab.json new file mode 100644 index 00000000..09bc9c07 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite_slab.json @@ -0,0 +1,14 @@ +{ + "variants": { + "type=double": { + "model": "antarchy:block/polished_myrmite" + }, + "type=bottom": { + "model": "antarchy:block/polished_myrmite_slab" + }, + "type=top": { + "model": "antarchy:block/polished_myrmite_slab_top" + } + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite_stairs.json new file mode 100644 index 00000000..64e329ac --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite_stairs.json @@ -0,0 +1,210 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/polished_myrmite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/polished_myrmite_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/polished_myrmite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/polished_myrmite_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/polished_myrmite_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/polished_myrmite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/polished_myrmite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/polished_myrmite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/polished_myrmite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/polished_myrmite_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/polished_myrmite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/polished_myrmite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/polished_myrmite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/polished_myrmite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/polished_myrmite_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/polished_myrmite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/polished_myrmite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/polished_myrmite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/polished_myrmite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/polished_myrmite_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/polished_myrmite_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/polished_myrmite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/polished_myrmite_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/polished_myrmite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/polished_myrmite_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/polished_myrmite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/polished_myrmite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/polished_myrmite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/polished_myrmite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/polished_myrmite_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/polished_myrmite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/polished_myrmite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/polished_myrmite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/polished_myrmite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/polished_myrmite_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/polished_myrmite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/polished_myrmite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/polished_myrmite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/polished_myrmite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/polished_myrmite_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite_wall.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite_wall.json new file mode 100644 index 00000000..8b6ce752 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite_wall.json @@ -0,0 +1,41 @@ +{ + "multipart": [ + { + "when": { "up": "true" }, + "apply": { "model": "antarchy:block/polished_myrmite_wall_post" } + }, + { + "when": { "north": "low" }, + "apply": { "model": "antarchy:block/polished_myrmite_wall_side", "uvlock": true } + }, + { + "when": { "east": "low" }, + "apply": { "model": "antarchy:block/polished_myrmite_wall_side", "y": 90, "uvlock": true } + }, + { + "when": { "south": "low" }, + "apply": { "model": "antarchy:block/polished_myrmite_wall_side", "y": 180, "uvlock": true } + }, + { + "when": { "west": "low" }, + "apply": { "model": "antarchy:block/polished_myrmite_wall_side", "y": 270, "uvlock": true } + }, + { + "when": { "north": "tall" }, + "apply": { "model": "antarchy:block/polished_myrmite_wall_side_tall", "uvlock": true } + }, + { + "when": { "east": "tall" }, + "apply": { "model": "antarchy:block/polished_myrmite_wall_side_tall", "y": 90, "uvlock": true } + }, + { + "when": { "south": "tall" }, + "apply": { "model": "antarchy:block/polished_myrmite_wall_side_tall", "y": 180, "uvlock": true } + }, + { + "when": { "west": "tall" }, + "apply": { "model": "antarchy:block/polished_myrmite_wall_side_tall", "y": 270, "uvlock": true } + } + ] +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/blockstates/tigers_eye_block.json b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/tigers_eye_block.json new file mode 100644 index 00000000..dd98b388 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/blockstates/tigers_eye_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/tigers_eye_block" + } + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/geo/portal_gun_portal.geo.json b/common-1.21.1/src/main/resources/assets/antarchy/geo/portal_gun_portal.geo.json new file mode 100644 index 00000000..386019dc --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/geo/portal_gun_portal.geo.json @@ -0,0 +1,51 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.portal_gun_portal", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 4, + "visible_bounds_height": 4, + "visible_bounds_offset": [0, 0, 0] + }, + "bones": [ + { + "name": "Root", + "pivot": [0, 0, 0] + }, + { + "name": "Portal_Layer", + "parent": "Root", + "pivot": [0, 0, -0.4], + "cubes": [ + { + "origin": [-8, -16, -0.4], + "size": [16, 32, 0], + "uv": { + "north": {"uv": [0, 0], "uv_size": [64, 64]}, + "south": {"uv": [0, 0], "uv_size": [64, 64]} + } + } + ] + }, + { + "name": "Portal_Layer2", + "parent": "Root", + "pivot": [0, 0, 0.4], + "cubes": [ + { + "origin": [-8, -16, 0.4], + "size": [16, 32, 0], + "uv": { + "north": {"uv": [0, 0], "uv_size": [64, 64]}, + "south": {"uv": [0, 0], "uv_size": [64, 64]} + } + } + ] + } + ] + } + ] +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/lang/en_us.json b/common-1.21.1/src/main/resources/assets/antarchy/lang/en_us.json index 63a22167..b731f31c 100644 --- a/common-1.21.1/src/main/resources/assets/antarchy/lang/en_us.json +++ b/common-1.21.1/src/main/resources/assets/antarchy/lang/en_us.json @@ -233,6 +233,7 @@ "entity.antarchy.wasp": "Wasp", "entity.antarchy.bomber": "Bomber", "entity.antarchy.moleworm": "Moleworm", + "entity.antarchy.worm": "Worm", "entity.antarchy.molevore": "Molevore", "entity.antarchy.mantis": "Mantis", "entity.antarchy.alpha_mantis": "Alpha Mantis", @@ -308,6 +309,10 @@ "attribute.antarchy.bloodglass_max_hearts": "Max Bloodglass Hearts", "item.antarchy.molevore_nose": "Molevore Nose", "item.antarchy.moleworm": "Moleworm", + "item.antarchy.worm_tooth": "Worm Tooth", + "item.antarchy.worm_hook": "Worm Hook", + "tooltip.antarchy.worm_hook.throw": "Right-click a block to fire and attach", + "tooltip.antarchy.worm_hook.reel": "Sneak to reel in, right-click again to detach", "item.antarchy.triffid_spawn_egg": "Triffid Spawn Egg", "item.antarchy.infested_rooted_dirt": "Infested Rooted Dirt", "item.antarchy.infested_coarse_dirt": "Infested Coarse Dirt", @@ -471,6 +476,7 @@ "tooltip.antarchy.reverie_bottle.capture": "Right click a Reverie with a glass bottle to store it.", "tooltip.antarchy.reverie_bottle.release": "Right click to release the Reverie.", "item.antarchy.gravity_gun": "Gravity Gun", + "item.antarchy.portal_gun": "Portal Gun", "item.antarchy.miners_dream": "Miner's Dream", "tooltip.antarchy.miners_dream.line1": "Use to carve a winding cave.", "tooltip.antarchy.miners_dream.line2": "Leaves valuable blocks untouched.", @@ -549,6 +555,7 @@ "item.antarchy.primordial_boots": "Primordial Boots", "item.antarchy.bed_bug_spawn_egg": "Bed Bug Spawn Egg", "item.antarchy.moleworm_spawn_egg": "Moleworm Spawn Egg", + "item.antarchy.worm_spawn_egg": "Worm Spawn Egg", "item.antarchy.molevore_spawn_egg": "Molevore Spawn Egg", "item.antarchy.reverie_spawn_egg": "Reverie Spawn Egg", "item.antarchy.mantis_spawn_egg": "Mantis Spawn Egg", @@ -633,6 +640,9 @@ "tooltip.antarchy.gravity_gun.secondary": "Usage: pull in an entity or a valid block.", "tooltip.antarchy.gravity_gun.scroll": "Hold Ctrl and scroll to move the held target closer or farther away.", "tooltip.antarchy.gravity_gun.blacklist": "Does not affect blacklisted blocks or entities.", + "tooltip.antarchy.portal_gun.primary": "Attack: fire a blue portal.", + "tooltip.antarchy.portal_gun.secondary": "Use: fire an orange portal.", + "tooltip.antarchy.portal_gun.reset": "Sneak + use: fizzle your active portals.", "tooltip.antarchy.antimetal_inversion": "Inverts entites directly below it", "tooltip.antarchy.diamond_minecart.forward": "Will be implemented later.", "tooltip.antarchy.diamond_minecart.rails": " ", @@ -790,6 +800,12 @@ "subtitles.antarchy.gravity_gun_hold_loop": "Gravity Gun hums", "subtitles.antarchy.gravity_gun_launch": "Gravity Gun launches", "subtitles.antarchy.gravity_gun_dryfire": "Gravity Gun dry fires", + "subtitles.antarchy.portal_gun_fire_blue": "Portal Gun fires", + "subtitles.antarchy.portal_gun_fire_orange": "Portal Gun fires", + "subtitles.antarchy.portal_gun_invalid_surface": "Portal fizzles", + "subtitles.antarchy.portal_open_blue": "Blue portal opens", + "subtitles.antarchy.portal_open_orange": "Orange portal opens", + "subtitles.antarchy.portal_fizzle": "Portal fizzles", "subtitles.antarchy.bed_bug_ambient": "Bed Bug chirps", "subtitles.antarchy.bed_bug_hurt": "Bed Bug hurts", "subtitles.antarchy.bed_bug_attack": "Bed Bug bites", @@ -1056,6 +1072,7 @@ "advancements.antarchy.herculean_task.title": "Herculean Task", "advancements.antarchy.herculean_task.description": "Slay a Hercules Beetle.", "item.antarchy.tigers_eye": "Tiger's Eye", + "block.antarchy.tigers_eye_block": "Block of Tiger's Eye", "item.antarchy.tigers_eye_helmet": "Tiger's Eye Helmet", "item.antarchy.tigers_eye_chestplate": "Tiger's Eye Chestplate", "item.antarchy.tigers_eye_leggings": "Tiger's Eye Leggings", @@ -1079,5 +1096,38 @@ "music.antarchy.wistful_wanderings": "Wistful Wanderings", "music.antarchy.wistful_wanderings.credit": "hewo_", "tooltip.antarchy.lucid_anchor.pyramid": "Requires an Antimetal Beacon pyramid above it", - "tooltip.antarchy.lucid_anchor.path": "Projects Inverted downward while it has an unobstructed path to the world below" + "tooltip.antarchy.lucid_anchor.path": "Projects Inverted downward while it has an unobstructed path to the world below", + "block.antarchy.myrmite_stairs": "Myrmite Stairs", + "block.antarchy.myrmite_slab": "Myrmite Slab", + "block.antarchy.myrmite_wall": "Myrmite Wall", + "block.antarchy.polished_myrmite": "Polished Myrmite", + "block.antarchy.polished_myrmite_stairs": "Polished Myrmite Stairs", + "block.antarchy.polished_myrmite_slab": "Polished Myrmite Slab", + "block.antarchy.polished_myrmite_wall": "Polished Myrmite Wall", + "block.antarchy.chiseled_myrmite": "Chiseled Myrmite", + "block.antarchy.myrmite_bricks": "Myrmite Bricks", + "block.antarchy.myrmite_brick_stairs": "Myrmite Brick Stairs", + "block.antarchy.myrmite_brick_slab": "Myrmite Brick Slab", + "block.antarchy.myrmite_brick_wall": "Myrmite Brick Wall", + "block.antarchy.mossy_myrmite_bricks": "Mossy Myrmite Bricks", + "block.antarchy.mossy_myrmite_brick_stairs": "Mossy Myrmite Brick Stairs", + "block.antarchy.mossy_myrmite_brick_slab": "Mossy Myrmite Brick Slab", + "block.antarchy.mossy_myrmite_brick_wall": "Mossy Myrmite Brick Wall", + "block.antarchy.myrmite_pillar": "Myrmite Pillar", + "block.antarchy.mossy_broodstone_bricks": "Mossy Broodstone Bricks", + "block.antarchy.mossy_broodstone_brick_stairs": "Mossy Broodstone Brick Stairs", + "block.antarchy.mossy_broodstone_brick_slab": "Mossy Broodstone Brick Slab", + "block.antarchy.mossy_broodstone_brick_wall": "Mossy Broodstone Brick Wall", + "block.antarchy.mossy_nyxite_bricks": "Mossy Nyxite Bricks", + "block.antarchy.mossy_nyxite_brick_stairs": "Mossy Nyxite Brick Stairs", + "block.antarchy.mossy_nyxite_brick_slab": "Mossy Nyxite Brick Slab", + "block.antarchy.mossy_nyxite_brick_wall": "Mossy Nyxite Brick Wall", + "block.antarchy.packed_loam": "Packed Loam", + "block.antarchy.loam_bricks": "Loam Bricks", + "block.antarchy.loam_brick_stairs": "Loam Brick Stairs", + "block.antarchy.loam_brick_slab": "Loam Brick Slab", + "block.antarchy.loam_brick_wall": "Loam Brick Wall", + "block.antarchy.chiseled_loam_bricks": "Chiseled Loam Bricks", + "item.antarchy.cooked_cheep": "Cooked Cheep", + "item.antarchy.cheep_bucket": "Bucket of Cheep" } diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/chiseled_loam_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/chiseled_loam_bricks.json new file mode 100644 index 00000000..5f9da8c2 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/chiseled_loam_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/loam/chiseled_loam_bricks" + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/chiseled_myrmite.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/chiseled_myrmite.json new file mode 100644 index 00000000..6c9de060 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/chiseled_myrmite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/myrmite/chiseled_myrmite" + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam.json index c98d6285..e412b9b0 100644 --- a/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam.json +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam.json @@ -1,6 +1,6 @@ { "parent": "minecraft:block/cube_all", "textures": { - "all": "antarchy:block/loam" + "all": "antarchy:block/loam/loam" } } diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_slab.json new file mode 100644 index 00000000..0ab6ef48 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_slab.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "antarchy:block/loam/loam_bricks", + "side": "antarchy:block/loam/loam_bricks", + "top": "antarchy:block/loam/loam_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_slab_top.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_slab_top.json new file mode 100644 index 00000000..7b9295db --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_slab_top.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "antarchy:block/loam/loam_bricks", + "side": "antarchy:block/loam/loam_bricks", + "top": "antarchy:block/loam/loam_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_stairs.json new file mode 100644 index 00000000..ba081234 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_stairs.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "antarchy:block/loam/loam_bricks", + "side": "antarchy:block/loam/loam_bricks", + "top": "antarchy:block/loam/loam_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_stairs_inner.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_stairs_inner.json new file mode 100644 index 00000000..c6cc0378 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_stairs_inner.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "antarchy:block/loam/loam_bricks", + "side": "antarchy:block/loam/loam_bricks", + "top": "antarchy:block/loam/loam_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_stairs_outer.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_stairs_outer.json new file mode 100644 index 00000000..302b4c5c --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_stairs_outer.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "antarchy:block/loam/loam_bricks", + "side": "antarchy:block/loam/loam_bricks", + "top": "antarchy:block/loam/loam_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_wall_inventory.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_wall_inventory.json new file mode 100644 index 00000000..cd212f77 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_wall_inventory.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "antarchy:block/loam/loam_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_wall_post.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_wall_post.json new file mode 100644 index 00000000..f3e27790 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_wall_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "antarchy:block/loam/loam_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_wall_side.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_wall_side.json new file mode 100644 index 00000000..327410b8 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_wall_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "antarchy:block/loam/loam_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_wall_side_tall.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_wall_side_tall.json new file mode 100644 index 00000000..5debdeb4 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_brick_wall_side_tall.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "antarchy:block/loam/loam_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_bricks.json new file mode 100644 index 00000000..ef010bb7 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/loam_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/loam/loam_bricks" + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_slab.json new file mode 100644 index 00000000..fb9e8d9b --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_slab.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "antarchy:block/broodstone/mossy_broodstone_bricks", + "side": "antarchy:block/broodstone/mossy_broodstone_bricks", + "top": "antarchy:block/broodstone/mossy_broodstone_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_slab_top.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_slab_top.json new file mode 100644 index 00000000..4a9336d6 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_slab_top.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "antarchy:block/broodstone/mossy_broodstone_bricks", + "side": "antarchy:block/broodstone/mossy_broodstone_bricks", + "top": "antarchy:block/broodstone/mossy_broodstone_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_stairs.json new file mode 100644 index 00000000..c1ac8b6e --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_stairs.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "antarchy:block/broodstone/mossy_broodstone_bricks", + "side": "antarchy:block/broodstone/mossy_broodstone_bricks", + "top": "antarchy:block/broodstone/mossy_broodstone_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_stairs_inner.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_stairs_inner.json new file mode 100644 index 00000000..0eedc1cf --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_stairs_inner.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "antarchy:block/broodstone/mossy_broodstone_bricks", + "side": "antarchy:block/broodstone/mossy_broodstone_bricks", + "top": "antarchy:block/broodstone/mossy_broodstone_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_stairs_outer.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_stairs_outer.json new file mode 100644 index 00000000..bdb2cc9a --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_stairs_outer.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "antarchy:block/broodstone/mossy_broodstone_bricks", + "side": "antarchy:block/broodstone/mossy_broodstone_bricks", + "top": "antarchy:block/broodstone/mossy_broodstone_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_wall_inventory.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_wall_inventory.json new file mode 100644 index 00000000..cfeabd13 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_wall_inventory.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "antarchy:block/broodstone/mossy_broodstone_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_wall_post.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_wall_post.json new file mode 100644 index 00000000..0b4e310b --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_wall_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "antarchy:block/broodstone/mossy_broodstone_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_wall_side.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_wall_side.json new file mode 100644 index 00000000..3d9449c6 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_wall_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "antarchy:block/broodstone/mossy_broodstone_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_wall_side_tall.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_wall_side_tall.json new file mode 100644 index 00000000..563b0e0a --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_wall_side_tall.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "antarchy:block/broodstone/mossy_broodstone_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_bricks.json new file mode 100644 index 00000000..7cf1c0e8 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/broodstone/mossy_broodstone_bricks" + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_slab.json new file mode 100644 index 00000000..b9c32463 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_slab.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "antarchy:block/myrmite/mossy_myrmite_bricks", + "side": "antarchy:block/myrmite/mossy_myrmite_bricks", + "top": "antarchy:block/myrmite/mossy_myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_slab_top.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_slab_top.json new file mode 100644 index 00000000..5f100dd5 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_slab_top.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "antarchy:block/myrmite/mossy_myrmite_bricks", + "side": "antarchy:block/myrmite/mossy_myrmite_bricks", + "top": "antarchy:block/myrmite/mossy_myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_stairs.json new file mode 100644 index 00000000..d60df673 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_stairs.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "antarchy:block/myrmite/mossy_myrmite_bricks", + "side": "antarchy:block/myrmite/mossy_myrmite_bricks", + "top": "antarchy:block/myrmite/mossy_myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_stairs_inner.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_stairs_inner.json new file mode 100644 index 00000000..db3b55e9 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_stairs_inner.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "antarchy:block/myrmite/mossy_myrmite_bricks", + "side": "antarchy:block/myrmite/mossy_myrmite_bricks", + "top": "antarchy:block/myrmite/mossy_myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_stairs_outer.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_stairs_outer.json new file mode 100644 index 00000000..9bbf8773 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_stairs_outer.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "antarchy:block/myrmite/mossy_myrmite_bricks", + "side": "antarchy:block/myrmite/mossy_myrmite_bricks", + "top": "antarchy:block/myrmite/mossy_myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_wall_inventory.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_wall_inventory.json new file mode 100644 index 00000000..120faa83 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_wall_inventory.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "antarchy:block/myrmite/mossy_myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_wall_post.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_wall_post.json new file mode 100644 index 00000000..334ab050 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_wall_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "antarchy:block/myrmite/mossy_myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_wall_side.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_wall_side.json new file mode 100644 index 00000000..428de4fc --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_wall_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "antarchy:block/myrmite/mossy_myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_wall_side_tall.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_wall_side_tall.json new file mode 100644 index 00000000..465daab2 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_wall_side_tall.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "antarchy:block/myrmite/mossy_myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_bricks.json new file mode 100644 index 00000000..84b494f3 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/myrmite/mossy_myrmite_bricks" + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_slab.json new file mode 100644 index 00000000..ec80ca44 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_slab.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "antarchy:block/mossy_nyxite_bricks", + "side": "antarchy:block/mossy_nyxite_bricks", + "top": "antarchy:block/mossy_nyxite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_slab_top.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_slab_top.json new file mode 100644 index 00000000..c90b1dda --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_slab_top.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "antarchy:block/mossy_nyxite_bricks", + "side": "antarchy:block/mossy_nyxite_bricks", + "top": "antarchy:block/mossy_nyxite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_stairs.json new file mode 100644 index 00000000..7eafdf11 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_stairs.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "antarchy:block/mossy_nyxite_bricks", + "side": "antarchy:block/mossy_nyxite_bricks", + "top": "antarchy:block/mossy_nyxite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_stairs_inner.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_stairs_inner.json new file mode 100644 index 00000000..9640352c --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_stairs_inner.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "antarchy:block/mossy_nyxite_bricks", + "side": "antarchy:block/mossy_nyxite_bricks", + "top": "antarchy:block/mossy_nyxite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_stairs_outer.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_stairs_outer.json new file mode 100644 index 00000000..cab3edc6 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_stairs_outer.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "antarchy:block/mossy_nyxite_bricks", + "side": "antarchy:block/mossy_nyxite_bricks", + "top": "antarchy:block/mossy_nyxite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_wall_inventory.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_wall_inventory.json new file mode 100644 index 00000000..a269125e --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_wall_inventory.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "antarchy:block/mossy_nyxite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_wall_post.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_wall_post.json new file mode 100644 index 00000000..dbdd4a9b --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_wall_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "antarchy:block/mossy_nyxite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_wall_side.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_wall_side.json new file mode 100644 index 00000000..7db49ca6 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_wall_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "antarchy:block/mossy_nyxite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_wall_side_tall.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_wall_side_tall.json new file mode 100644 index 00000000..7856871a --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_wall_side_tall.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "antarchy:block/mossy_nyxite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_bricks.json new file mode 100644 index 00000000..4b3f0e69 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/mossy_nyxite_bricks" + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite.json index 1c17e6da..85bbe759 100644 --- a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite.json +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite.json @@ -1,6 +1,6 @@ { "parent": "minecraft:block/cube_all", "textures": { - "all": "antarchy:block/myrmite" + "all": "antarchy:block/myrmite/myrmite" } } diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_slab.json new file mode 100644 index 00000000..e649f0a8 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_slab.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "antarchy:block/myrmite/myrmite_bricks", + "side": "antarchy:block/myrmite/myrmite_bricks", + "top": "antarchy:block/myrmite/myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_slab_top.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_slab_top.json new file mode 100644 index 00000000..f5b77f36 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_slab_top.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "antarchy:block/myrmite/myrmite_bricks", + "side": "antarchy:block/myrmite/myrmite_bricks", + "top": "antarchy:block/myrmite/myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_stairs.json new file mode 100644 index 00000000..41bd6051 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_stairs.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "antarchy:block/myrmite/myrmite_bricks", + "side": "antarchy:block/myrmite/myrmite_bricks", + "top": "antarchy:block/myrmite/myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_stairs_inner.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_stairs_inner.json new file mode 100644 index 00000000..1db89fba --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_stairs_inner.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "antarchy:block/myrmite/myrmite_bricks", + "side": "antarchy:block/myrmite/myrmite_bricks", + "top": "antarchy:block/myrmite/myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_stairs_outer.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_stairs_outer.json new file mode 100644 index 00000000..86aae4f7 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_stairs_outer.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "antarchy:block/myrmite/myrmite_bricks", + "side": "antarchy:block/myrmite/myrmite_bricks", + "top": "antarchy:block/myrmite/myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_wall_inventory.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_wall_inventory.json new file mode 100644 index 00000000..5916b87f --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_wall_inventory.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "antarchy:block/myrmite/myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_wall_post.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_wall_post.json new file mode 100644 index 00000000..04c85024 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_wall_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "antarchy:block/myrmite/myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_wall_side.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_wall_side.json new file mode 100644 index 00000000..e29ef46c --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_wall_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "antarchy:block/myrmite/myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_wall_side_tall.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_wall_side_tall.json new file mode 100644 index 00000000..3fe8a82f --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_wall_side_tall.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "antarchy:block/myrmite/myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_bricks.json new file mode 100644 index 00000000..ae46b25f --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/myrmite/myrmite_bricks" + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_coal_ore.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_coal_ore.json index 47ee96fb..3a95e257 100644 --- a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_coal_ore.json +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_coal_ore.json @@ -1,6 +1,6 @@ { "parent": "minecraft:block/cube_all", "textures": { - "all": "antarchy:block/myrmite_coal_ore" + "all": "antarchy:block/myrmite/myrmite_coal_ore" } } diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_pillar.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_pillar.json new file mode 100644 index 00000000..2ec4cada --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_pillar.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "antarchy:block/myrmite/myrmite_pillar_top", + "side": "antarchy:block/myrmite/myrmite_pillar" + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_slab.json new file mode 100644 index 00000000..b61ee3ef --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_slab.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "antarchy:block/myrmite/myrmite", + "side": "antarchy:block/myrmite/myrmite", + "top": "antarchy:block/myrmite/myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_slab_top.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_slab_top.json new file mode 100644 index 00000000..67e65d03 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_slab_top.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "antarchy:block/myrmite/myrmite", + "side": "antarchy:block/myrmite/myrmite", + "top": "antarchy:block/myrmite/myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_stairs.json new file mode 100644 index 00000000..25aeeb6d --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_stairs.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "antarchy:block/myrmite/myrmite", + "side": "antarchy:block/myrmite/myrmite", + "top": "antarchy:block/myrmite/myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_stairs_inner.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_stairs_inner.json new file mode 100644 index 00000000..3c36ca44 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_stairs_inner.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "antarchy:block/myrmite/myrmite", + "side": "antarchy:block/myrmite/myrmite", + "top": "antarchy:block/myrmite/myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_stairs_outer.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_stairs_outer.json new file mode 100644 index 00000000..75af00e3 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_stairs_outer.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "antarchy:block/myrmite/myrmite", + "side": "antarchy:block/myrmite/myrmite", + "top": "antarchy:block/myrmite/myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_inventory.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_inventory.json new file mode 100644 index 00000000..64dd50eb --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_inventory.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "antarchy:block/myrmite/myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_post.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_post.json new file mode 100644 index 00000000..9bca3525 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "antarchy:block/myrmite/myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_side.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_side.json new file mode 100644 index 00000000..d2ff81a9 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "antarchy:block/myrmite/myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_side_tall.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_side_tall.json new file mode 100644 index 00000000..c6991765 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_side_tall.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "antarchy:block/myrmite/myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/packed_loam.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/packed_loam.json new file mode 100644 index 00000000..e3f900be --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/packed_loam.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/loam/packed_loam" + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite.json new file mode 100644 index 00000000..24683707 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/myrmite/polished_myrmite" + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_slab.json new file mode 100644 index 00000000..189e248b --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_slab.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "antarchy:block/myrmite/polished_myrmite", + "side": "antarchy:block/myrmite/polished_myrmite", + "top": "antarchy:block/myrmite/polished_myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_slab_top.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_slab_top.json new file mode 100644 index 00000000..d7279f33 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_slab_top.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "antarchy:block/myrmite/polished_myrmite", + "side": "antarchy:block/myrmite/polished_myrmite", + "top": "antarchy:block/myrmite/polished_myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_stairs.json new file mode 100644 index 00000000..ec25fe5a --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_stairs.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "antarchy:block/myrmite/polished_myrmite", + "side": "antarchy:block/myrmite/polished_myrmite", + "top": "antarchy:block/myrmite/polished_myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_stairs_inner.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_stairs_inner.json new file mode 100644 index 00000000..bf627f6e --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_stairs_inner.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "antarchy:block/myrmite/polished_myrmite", + "side": "antarchy:block/myrmite/polished_myrmite", + "top": "antarchy:block/myrmite/polished_myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_stairs_outer.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_stairs_outer.json new file mode 100644 index 00000000..13456646 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_stairs_outer.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "antarchy:block/myrmite/polished_myrmite", + "side": "antarchy:block/myrmite/polished_myrmite", + "top": "antarchy:block/myrmite/polished_myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_wall_inventory.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_wall_inventory.json new file mode 100644 index 00000000..39e267e1 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_wall_inventory.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "antarchy:block/myrmite/polished_myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_wall_post.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_wall_post.json new file mode 100644 index 00000000..d3eb80e0 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_wall_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "antarchy:block/myrmite/polished_myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_wall_side.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_wall_side.json new file mode 100644 index 00000000..af63d96f --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_wall_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "antarchy:block/myrmite/polished_myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_wall_side_tall.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_wall_side_tall.json new file mode 100644 index 00000000..41a26bd9 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_wall_side_tall.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "antarchy:block/myrmite/polished_myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/prince_egg.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/prince_egg.json index e69de29b..ac4ec554 100644 --- a/common-1.21.1/src/main/resources/assets/antarchy/models/block/prince_egg.json +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/prince_egg.json @@ -0,0 +1,104 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "minecraft:block/flower_pot", + "flowerpot": "minecraft:block/flower_pot", + "dirt": "minecraft:block/dirt", + "stem": "antarchy:block/spider_lily_stem", + "flower": "antarchy:block/spider_lily_top" + }, + "elements": [ + { + "from": [5, 0, 5], + "to": [6, 6, 11], + "faces": { + "down": { "uv": [5, 5, 6, 11], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [5, 5, 6, 11], "texture": "#flowerpot" }, + "north": { "uv": [10, 10, 11, 16], "texture": "#flowerpot" }, + "south": { "uv": [5, 10, 6, 16], "texture": "#flowerpot" }, + "west": { "uv": [5, 10, 11, 16], "texture": "#flowerpot" }, + "east": { "uv": [5, 10, 11, 16], "texture": "#flowerpot" } + } + }, + { + "from": [10, 0, 5], + "to": [11, 6, 11], + "faces": { + "down": { "uv": [10, 5, 11, 11], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [10, 5, 11, 11], "texture": "#flowerpot" }, + "north": { "uv": [5, 10, 6, 16], "texture": "#flowerpot" }, + "south": { "uv": [10, 10, 11, 16], "texture": "#flowerpot" }, + "west": { "uv": [5, 10, 11, 16], "texture": "#flowerpot" }, + "east": { "uv": [5, 10, 11, 16], "texture": "#flowerpot" } + } + }, + { + "from": [6, 0, 5], + "to": [10, 6, 6], + "faces": { + "down": { "uv": [6, 10, 10, 11], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [6, 5, 10, 6], "texture": "#flowerpot" }, + "north": { "uv": [6, 10, 10, 16], "texture": "#flowerpot" }, + "south": { "uv": [6, 10, 10, 16], "texture": "#flowerpot" } + } + }, + { + "from": [6, 0, 10], + "to": [10, 6, 11], + "faces": { + "down": { "uv": [6, 5, 10, 6], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [6, 10, 10, 11], "texture": "#flowerpot" }, + "north": { "uv": [6, 10, 10, 16], "texture": "#flowerpot" }, + "south": { "uv": [6, 10, 10, 16], "texture": "#flowerpot" } + } + }, + { + "from": [6, 0, 6], + "to": [10, 4, 10], + "faces": { + "down": { "uv": [6, 12, 10, 16], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [6, 6, 10, 10], "texture": "#dirt" } + } + }, + { + "from": [2.6, 4, 8], + "to": [13.4, 16, 8], + "rotation": { "origin": [8, 8, 8], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [0, 0, 16, 16], "texture": "#stem", "tintindex": 0 }, + "south": { "uv": [0, 0, 16, 16], "texture": "#stem", "tintindex": 0 } + } + }, + { + "from": [8, 4, 2.6], + "to": [8, 16, 13.4], + "rotation": { "origin": [8, 8, 8], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [0, 0, 16, 16], "texture": "#stem", "tintindex": 0 }, + "east": { "uv": [0, 0, 16, 16], "texture": "#stem", "tintindex": 0 } + } + }, + { + "from": [2.6, 4, 8], + "to": [13.4, 16, 8], + "rotation": { "origin": [8, 8, 8], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [0, 0, 16, 16], "texture": "#flower" }, + "south": { "uv": [0, 0, 16, 16], "texture": "#flower" } + } + }, + { + "from": [8, 4, 2.6], + "to": [8, 16, 13.4], + "rotation": { "origin": [8, 8, 8], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [0, 0, 16, 16], "texture": "#flower" }, + "east": { "uv": [0, 0, 16, 16], "texture": "#flower" } + } + } + ] +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/princess_egg.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/princess_egg.json index e69de29b..ac4ec554 100644 --- a/common-1.21.1/src/main/resources/assets/antarchy/models/block/princess_egg.json +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/princess_egg.json @@ -0,0 +1,104 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "minecraft:block/flower_pot", + "flowerpot": "minecraft:block/flower_pot", + "dirt": "minecraft:block/dirt", + "stem": "antarchy:block/spider_lily_stem", + "flower": "antarchy:block/spider_lily_top" + }, + "elements": [ + { + "from": [5, 0, 5], + "to": [6, 6, 11], + "faces": { + "down": { "uv": [5, 5, 6, 11], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [5, 5, 6, 11], "texture": "#flowerpot" }, + "north": { "uv": [10, 10, 11, 16], "texture": "#flowerpot" }, + "south": { "uv": [5, 10, 6, 16], "texture": "#flowerpot" }, + "west": { "uv": [5, 10, 11, 16], "texture": "#flowerpot" }, + "east": { "uv": [5, 10, 11, 16], "texture": "#flowerpot" } + } + }, + { + "from": [10, 0, 5], + "to": [11, 6, 11], + "faces": { + "down": { "uv": [10, 5, 11, 11], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [10, 5, 11, 11], "texture": "#flowerpot" }, + "north": { "uv": [5, 10, 6, 16], "texture": "#flowerpot" }, + "south": { "uv": [10, 10, 11, 16], "texture": "#flowerpot" }, + "west": { "uv": [5, 10, 11, 16], "texture": "#flowerpot" }, + "east": { "uv": [5, 10, 11, 16], "texture": "#flowerpot" } + } + }, + { + "from": [6, 0, 5], + "to": [10, 6, 6], + "faces": { + "down": { "uv": [6, 10, 10, 11], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [6, 5, 10, 6], "texture": "#flowerpot" }, + "north": { "uv": [6, 10, 10, 16], "texture": "#flowerpot" }, + "south": { "uv": [6, 10, 10, 16], "texture": "#flowerpot" } + } + }, + { + "from": [6, 0, 10], + "to": [10, 6, 11], + "faces": { + "down": { "uv": [6, 5, 10, 6], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [6, 10, 10, 11], "texture": "#flowerpot" }, + "north": { "uv": [6, 10, 10, 16], "texture": "#flowerpot" }, + "south": { "uv": [6, 10, 10, 16], "texture": "#flowerpot" } + } + }, + { + "from": [6, 0, 6], + "to": [10, 4, 10], + "faces": { + "down": { "uv": [6, 12, 10, 16], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [6, 6, 10, 10], "texture": "#dirt" } + } + }, + { + "from": [2.6, 4, 8], + "to": [13.4, 16, 8], + "rotation": { "origin": [8, 8, 8], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [0, 0, 16, 16], "texture": "#stem", "tintindex": 0 }, + "south": { "uv": [0, 0, 16, 16], "texture": "#stem", "tintindex": 0 } + } + }, + { + "from": [8, 4, 2.6], + "to": [8, 16, 13.4], + "rotation": { "origin": [8, 8, 8], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [0, 0, 16, 16], "texture": "#stem", "tintindex": 0 }, + "east": { "uv": [0, 0, 16, 16], "texture": "#stem", "tintindex": 0 } + } + }, + { + "from": [2.6, 4, 8], + "to": [13.4, 16, 8], + "rotation": { "origin": [8, 8, 8], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [0, 0, 16, 16], "texture": "#flower" }, + "south": { "uv": [0, 0, 16, 16], "texture": "#flower" } + } + }, + { + "from": [8, 4, 2.6], + "to": [8, 16, 13.4], + "rotation": { "origin": [8, 8, 8], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [0, 0, 16, 16], "texture": "#flower" }, + "east": { "uv": [0, 0, 16, 16], "texture": "#flower" } + } + } + ] +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/block/tigers_eye_block.json b/common-1.21.1/src/main/resources/assets/antarchy/models/block/tigers_eye_block.json new file mode 100644 index 00000000..d0ee2a12 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/block/tigers_eye_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/tigers_eye_block" + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/cheep_bucket.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/cheep_bucket.json new file mode 100644 index 00000000..cf6e318d --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/cheep_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/cheep_bucket" + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/chiseled_loam_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/chiseled_loam_bricks.json new file mode 100644 index 00000000..4848c402 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/chiseled_loam_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/chiseled_loam_bricks" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/chiseled_myrmite.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/chiseled_myrmite.json new file mode 100644 index 00000000..f6ed9fed --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/chiseled_myrmite.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/chiseled_myrmite" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/cooked_cheep.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/cooked_cheep.json new file mode 100644 index 00000000..13aae4b6 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/cooked_cheep.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/cooked_cheep" + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/loam_brick_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/loam_brick_slab.json new file mode 100644 index 00000000..08cff16f --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/loam_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/loam_brick_slab" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/loam_brick_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/loam_brick_stairs.json new file mode 100644 index 00000000..1af348a6 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/loam_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/loam_brick_stairs" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/loam_brick_wall.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/loam_brick_wall.json new file mode 100644 index 00000000..69232367 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/loam_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/loam_brick_wall_inventory" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/loam_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/loam_bricks.json new file mode 100644 index 00000000..63f272d6 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/loam_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/loam_bricks" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_brick_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_brick_slab.json new file mode 100644 index 00000000..76d14140 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/mossy_broodstone_brick_slab" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_brick_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_brick_stairs.json new file mode 100644 index 00000000..ad25a971 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/mossy_broodstone_brick_stairs" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_brick_wall.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_brick_wall.json new file mode 100644 index 00000000..53204d61 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/mossy_broodstone_brick_wall_inventory" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_bricks.json new file mode 100644 index 00000000..45f7f40a --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/mossy_broodstone_bricks" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_brick_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_brick_slab.json new file mode 100644 index 00000000..9d08d7e3 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/mossy_myrmite_brick_slab" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_brick_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_brick_stairs.json new file mode 100644 index 00000000..07706452 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/mossy_myrmite_brick_stairs" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_brick_wall.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_brick_wall.json new file mode 100644 index 00000000..b57e7fba --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/mossy_myrmite_brick_wall_inventory" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_bricks.json new file mode 100644 index 00000000..cbacdfb2 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/mossy_myrmite_bricks" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_brick_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_brick_slab.json new file mode 100644 index 00000000..53dce708 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/mossy_nyxite_brick_slab" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_brick_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_brick_stairs.json new file mode 100644 index 00000000..853e930e --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/mossy_nyxite_brick_stairs" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_brick_wall.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_brick_wall.json new file mode 100644 index 00000000..6003227f --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/mossy_nyxite_brick_wall_inventory" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_bricks.json new file mode 100644 index 00000000..52e77afd --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/mossy_nyxite_bricks" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_brick_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_brick_slab.json new file mode 100644 index 00000000..4670ff48 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/myrmite_brick_slab" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_brick_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_brick_stairs.json new file mode 100644 index 00000000..9f800c94 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/myrmite_brick_stairs" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_brick_wall.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_brick_wall.json new file mode 100644 index 00000000..89a18bbe --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/myrmite_brick_wall_inventory" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_bricks.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_bricks.json new file mode 100644 index 00000000..943915c1 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/myrmite_bricks" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_pillar.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_pillar.json new file mode 100644 index 00000000..38cb75db --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_pillar.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/myrmite_pillar" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_slab.json new file mode 100644 index 00000000..ab1f1535 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/myrmite_slab" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_stairs.json new file mode 100644 index 00000000..a4336037 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/myrmite_stairs" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_wall.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_wall.json new file mode 100644 index 00000000..a3dcf91f --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/myrmite_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/myrmite_wall_inventory" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/packed_loam.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/packed_loam.json new file mode 100644 index 00000000..05025f63 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/packed_loam.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/packed_loam" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/polished_myrmite.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/polished_myrmite.json new file mode 100644 index 00000000..91b1e049 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/polished_myrmite.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/polished_myrmite" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/polished_myrmite_slab.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/polished_myrmite_slab.json new file mode 100644 index 00000000..55f00249 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/polished_myrmite_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/polished_myrmite_slab" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/polished_myrmite_stairs.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/polished_myrmite_stairs.json new file mode 100644 index 00000000..6a72618a --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/polished_myrmite_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/polished_myrmite_stairs" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/polished_myrmite_wall.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/polished_myrmite_wall.json new file mode 100644 index 00000000..0bdea15d --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/polished_myrmite_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/polished_myrmite_wall_inventory" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/portal_gun_held_geo.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/portal_gun_held_geo.json new file mode 100644 index 00000000..a3e7718f --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/portal_gun_held_geo.json @@ -0,0 +1,126 @@ +{ + "parent": "builtin/entity", + "display": { + "thirdperson_righthand": { + "rotation": [ + 10, + 0, + 0 + ], + "translation": [ + 0, + 0, + -5 + ], + "scale": [ + 0.55, + 0.55, + 0.55 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 10, + 0, + 0 + ], + "translation": [ + 0, + 0, + -5 + ], + "scale": [ + 0.55, + 0.55, + 0.55 + ] + }, + "firstperson_righthand": { + "rotation": [ + 5, + 0, + 0 + ], + "translation": [ + 0, + 1, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 5, + 0, + 0 + ], + "translation": [ + 0, + 1, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 2, + 0 + ], + "scale": [ + 0.5, + 0.5, + 0.5 + ] + }, + "gui": { + "rotation": [ + 30, + -135, + 0 + ], + "translation": [ + 1, + -2, + 0 + ], + "scale": [ + 0.5, + 0.5, + 0.5 + ] + }, + "fixed": { + "rotation": [ + 90, + 45, + -90 + ], + "translation": [ + -3, + -1, + 0 + ], + "scale": [ + 0.8, + 0.8, + 0.8 + ] + }, + "on_shelf": { + "rotation": [ + 90, + 0, + 0 + ] + } + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/tigers_eye_block.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/tigers_eye_block.json new file mode 100644 index 00000000..798488ea --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/tigers_eye_block.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/tigers_eye_block" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/worm_hook.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/worm_hook.json new file mode 100644 index 00000000..06f8ad58 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/worm_hook.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/worm_hook" + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/worm_spawn_egg.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/worm_spawn_egg.json new file mode 100644 index 00000000..ddd15597 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/worm_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/worm_tooth.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/worm_tooth.json new file mode 100644 index 00000000..0f87351f --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/worm_tooth.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/worm_tooth" + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds.json b/common-1.21.1/src/main/resources/assets/antarchy/sounds.json index b723d4d2..19997bc4 100644 --- a/common-1.21.1/src/main/resources/assets/antarchy/sounds.json +++ b/common-1.21.1/src/main/resources/assets/antarchy/sounds.json @@ -1477,6 +1477,81 @@ } ] }, + "portal_gun_fire_blue": { + "subtitle": "subtitles.antarchy.portal_gun_fire_blue", + "sounds": [ + { + "name": "antarchy:portalgun/wpn_portal_gun_fire_blue_01" + }, + { + "name": "antarchy:portalgun/wpn_portal_gun_fire_blue_02" + }, + { + "name": "antarchy:portalgun/wpn_portal_gun_fire_blue_03" + } + ] + }, + "portal_gun_fire_orange": { + "subtitle": "subtitles.antarchy.portal_gun_fire_orange", + "sounds": [ + { + "name": "antarchy:portalgun/wpn_portal_gun_fire_red_01" + }, + { + "name": "antarchy:portalgun/wpn_portal_gun_fire_red_02" + }, + { + "name": "antarchy:portalgun/wpn_portal_gun_fire_red_03" + } + ] + }, + "portal_gun_invalid_surface": { + "subtitle": "subtitles.antarchy.portal_gun_invalid_surface", + "sounds": [ + { + "name": "antarchy:portalgun/portal_invalid_surface_swt_01" + }, + { + "name": "antarchy:portal/portal_invalid_surface_01" + }, + { + "name": "antarchy:portal/portal_invalid_surface_02" + }, + { + "name": "antarchy:portal/portal_invalid_surface_03" + }, + { + "name": "antarchy:portal/portal_invalid_surface_04" + } + ] + }, + "portal_open_blue": { + "subtitle": "subtitles.antarchy.portal_open_blue", + "sounds": [ + { + "name": "antarchy:portal/portal_open_blue_01" + } + ] + }, + "portal_open_orange": { + "subtitle": "subtitles.antarchy.portal_open_orange", + "sounds": [ + { + "name": "antarchy:portal/portal_open_red_01" + } + ] + }, + "portal_fizzle": { + "subtitle": "subtitles.antarchy.portal_fizzle", + "sounds": [ + { + "name": "antarchy:portal/portal_fizzle_01" + }, + { + "name": "antarchy:portal/portal_fizzle_02" + } + ] + }, "bed_bug_ambient": { "subtitle": "subtitles.antarchy.bed_bug_ambient", "sounds": [ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_fizzle_01.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_fizzle_01.ogg new file mode 100644 index 00000000..016e6497 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_fizzle_01.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_fizzle_02.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_fizzle_02.ogg new file mode 100644 index 00000000..3b098d13 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_fizzle_02.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_01.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_01.ogg new file mode 100644 index 00000000..13b92e09 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_01.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_02.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_02.ogg new file mode 100644 index 00000000..42523ce1 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_02.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_03.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_03.ogg new file mode 100644 index 00000000..fb44c39e Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_03.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_04.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_04.ogg new file mode 100644 index 00000000..0e738338 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_04.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_open_blue_01.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_open_blue_01.ogg new file mode 100644 index 00000000..0bb0d9e5 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_open_blue_01.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_open_red_01.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_open_red_01.ogg new file mode 100644 index 00000000..ed50b3bf Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portal/portal_open_red_01.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/portal_invalid_surface_swt_01.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/portal_invalid_surface_swt_01.ogg new file mode 100644 index 00000000..5120a913 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/portal_invalid_surface_swt_01.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_blue_01.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_blue_01.ogg new file mode 100644 index 00000000..68d866bc Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_blue_01.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_blue_02.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_blue_02.ogg new file mode 100644 index 00000000..8c8c407c Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_blue_02.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_blue_03.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_blue_03.ogg new file mode 100644 index 00000000..9dc78b09 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_blue_03.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_red_01.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_red_01.ogg new file mode 100644 index 00000000..97e7625a Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_red_01.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_red_02.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_red_02.ogg new file mode 100644 index 00000000..efd191a8 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_red_02.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_red_03.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_red_03.ogg new file mode 100644 index 00000000..ae4c631b Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/portalgun/wpn_portal_gun_fire_red_03.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/vfx/portal_gun_black_hole.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/vfx/portal_gun_black_hole.png new file mode 100644 index 00000000..2661e379 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/vfx/portal_gun_black_hole.png differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/vfx/portal_gun_portal_blue.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/vfx/portal_gun_portal_blue.png new file mode 100644 index 00000000..eade5fe3 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/vfx/portal_gun_portal_blue.png differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/vfx/portal_gun_portal_orange.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/vfx/portal_gun_portal_orange.png new file mode 100644 index 00000000..eade5fe3 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/vfx/portal_gun_portal_orange.png differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_loam_bricks.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_loam_bricks.json new file mode 100644 index 00000000..84717bad --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_loam_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiseled_loam_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/chiseled_loam_bricks" +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_myrmite.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_myrmite.json new file mode 100644 index 00000000..3dcb8a62 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_myrmite.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiseled_myrmite" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/chiseled_myrmite" +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/loam_brick_slab.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/loam_brick_slab.json new file mode 100644 index 00000000..f10a57ee --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/loam_brick_slab.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:loam_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:loam_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/loam_brick_slab" +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/loam_brick_stairs.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/loam_brick_stairs.json new file mode 100644 index 00000000..a664f3c8 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/loam_brick_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:loam_brick_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/loam_brick_wall.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/loam_brick_wall.json new file mode 100644 index 00000000..dd93ccb4 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/loam_brick_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:loam_brick_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/loam_bricks.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/loam_bricks.json new file mode 100644 index 00000000..e4752904 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/loam_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:loam_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/loam_bricks" +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_broodstone_brick_slab.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_broodstone_brick_slab.json new file mode 100644 index 00000000..992b3eb9 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_broodstone_brick_slab.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:mossy_broodstone_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:mossy_broodstone_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/mossy_broodstone_brick_slab" +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_broodstone_brick_stairs.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_broodstone_brick_stairs.json new file mode 100644 index 00000000..55deec61 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_broodstone_brick_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mossy_broodstone_brick_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_broodstone_brick_wall.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_broodstone_brick_wall.json new file mode 100644 index 00000000..67e5682b --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_broodstone_brick_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mossy_broodstone_brick_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_broodstone_bricks.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_broodstone_bricks.json new file mode 100644 index 00000000..d5bf8507 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_broodstone_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mossy_broodstone_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/mossy_broodstone_bricks" +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_myrmite_brick_slab.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_myrmite_brick_slab.json new file mode 100644 index 00000000..2f78608f --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_myrmite_brick_slab.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:mossy_myrmite_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:mossy_myrmite_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/mossy_myrmite_brick_slab" +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_myrmite_brick_stairs.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_myrmite_brick_stairs.json new file mode 100644 index 00000000..c61d7253 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_myrmite_brick_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mossy_myrmite_brick_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_myrmite_brick_wall.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_myrmite_brick_wall.json new file mode 100644 index 00000000..6ec5a544 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_myrmite_brick_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mossy_myrmite_brick_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_myrmite_bricks.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_myrmite_bricks.json new file mode 100644 index 00000000..5385d794 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_myrmite_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mossy_myrmite_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/mossy_myrmite_bricks" +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_nyxite_brick_slab.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_nyxite_brick_slab.json new file mode 100644 index 00000000..469e6532 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_nyxite_brick_slab.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:mossy_nyxite_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:mossy_nyxite_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/mossy_nyxite_brick_slab" +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_nyxite_brick_stairs.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_nyxite_brick_stairs.json new file mode 100644 index 00000000..84ba1f68 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_nyxite_brick_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mossy_nyxite_brick_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_nyxite_brick_wall.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_nyxite_brick_wall.json new file mode 100644 index 00000000..e1cf26a0 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_nyxite_brick_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mossy_nyxite_brick_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_nyxite_bricks.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_nyxite_bricks.json new file mode 100644 index 00000000..c77bae00 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_nyxite_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mossy_nyxite_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/mossy_nyxite_bricks" +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_brick_slab.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_brick_slab.json new file mode 100644 index 00000000..ba592e73 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_brick_slab.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:myrmite_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:myrmite_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/myrmite_brick_slab" +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_brick_stairs.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_brick_stairs.json new file mode 100644 index 00000000..9c1870f8 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_brick_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:myrmite_brick_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_brick_wall.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_brick_wall.json new file mode 100644 index 00000000..a56b916e --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_brick_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:myrmite_brick_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_bricks.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_bricks.json new file mode 100644 index 00000000..14a3fe25 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:myrmite_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/myrmite_bricks" +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_slab.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_slab.json new file mode 100644 index 00000000..b99c86e9 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_slab.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:myrmite_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:myrmite_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/myrmite_slab" +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_stairs.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_stairs.json new file mode 100644 index 00000000..96c9860c --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:myrmite_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_wall.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_wall.json new file mode 100644 index 00000000..6c04fa09 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:myrmite_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/packed_loam.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/packed_loam.json new file mode 100644 index 00000000..193e4afc --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/packed_loam.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:packed_loam" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/packed_loam" +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite.json new file mode 100644 index 00000000..9542c810 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_myrmite" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/polished_myrmite" +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite_slab.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite_slab.json new file mode 100644 index 00000000..5f5357f1 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite_slab.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:polished_myrmite_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:polished_myrmite_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/polished_myrmite_slab" +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite_stairs.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite_stairs.json new file mode 100644 index 00000000..4425c913 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_myrmite_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite_wall.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite_wall.json new file mode 100644 index 00000000..4954c852 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_myrmite_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/tigers_eye_block.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/tigers_eye_block.json new file mode 100644 index 00000000..66673844 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/blocks/tigers_eye_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:tigers_eye_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/entities/worm.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/entities/worm.json new file mode 100644 index 00000000..c9cec376 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/entities/worm.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:worm_tooth", + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ] + } + ] + } + ] +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/big_bertha_hilt.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/big_bertha_hilt.json index e79685e8..4c4efb91 100644 --- a/common-1.21.1/src/main/resources/data/antarchy/recipe/big_bertha_hilt.json +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/big_bertha_hilt.json @@ -20,10 +20,10 @@ "item": "antarchy:jerry_nucleus" }, "E": { - "item": "antarchy:rainbow_sugar" + "item": "antarchy:primordial_scute" }, "F": { - "item": "antarchy:primordial_scute" + "item": "antarchy:worm_tooth" }, "G": { "item": "antarchy:hercules_horn" diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/bloodstone.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/bloodstone.json index e69de29b..f187ca03 100644 --- a/common-1.21.1/src/main/resources/data/antarchy/recipe/bloodstone.json +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/bloodstone.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "S S", + "S S" + ], + "key": { + "S": { + "item": "antarchy:blood_crystal_shard" + } + }, + "result": { + "id": "antarchy:blood_crystal_leggings", + "count": 1 + } +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/broodstone.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/broodstone.json new file mode 100644 index 00000000..727f95c9 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/broodstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "D": { + "item": "minecraft:deepslate" + }, + "B": { + "item": "antarchy:broodfruit" + } + }, + "pattern": [ + "DDD", + "DBD", + "DDD" + ], + "result": { + "count": 8, + "id": "antarchy:broodstone" + } +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/chiseled_loam_bricks.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/chiseled_loam_bricks.json new file mode 100644 index 00000000..574ab2a8 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/chiseled_loam_bricks.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:loam_brick_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "id": "antarchy:chiseled_loam_bricks" + } +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/chiseled_myrmite.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/chiseled_myrmite.json new file mode 100644 index 00000000..79bd6fb8 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/chiseled_myrmite.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_myrmite_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "id": "antarchy:chiseled_myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/chiseled_myrmite_from_polished_myrmite_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/chiseled_myrmite_from_polished_myrmite_stonecutting.json new file mode 100644 index 00000000..42110fd1 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/chiseled_myrmite_from_polished_myrmite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_myrmite" + }, + "result": { + "id": "antarchy:chiseled_myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/cooked_cheep_from_smelting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/cooked_cheep_from_smelting.json new file mode 100644 index 00000000..e47ef9a8 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/cooked_cheep_from_smelting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "food", + "cookingtime": 200, + "experience": 0.35, + "ingredient": { + "item": "antarchy:cheep" + }, + "result": { + "id": "antarchy:cooked_cheep" + } +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/cooked_cheep_from_smoking.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/cooked_cheep_from_smoking.json new file mode 100644 index 00000000..5dd679c6 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/cooked_cheep_from_smoking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smoking", + "category": "food", + "cookingtime": 100, + "experience": 0.35, + "ingredient": { + "item": "antarchy:cheep" + }, + "result": { + "id": "antarchy:cooked_cheep" + } +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/loam_brick_slab.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/loam_brick_slab.json new file mode 100644 index 00000000..a0efbd12 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/loam_brick_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:loam_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:loam_brick_slab" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/loam_brick_stairs.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/loam_brick_stairs.json new file mode 100644 index 00000000..ed75a904 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/loam_brick_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:loam_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:loam_brick_stairs" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/loam_brick_wall.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/loam_brick_wall.json new file mode 100644 index 00000000..d3af987d --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/loam_brick_wall.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:loam_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:loam_brick_wall" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/loam_bricks.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/loam_bricks.json new file mode 100644 index 00000000..d31a26bf --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/loam_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:packed_loam" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "antarchy:loam_bricks" + } +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_slab.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_slab.json new file mode 100644 index 00000000..7c6134cc --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:mossy_broodstone_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:mossy_broodstone_brick_slab" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_slab_from_mossy_broodstone_bricks_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_slab_from_mossy_broodstone_bricks_stonecutting.json new file mode 100644 index 00000000..6c8da0df --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_slab_from_mossy_broodstone_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:mossy_broodstone_bricks" + }, + "result": { + "id": "antarchy:mossy_broodstone_brick_slab" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_stairs.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_stairs.json new file mode 100644 index 00000000..ad51acc1 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:mossy_broodstone_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:mossy_broodstone_brick_stairs" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_stairs_from_mossy_broodstone_bricks_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_stairs_from_mossy_broodstone_bricks_stonecutting.json new file mode 100644 index 00000000..274775f2 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_stairs_from_mossy_broodstone_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:mossy_broodstone_bricks" + }, + "result": { + "id": "antarchy:mossy_broodstone_brick_stairs" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_wall.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_wall.json new file mode 100644 index 00000000..a091695c --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_wall.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:mossy_broodstone_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:mossy_broodstone_brick_wall" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_wall_from_mossy_broodstone_bricks_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_wall_from_mossy_broodstone_bricks_stonecutting.json new file mode 100644 index 00000000..8da8fdd1 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_wall_from_mossy_broodstone_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:mossy_broodstone_bricks" + }, + "result": { + "id": "antarchy:mossy_broodstone_brick_wall" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_bricks.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_bricks.json new file mode 100644 index 00000000..080e1b00 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "antarchy:broodstone_bricks" + }, + { + "item": "antarchy:amber_moss_block" + } + ], + "result": { + "count": 1, + "id": "antarchy:mossy_broodstone_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_slab.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_slab.json new file mode 100644 index 00000000..3898cd91 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:mossy_myrmite_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:mossy_myrmite_brick_slab" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_slab_from_mossy_myrmite_bricks_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_slab_from_mossy_myrmite_bricks_stonecutting.json new file mode 100644 index 00000000..1b269468 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_slab_from_mossy_myrmite_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:mossy_myrmite_bricks" + }, + "result": { + "id": "antarchy:mossy_myrmite_brick_slab" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_stairs.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_stairs.json new file mode 100644 index 00000000..f11066f5 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:mossy_myrmite_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:mossy_myrmite_brick_stairs" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_stairs_from_mossy_myrmite_bricks_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_stairs_from_mossy_myrmite_bricks_stonecutting.json new file mode 100644 index 00000000..ef6ddaa0 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_stairs_from_mossy_myrmite_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:mossy_myrmite_bricks" + }, + "result": { + "id": "antarchy:mossy_myrmite_brick_stairs" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_wall.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_wall.json new file mode 100644 index 00000000..e7fd8046 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_wall.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:mossy_myrmite_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:mossy_myrmite_brick_wall" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_wall_from_mossy_myrmite_bricks_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_wall_from_mossy_myrmite_bricks_stonecutting.json new file mode 100644 index 00000000..53dcf877 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_wall_from_mossy_myrmite_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:mossy_myrmite_bricks" + }, + "result": { + "id": "antarchy:mossy_myrmite_brick_wall" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_bricks.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_bricks.json new file mode 100644 index 00000000..0318a6d8 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "antarchy:myrmite_bricks" + }, + { + "item": "antarchy:amber_moss_block" + } + ], + "result": { + "count": 1, + "id": "antarchy:mossy_myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_slab.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_slab.json new file mode 100644 index 00000000..d7dae129 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:mossy_nyxite_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:mossy_nyxite_brick_slab" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_slab_from_mossy_nyxite_bricks_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_slab_from_mossy_nyxite_bricks_stonecutting.json new file mode 100644 index 00000000..0cb77f17 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_slab_from_mossy_nyxite_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:mossy_nyxite_bricks" + }, + "result": { + "id": "antarchy:mossy_nyxite_brick_slab" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_stairs.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_stairs.json new file mode 100644 index 00000000..9d57de59 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:mossy_nyxite_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:mossy_nyxite_brick_stairs" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_stairs_from_mossy_nyxite_bricks_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_stairs_from_mossy_nyxite_bricks_stonecutting.json new file mode 100644 index 00000000..33b02515 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_stairs_from_mossy_nyxite_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:mossy_nyxite_bricks" + }, + "result": { + "id": "antarchy:mossy_nyxite_brick_stairs" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_wall.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_wall.json new file mode 100644 index 00000000..b1b2c905 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_wall.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:mossy_nyxite_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:mossy_nyxite_brick_wall" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_wall_from_mossy_nyxite_bricks_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_wall_from_mossy_nyxite_bricks_stonecutting.json new file mode 100644 index 00000000..15cddcc3 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_wall_from_mossy_nyxite_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:mossy_nyxite_bricks" + }, + "result": { + "id": "antarchy:mossy_nyxite_brick_wall" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_bricks.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_bricks.json new file mode 100644 index 00000000..da1d0543 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "antarchy:nyxite_bricks" + }, + { + "item": "antarchy:umbral_moss_block" + } + ], + "result": { + "count": 1, + "id": "antarchy:mossy_nyxite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite.json index e69de29b..9ce32863 100644 --- a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite.json +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:stone" + }, + "C": { + "item": "antarchy:chitin" + } + }, + "pattern": [ + "SSS", + "SCS", + "SSS" + ], + "result": { + "count": 8, + "id": "antarchy:myrmite" + } +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_slab.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_slab.json new file mode 100644 index 00000000..72acde9e --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:myrmite_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:myrmite_brick_slab" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_slab_from_myrmite_bricks_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_slab_from_myrmite_bricks_stonecutting.json new file mode 100644 index 00000000..e9bc1ef0 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_slab_from_myrmite_bricks_stonecutting.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:myrmite_bricks" + }, + "result": { + "count": 2, + "id": "antarchy:myrmite_brick_slab" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_stairs.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_stairs.json new file mode 100644 index 00000000..55966bad --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:myrmite_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:myrmite_brick_stairs" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_stairs_from_myrmite_bricks_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_stairs_from_myrmite_bricks_stonecutting.json new file mode 100644 index 00000000..9214e15d --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_stairs_from_myrmite_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:myrmite_bricks" + }, + "result": { + "id": "antarchy:myrmite_brick_stairs" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_wall.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_wall.json new file mode 100644 index 00000000..9685d72f --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_wall.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:myrmite_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:myrmite_brick_wall" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_wall_from_myrmite_bricks_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_wall_from_myrmite_bricks_stonecutting.json new file mode 100644 index 00000000..6152205a --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_brick_wall_from_myrmite_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:myrmite_bricks" + }, + "result": { + "id": "antarchy:myrmite_brick_wall" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_bricks.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_bricks.json new file mode 100644 index 00000000..9a39fea8 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_bricks.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_myrmite" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "antarchy:myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_bricks_from_polished_myrmite_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_bricks_from_polished_myrmite_stonecutting.json new file mode 100644 index 00000000..0c25dd69 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_bricks_from_polished_myrmite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_myrmite" + }, + "result": { + "id": "antarchy:myrmite_bricks" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_pillar.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_pillar.json new file mode 100644 index 00000000..065aa667 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_pillar.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_myrmite" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "id": "antarchy:myrmite_pillar", + "count": 2 + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_pillar_from_polished_myrmite_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_pillar_from_polished_myrmite_stonecutting.json new file mode 100644 index 00000000..0ea1f57a --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_pillar_from_polished_myrmite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_myrmite" + }, + "result": { + "id": "antarchy:myrmite_pillar" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_slab.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_slab.json new file mode 100644 index 00000000..aee0dd39 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:myrmite" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:myrmite_slab" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_slab_from_myrmite_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_slab_from_myrmite_stonecutting.json new file mode 100644 index 00000000..acc3b57f --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_slab_from_myrmite_stonecutting.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:myrmite" + }, + "result": { + "count": 2, + "id": "antarchy:myrmite_slab" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_stairs.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_stairs.json new file mode 100644 index 00000000..6c10fe52 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:myrmite" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:myrmite_stairs" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_stairs_from_myrmite_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_stairs_from_myrmite_stonecutting.json new file mode 100644 index 00000000..0e87b519 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_stairs_from_myrmite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:myrmite" + }, + "result": { + "id": "antarchy:myrmite_stairs" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_wall.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_wall.json new file mode 100644 index 00000000..283b1821 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_wall.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:myrmite" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:myrmite_wall" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_wall_from_myrmite_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_wall_from_myrmite_stonecutting.json new file mode 100644 index 00000000..562bfb52 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/myrmite_wall_from_myrmite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:myrmite" + }, + "result": { + "id": "antarchy:myrmite_wall" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/packed_loam.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/packed_loam.json new file mode 100644 index 00000000..7c647c99 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/packed_loam.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "WWW", + "WLW", + "WWW" + ], + "key": { + "W": { + "item": "minecraft:wheat" + }, + "L": { + "item": "antarchy:loam" + } + }, + "result": { + "count": 1, + "id": "antarchy:packed_loam" + } +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite.json new file mode 100644 index 00000000..fc663164 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:myrmite" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "antarchy:polished_myrmite" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_slab.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_slab.json new file mode 100644 index 00000000..98ef0993 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_myrmite" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:polished_myrmite_slab" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_slab_from_polished_myrmite_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_slab_from_polished_myrmite_stonecutting.json new file mode 100644 index 00000000..abaee8ee --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_slab_from_polished_myrmite_stonecutting.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_myrmite" + }, + "result": { + "count": 2, + "id": "antarchy:polished_myrmite_slab" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_stairs.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_stairs.json new file mode 100644 index 00000000..a743810c --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_myrmite" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:polished_myrmite_stairs" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_stairs_from_polished_myrmite_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_stairs_from_polished_myrmite_stonecutting.json new file mode 100644 index 00000000..5fe284c5 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_stairs_from_polished_myrmite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_myrmite" + }, + "result": { + "id": "antarchy:polished_myrmite_stairs" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_wall.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_wall.json new file mode 100644 index 00000000..5817ba80 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_wall.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_myrmite" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:polished_myrmite_wall" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_wall_from_polished_myrmite_stonecutting.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_wall_from_polished_myrmite_stonecutting.json new file mode 100644 index 00000000..aa81852d --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/polished_myrmite_wall_from_polished_myrmite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_myrmite" + }, + "result": { + "id": "antarchy:polished_myrmite_wall" + } +} + diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/portal_gun.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/portal_gun.json new file mode 100644 index 00000000..fff9858d --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/portal_gun.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "T N", + "TSN", + "TBT" + ], + "key": { + "T": { + "item": "antarchy:titanium_ingot" + }, + "N": { + "item": "antarchy:nightmare_scale" + }, + "S": { + "item": "minecraft:nether_star" + }, + "B": { + "item": "antarchy:bluestone_comparator" + } + }, + "result": { + "id": "antarchy:portal_gun" + } +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/tigers_eye_block.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/tigers_eye_block.json new file mode 100644 index 00000000..807aa892 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/tigers_eye_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "III", + "III", + "III" + ], + "key": { + "I": { + "item": "antarchy:tigers_eye" + } + }, + "result": { + "id": "antarchy:tigers_eye_block", + "count": 1 + } +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/tigers_eye_from_block.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/tigers_eye_from_block.json new file mode 100644 index 00000000..17fac43c --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/tigers_eye_from_block.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "antarchy:tigers_eye_block" + } + ], + "result": { + "id": "antarchy:tigers_eye", + "count": 9 + } +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/recipe/worm_hook.json b/common-1.21.1/src/main/resources/data/antarchy/recipe/worm_hook.json new file mode 100644 index 00000000..37814015 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/recipe/worm_hook.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "W ", + " L" + ], + "key": { + "W": { + "item": "antarchy:worm_tooth" + }, + "L": { + "item": "minecraft:lead" + } + }, + "result": { + "id": "antarchy:worm_hook", + "count": 1 + } +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/tags/block/nadir_sapling_supports.json b/common-1.21.1/src/main/resources/data/antarchy/tags/block/nadir_sapling_supports.json new file mode 100644 index 00000000..1423ad9a --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/tags/block/nadir_sapling_supports.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:antigravel" + ] +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_tree.json b/common-1.21.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_tree.json new file mode 100644 index 00000000..2dc06c48 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_tree.json @@ -0,0 +1,45 @@ +{ + "type": "antarchy:nadir_tree", + "config": { + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "antarchy:nadir_log", + "Properties": { + "axis": "y" + } + } + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "antarchy:nadir_veil" + } + }, + "height": { + "type": "minecraft:uniform", + "min_inclusive": 10, + "max_inclusive": 16 + }, + "bottom_radius": { + "type": "minecraft:uniform", + "min_inclusive": 2, + "max_inclusive": 4 + }, + "branch_count": { + "type": "minecraft:uniform", + "min_inclusive": 4, + "max_inclusive": 7 + }, + "branch_length": { + "type": "minecraft:uniform", + "min_inclusive": 4, + "max_inclusive": 7 + }, + "veil_radius": { + "type": "minecraft:uniform", + "min_inclusive": 2, + "max_inclusive": 3 + } + } +} diff --git a/common-1.21.1/src/main/resources/data/c/tags/item/deepslates.json b/common-1.21.1/src/main/resources/data/c/tags/item/deepslates.json index e69de29b..d0458b36 100644 --- a/common-1.21.1/src/main/resources/data/c/tags/item/deepslates.json +++ b/common-1.21.1/src/main/resources/data/c/tags/item/deepslates.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_crossbow" + ] +} diff --git a/common-1.21.1/src/main/resources/data/c/tags/item/stones.json b/common-1.21.1/src/main/resources/data/c/tags/item/stones.json index e69de29b..74e34e54 100644 --- a/common-1.21.1/src/main/resources/data/c/tags/item/stones.json +++ b/common-1.21.1/src/main/resources/data/c/tags/item/stones.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "minecraft:slime_ball", + "antarchy:triffid_goo" + ] +} diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json index 513c94bf..7b689128 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -2,6 +2,7 @@ "replace": false, "values": [ "antarchy:upper", + "antarchy:tigers_eye_block", "antarchy:uranium_ore", "antarchy:deepslate_uranium_ore", "antarchy:titanium_ore", @@ -121,6 +122,37 @@ "antarchy:bluestone_lamp", "antarchy:shellstone_pillar", "antarchy:nyxite_pillar", - "antarchy:broodstone_pillar" + "antarchy:broodstone_pillar", + "antarchy:myrmite_stairs", + "antarchy:myrmite_slab", + "antarchy:myrmite_wall", + "antarchy:polished_myrmite", + "antarchy:polished_myrmite_stairs", + "antarchy:polished_myrmite_slab", + "antarchy:polished_myrmite_wall", + "antarchy:chiseled_myrmite", + "antarchy:myrmite_bricks", + "antarchy:myrmite_brick_stairs", + "antarchy:myrmite_brick_slab", + "antarchy:myrmite_brick_wall", + "antarchy:mossy_myrmite_bricks", + "antarchy:mossy_myrmite_brick_stairs", + "antarchy:mossy_myrmite_brick_slab", + "antarchy:mossy_myrmite_brick_wall", + "antarchy:myrmite_pillar", + "antarchy:mossy_broodstone_bricks", + "antarchy:mossy_broodstone_brick_stairs", + "antarchy:mossy_broodstone_brick_slab", + "antarchy:mossy_broodstone_brick_wall", + "antarchy:mossy_nyxite_bricks", + "antarchy:mossy_nyxite_brick_stairs", + "antarchy:mossy_nyxite_brick_slab", + "antarchy:mossy_nyxite_brick_wall", + "antarchy:packed_loam", + "antarchy:loam_bricks", + "antarchy:loam_brick_stairs", + "antarchy:loam_brick_slab", + "antarchy:loam_brick_wall", + "antarchy:chiseled_loam_bricks" ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json index 8a635a20..059d01be 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json @@ -39,6 +39,31 @@ "antarchy:bluestone_ore", "antarchy:bluestone_block", "antarchy:shellstone_pillar", - "antarchy:broodstone_pillar" + "antarchy:broodstone_pillar", + "antarchy:myrmite_stairs", + "antarchy:myrmite_slab", + "antarchy:myrmite_wall", + "antarchy:polished_myrmite", + "antarchy:polished_myrmite_stairs", + "antarchy:polished_myrmite_slab", + "antarchy:polished_myrmite_wall", + "antarchy:chiseled_myrmite", + "antarchy:myrmite_bricks", + "antarchy:myrmite_brick_stairs", + "antarchy:myrmite_brick_slab", + "antarchy:myrmite_brick_wall", + "antarchy:mossy_myrmite_bricks", + "antarchy:mossy_myrmite_brick_stairs", + "antarchy:mossy_myrmite_brick_slab", + "antarchy:mossy_myrmite_brick_wall", + "antarchy:myrmite_pillar", + "antarchy:mossy_broodstone_bricks", + "antarchy:mossy_broodstone_brick_stairs", + "antarchy:mossy_broodstone_brick_slab", + "antarchy:mossy_broodstone_brick_wall", + "antarchy:mossy_nyxite_bricks", + "antarchy:mossy_nyxite_brick_stairs", + "antarchy:mossy_nyxite_brick_slab", + "antarchy:mossy_nyxite_brick_wall" ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/slabs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/slabs.json index 9bd75693..cfdd1451 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/slabs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/slabs.json @@ -17,6 +17,13 @@ "antarchy:polished_broodstone_slab", "antarchy:broodstone_brick_slab", "antarchy:antimetal_slab", - "antarchy:polished_antimetal_slab" + "antarchy:polished_antimetal_slab", + "antarchy:myrmite_slab", + "antarchy:polished_myrmite_slab", + "antarchy:myrmite_brick_slab", + "antarchy:mossy_myrmite_brick_slab", + "antarchy:mossy_broodstone_brick_slab", + "antarchy:mossy_nyxite_brick_slab", + "antarchy:loam_brick_slab" ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/stairs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/stairs.json index 8dae86d4..571bb191 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/stairs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/stairs.json @@ -16,6 +16,13 @@ "antarchy:polished_broodstone_stairs", "antarchy:broodstone_brick_stairs", "antarchy:antimetal_stairs", - "antarchy:polished_antimetal_stairs" + "antarchy:polished_antimetal_stairs", + "antarchy:myrmite_stairs", + "antarchy:polished_myrmite_stairs", + "antarchy:myrmite_brick_stairs", + "antarchy:mossy_myrmite_brick_stairs", + "antarchy:mossy_broodstone_brick_stairs", + "antarchy:mossy_nyxite_brick_stairs", + "antarchy:loam_brick_stairs" ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/walls.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/walls.json index 3d65f231..cae4e0a3 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/walls.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/walls.json @@ -11,6 +11,13 @@ "antarchy:mossy_shellstone_brick_wall", "antarchy:broodstone_wall", "antarchy:polished_broodstone_wall", - "antarchy:broodstone_brick_wall" + "antarchy:broodstone_brick_wall", + "antarchy:myrmite_wall", + "antarchy:polished_myrmite_wall", + "antarchy:myrmite_brick_wall", + "antarchy:mossy_myrmite_brick_wall", + "antarchy:mossy_broodstone_brick_wall", + "antarchy:mossy_nyxite_brick_wall", + "antarchy:loam_brick_wall" ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/slabs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/slabs.json index 9a281d20..9a2013d1 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/slabs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/slabs.json @@ -15,6 +15,13 @@ "antarchy:cut_titanium_slab", "antarchy:broodstone_slab", "antarchy:polished_broodstone_slab", - "antarchy:broodstone_brick_slab" + "antarchy:broodstone_brick_slab", + "antarchy:myrmite_slab", + "antarchy:polished_myrmite_slab", + "antarchy:myrmite_brick_slab", + "antarchy:mossy_myrmite_brick_slab", + "antarchy:mossy_broodstone_brick_slab", + "antarchy:mossy_nyxite_brick_slab", + "antarchy:loam_brick_slab" ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/stairs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/stairs.json index df140f7a..2c0f4bc2 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/stairs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/stairs.json @@ -14,6 +14,13 @@ "antarchy:cut_titanium_stairs", "antarchy:broodstone_stairs", "antarchy:polished_broodstone_stairs", - "antarchy:broodstone_brick_stairs" + "antarchy:broodstone_brick_stairs", + "antarchy:myrmite_stairs", + "antarchy:polished_myrmite_stairs", + "antarchy:myrmite_brick_stairs", + "antarchy:mossy_myrmite_brick_stairs", + "antarchy:mossy_broodstone_brick_stairs", + "antarchy:mossy_nyxite_brick_stairs", + "antarchy:loam_brick_stairs" ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/walls.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/walls.json index 25573f07..7d33cddd 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/walls.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/walls.json @@ -11,6 +11,13 @@ "antarchy:dream_sandstone_wall", "antarchy:broodstone_wall", "antarchy:polished_broodstone_wall", - "antarchy:broodstone_brick_wall" + "antarchy:broodstone_brick_wall", + "antarchy:myrmite_wall", + "antarchy:polished_myrmite_wall", + "antarchy:myrmite_brick_wall", + "antarchy:mossy_myrmite_brick_wall", + "antarchy:mossy_broodstone_brick_wall", + "antarchy:mossy_nyxite_brick_wall", + "antarchy:loam_brick_wall" ] } diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java index 69c048f8..6c2d58aa 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java @@ -13,6 +13,7 @@ import com.craisinlord.antarchy.content.entity.lucid.LucidEntity; import com.craisinlord.antarchy.content.entity.lucid.LucidBoltEntity; import com.craisinlord.antarchy.content.entity.lucid.LucidEyeProjectileEntity; import com.craisinlord.antarchy.content.item.ScorpionWhipTetherSync; +import com.craisinlord.antarchy.content.item.WormHookTetherSync; import com.craisinlord.antarchy.content.network.ImpactShakeSync; import com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakeSync; import com.craisinlord.antarchy.content.network.HordeIntensitySync; @@ -340,6 +341,8 @@ public final class AntarchyFabricContent { AntarchyObjects.setCritterCageBlockEntity(() -> AntarchyFabricBlocks.CRITTER_CAGE_BLOCK_ENTITY.get()); AntarchyObjects.setLucidAnchorBlockEntity(() -> AntarchyFabricBlocks.LUCID_ANCHOR_BLOCK_ENTITY.get()); AntarchyObjects.setCritterCageProjectile(() -> AntarchyFabricEntities.CRITTER_CAGE_PROJECTILE.get()); + AntarchyObjects.setWormHookProjectile(() -> AntarchyFabricEntities.WORM_HOOK_PROJECTILE.get()); + AntarchyObjects.setWormHook(() -> AntarchyFabricItems.WORM_HOOK.get()); AntarchyObjects.setCritterCageEntityTypeComponent(() -> AntarchyFabricMisc.CRITTER_CAGE_ENTITY_TYPE_COMPONENT.get()); AntarchyObjects.setCritterCagePrimaryColorComponent(() -> AntarchyFabricMisc.CRITTER_CAGE_PRIMARY_COLOR_COMPONENT.get()); AntarchyObjects.setCritterCageSecondaryColorComponent(() -> AntarchyFabricMisc.CRITTER_CAGE_SECONDARY_COLOR_COMPONENT.get()); @@ -453,6 +456,7 @@ public final class AntarchyFabricContent { LucidEyeProjectileEntity.invertedEffectSupplier = () -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.INVERTED); ScorpionWhipTetherSync.setSink(AntarchyFabricNetworking::syncScorpionWhipTether); + WormHookTetherSync.setSink(AntarchyFabricNetworking::syncWormHookTether); HerculesBeetleImpactShakeSync.setSink((player, ticks) -> net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking.send(player, new com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakePayload(ticks))); ImpactShakeSync.setSink((player, payload) -> net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking.send(player, payload)); HordeIntensitySync.setSink((player, payload) -> net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking.send(player, payload)); diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricEvents.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricEvents.java index 1e8dacd7..0262ce50 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricEvents.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricEvents.java @@ -21,6 +21,7 @@ import com.craisinlord.antarchy.content.command.CavarynCommand; import com.craisinlord.antarchy.content.command.CaterpillarCommand; import com.craisinlord.antarchy.content.command.GravityCommand; import com.craisinlord.antarchy.content.item.MinersDreamExcavationManager; +import com.craisinlord.antarchy.content.item.WormHookTetherManager; import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisUndersideManager; import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; import net.fabricmc.fabric.api.entity.event.v1.ServerLivingEntityEvents; @@ -138,6 +139,12 @@ public final class AntarchyFabricEvents { } return InteractionResult.PASS; }); + net.fabricmc.fabric.api.event.player.AttackBlockCallback.EVENT.register((player, world, hand, pos, direction) -> { + if (player.getMainHandItem().getItem() instanceof com.craisinlord.antarchy.content.item.PortalGunItem) { + return InteractionResult.FAIL; + } + return InteractionResult.PASS; + }); PlayerBlockBreakEvents.AFTER.register((world, player, pos, state, blockEntity) -> { if (!world.isClientSide && player instanceof ServerPlayer serverPlayer) { CavarynHordeManager.recordBlockBreak(serverPlayer, state, pos); @@ -156,6 +163,9 @@ public final class AntarchyFabricEvents { tickBloodglassRecharge(level); AttitudeAdjusterSlamManager.tick(level); MinersDreamExcavationManager.tick(level); + for (ServerPlayer player : level.players()) { + WormHookTetherManager.tick(player); + } } invertedPlayers.retainAll(activeThisTick); }); diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java index 87d0718b..9ebd9db2 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java @@ -99,6 +99,7 @@ public final class AntarchyFabricClientBootstrap { EntityRendererRegistry.register(AntarchyFabricEntities.BROWN_ANT.get(), AntRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.RAINBOW_ANT.get(), AntRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.MOLEWORM.get(), MolewormRenderer::new); + EntityRendererRegistry.register(AntarchyFabricEntities.WORM.get(), WormRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.MANTIS.get(), MantisRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.ALPHA_MANTIS.get(), AlphaMantisRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.MOLEVORE.get(), MolevoreRenderer::new); @@ -124,6 +125,8 @@ public final class AntarchyFabricClientBootstrap { EntityRendererRegistry.register(AntarchyFabricEntities.NIGHTMARE.get(), NightmareRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.NIGHTMARE_PORTAL.get(), NightmarePortalRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.DIMENSIONAL_TEAR.get(), DimensionalTearRenderer::new); + EntityRendererRegistry.register(AntarchyFabricEntities.PORTAL_GUN_PORTAL.get(), PortalGunPortalRenderer::new); + EntityRendererRegistry.register(AntarchyFabricEntities.PORTAL_GUN_BLACK_HOLE.get(), com.craisinlord.antarchy.content.client.renderer.PortalGunBlackHoleRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.NIGHTMARE_BITE.get(), NightmareBiteRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.LUCID.get(), LucidRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.BED_BUG.get(), BedBugRenderer::new); @@ -135,6 +138,7 @@ public final class AntarchyFabricClientBootstrap { EntityRendererRegistry.register(AntarchyFabricEntities.LUCID_BOLT.get(), LucidBoltRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.LUCID_PEARL_PROJECTILE.get(), ThrownItemRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.CRITTER_CAGE_PROJECTILE.get(), ThrownItemRenderer::new); + EntityRendererRegistry.register(AntarchyFabricEntities.WORM_HOOK_PROJECTILE.get(), ThrownItemRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.HUSH_PROJECTILE.get(), HushProjectileRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.BRUTALFLY_ORB.get(), BrutalflyOrbRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.UPWARD_FALLING_BLOCK.get(), UpwardFallingBlockRenderer::new); @@ -494,6 +498,7 @@ public final class AntarchyFabricClientBootstrap { TigerEyeCamouflageClientHandler.tick(); BloodCrystalKatanaTrailHandler.tick(); ScorpionWhipTetherRenderHandler.tick(); + WormHookTetherRenderHandler.tick(); DorrieJumpClientHandler.tick(); HerculesBeetleClientHandler.tick(); SizeRaySoundHandler.tick(client); @@ -501,6 +506,7 @@ public final class AntarchyFabricClientBootstrap { BigBerthaClientHandler.register(); GravityGunClientHandler.register(); + PortalGunClientHandler.register(); ElythiaFireflyManager.register(); LucidSoundHandler.register(); @@ -523,6 +529,7 @@ public final class AntarchyFabricClientBootstrap { WorldRenderEvents.AFTER_TRANSLUCENT.register(context -> { BloodCrystalKatanaTrailHandler.render(context); ScorpionWhipTetherRenderHandler.render(context); + WormHookTetherRenderHandler.render(context); }); } diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/PortalGunClientHandler.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/PortalGunClientHandler.java new file mode 100644 index 00000000..25883904 --- /dev/null +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/PortalGunClientHandler.java @@ -0,0 +1,36 @@ +package com.craisinlord.antarchy.fabric.client; + +import com.craisinlord.antarchy.content.item.PortalGunItem; +import com.craisinlord.antarchy.content.network.PortalGunPrimaryPayload; +import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.client.Minecraft; + +public final class PortalGunClientHandler { + private static boolean lastAttackDown; + + private PortalGunClientHandler() { + } + + public static void register() { + ClientTickEvents.END_CLIENT_TICK.register(PortalGunClientHandler::tickMouse); + } + + private static void tickMouse(Minecraft mc) { + if (mc.player == null || mc.level == null || mc.screen != null) { + lastAttackDown = false; + return; + } + + if (!(mc.player.getMainHandItem().getItem() instanceof PortalGunItem)) { + lastAttackDown = false; + return; + } + + boolean attackDown = mc.options.keyAttack.isDown(); + if (attackDown && !lastAttackDown) { + ClientPlayNetworking.send(new PortalGunPrimaryPayload()); + } + lastAttackDown = attackDown; + } +} diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/WormHookTetherRenderHandler.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/WormHookTetherRenderHandler.java new file mode 100644 index 00000000..c7c1eeec --- /dev/null +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/WormHookTetherRenderHandler.java @@ -0,0 +1,169 @@ +package com.craisinlord.antarchy.fabric.client; + +import com.craisinlord.antarchy.content.client.WormHookTetherClientState; +import com.craisinlord.antarchy.content.item.WormHookItem; +import com.craisinlord.antarchy.content.util.WormHookRope; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.blaze3d.vertex.BufferUploader; +import com.mojang.blaze3d.vertex.DefaultVertexFormat; +import com.mojang.blaze3d.vertex.MeshData; +import com.mojang.blaze3d.vertex.Tesselator; +import com.mojang.blaze3d.vertex.VertexFormat; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; +import net.minecraft.client.Camera; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.HumanoidArm; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.phys.Vec3; +import org.joml.Matrix4f; + +public final class WormHookTetherRenderHandler { + private static final Map ROPES = new HashMap<>(); + + private WormHookTetherRenderHandler() { + } + + public static void tick() { + Minecraft minecraft = Minecraft.getInstance(); + if (minecraft.level == null) { + WormHookTetherClientState.clear(); + ROPES.clear(); + return; + } + + Map tethers = WormHookTetherClientState.snapshot(); + ROPES.keySet().removeIf(playerId -> !tethers.containsKey(playerId)); + + for (Map.Entry entry : tethers.entrySet()) { + Entity source = minecraft.level.getEntity(entry.getKey()); + Entity hook = minecraft.level.getEntity(entry.getValue()); + if (!(source instanceof Player player) || hook == null || hook.isRemoved()) { + continue; + } + + Vec3 anchor = hook.position(); + Vec3 playerEye = player.getEyePosition(); + WormHookRope rope = ROPES.computeIfAbsent(entry.getKey(), id -> new WormHookRope(anchor, playerEye)); + rope.update(hook, anchor, playerEye, anchor.distanceTo(playerEye) + 32.0D); + } + } + + public static void render(WorldRenderContext context) { + if (context.world() == null || context.matrixStack() == null) { + return; + } + + Minecraft minecraft = Minecraft.getInstance(); + if (minecraft.level == null) { + return; + } + + Map tethers = WormHookTetherClientState.snapshot(); + if (tethers.isEmpty()) { + return; + } + + Camera camera = context.camera(); + Vec3 cameraPos = camera.getPosition(); + Matrix4f pose = context.matrixStack().last().pose(); + + RenderSystem.enableBlend(); + RenderSystem.defaultBlendFunc(); + RenderSystem.depthMask(false); + RenderSystem.disableCull(); + RenderSystem.setShader(GameRenderer::getPositionColorShader); + + BufferBuilder buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); + for (Map.Entry entry : tethers.entrySet()) { + Entity source = minecraft.level.getEntity(entry.getKey()); + Entity hook = minecraft.level.getEntity(entry.getValue()); + if (!(source instanceof Player player) || hook == null || hook.isRemoved()) { + continue; + } + + WormHookRope rope = ROPES.get(entry.getKey()); + List points = rope != null ? rope.points() : List.of(hook.position(), player.getEyePosition()); + + Vec3 handPos = tetherStart(player, context.tickCounter().getGameTimeDeltaPartialTick(false)); + for (int i = points.size() - 1; i > 0; i--) { + Vec3 start = i == points.size() - 1 ? handPos : points.get(i); + Vec3 end = points.get(i - 1); + buildTether(buffer, pose, start, end, cameraPos); + } + } + + MeshData mesh = buffer.build(); + if (mesh != null) { + BufferUploader.drawWithShader(mesh); + } + + RenderSystem.enableCull(); + RenderSystem.depthMask(true); + RenderSystem.disableBlend(); + } + + private static Vec3 tetherStart(Player player, float partialTick) { + Vec3 start = player.getEyePosition(partialTick).add(0.0D, -0.45D, 0.0D); + boolean mainHandHook = player.getMainHandItem().getItem() instanceof WormHookItem; + boolean offHandHook = player.getOffhandItem().getItem() instanceof WormHookItem; + if (!mainHandHook && !offHandHook) { + return start; + } + + boolean useMainHand = mainHandHook || !offHandHook; + HumanoidArm arm = useMainHand ? player.getMainArm() : player.getMainArm().getOpposite(); + float bodyYaw = Mth.rotLerp(partialTick, player.yBodyRotO, player.yBodyRot); + double radians = Math.toRadians(bodyYaw + 90.0F); + double side = arm == HumanoidArm.RIGHT ? -0.28D : 0.28D; + return start.add(Math.cos(radians) * side, -0.12D, Math.sin(radians) * side); + } + + private static void buildTether(BufferBuilder buffer, Matrix4f pose, Vec3 start, Vec3 end, Vec3 cameraPos) { + Vec3 delta = end.subtract(start); + double length = delta.length(); + if (length < 0.001D) { + return; + } + + Vec3 forward = delta.scale(1.0D / length); + Vec3 right = forward.cross(new Vec3(0.0D, 1.0D, 0.0D)); + if (right.lengthSqr() < 1.0E-6D) { + right = forward.cross(new Vec3(1.0D, 0.0D, 0.0D)); + } + right = right.normalize(); + + int segments = Math.max(4, Mth.ceil(length * 8.0D)); + for (int i = 0; i < segments; i++) { + double t0 = (double) i / (double) segments; + double t1 = (double) (i + 1) / (double) segments; + Vec3 p0 = ropePoint(start, delta, t0, length); + Vec3 p1 = ropePoint(start, delta, t1, length); + float width = 0.04F; + Vec3 offset = right.scale(width); + + Vec3 a = p0.subtract(cameraPos); + Vec3 b = p1.subtract(cameraPos); + float shade = i % 2 == 0 ? 0.85F : 0.65F; + float red = 0.42F * shade; + float green = 0.36F * shade; + float blue = 0.24F * shade; + + buffer.addVertex(pose, (float) (a.x + offset.x), (float) (a.y + offset.y), (float) (a.z + offset.z)).setColor(red, green, blue, 1.0F); + buffer.addVertex(pose, (float) (a.x - offset.x), (float) (a.y - offset.y), (float) (a.z - offset.z)).setColor(red, green, blue, 1.0F); + buffer.addVertex(pose, (float) (b.x - offset.x), (float) (b.y - offset.y), (float) (b.z - offset.z)).setColor(red, green, blue, 1.0F); + buffer.addVertex(pose, (float) (b.x + offset.x), (float) (b.y + offset.y), (float) (b.z + offset.z)).setColor(red, green, blue, 1.0F); + } + } + + private static Vec3 ropePoint(Vec3 start, Vec3 delta, double t, double length) { + double sag = Math.sin(t * Math.PI) * Math.min(0.2D, length * 0.03D); + return start.add(delta.scale(t)).add(0.0D, -sag, 0.0D); + } +} diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/mixin/client/CrossbowArmPoseMixin.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/mixin/client/CrossbowArmPoseMixin.java index 573165a4..515e4929 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/mixin/client/CrossbowArmPoseMixin.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/mixin/client/CrossbowArmPoseMixin.java @@ -1,6 +1,7 @@ package com.craisinlord.antarchy.fabric.mixin.client; import com.craisinlord.antarchy.content.item.GravityGunItem; +import com.craisinlord.antarchy.content.item.PortalGunItem; import com.craisinlord.antarchy.content.item.RpoLauncherItem; import com.craisinlord.antarchy.content.item.SizeRayItem; import com.craisinlord.antarchy.content.item.SquidzookaItem; @@ -26,7 +27,7 @@ public class CrossbowArmPoseMixin { ItemStack stack = player.getItemInHand(hand); Item item = stack.getItem(); - if (item instanceof GravityGunItem || item instanceof SquidzookaItem || item instanceof RpoLauncherItem || item instanceof WaterCannonItem) { + if (item instanceof GravityGunItem || item instanceof PortalGunItem || item instanceof SquidzookaItem || item instanceof RpoLauncherItem || item instanceof WaterCannonItem) { cir.setReturnValue(HumanoidModel.ArmPose.CROSSBOW_HOLD); } else if (item instanceof SizeRayItem) { if (player.isUsingItem() && player.getUsedItemHand() == hand) { diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricClientNetworking.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricClientNetworking.java index a6a0256f..1702a7bc 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricClientNetworking.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricClientNetworking.java @@ -4,6 +4,7 @@ import com.craisinlord.antarchy.content.client.BloodglassClientState; import com.craisinlord.antarchy.content.client.BrutalflyElytraClientState; import com.craisinlord.antarchy.content.client.HordeClientState; import com.craisinlord.antarchy.content.client.ScorpionWhipTetherClientState; +import com.craisinlord.antarchy.content.client.WormHookTetherClientState; import com.craisinlord.antarchy.content.client.TigerEyeCamouflageClientState; import com.craisinlord.antarchy.content.client.ThoraxisWeatherClientState; import com.craisinlord.antarchy.content.entity.multipart.MultipartFramework; @@ -47,6 +48,8 @@ public final class AntarchyFabricClientNetworking { context.client().execute(() -> BloodCrystalKatanaTrailClientState.trigger(payload.entityId(), payload.durationTicks()))); ClientPlayNetworking.registerGlobalReceiver(ScorpionWhipTetherPayload.TYPE, (payload, context) -> context.client().execute(() -> ScorpionWhipTetherClientState.update(payload.playerId(), payload.targetId()))); + ClientPlayNetworking.registerGlobalReceiver(WormHookTetherPayload.TYPE, (payload, context) -> + context.client().execute(() -> WormHookTetherClientState.update(payload.playerId(), payload.hookId()))); ClientPlayNetworking.registerGlobalReceiver(BrutalflyElytraAnimationPayload.TYPE, (payload, context) -> context.client().execute(() -> BrutalflyElytraClientState.trigger(payload.entityId(), payload.durationTicks(), payload.strength()))); ClientPlayNetworking.registerGlobalReceiver(ThoraxisWeatherPayload.TYPE, (payload, context) -> diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricNetworking.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricNetworking.java index 0a6ef05f..782e4b2a 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricNetworking.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricNetworking.java @@ -17,6 +17,7 @@ import com.craisinlord.antarchy.content.item.JumpyBootsHelper; import com.craisinlord.antarchy.fabric.util.JumpyBootsFabricHelper; import com.craisinlord.antarchy.content.item.JumpyBootsItem; import com.craisinlord.antarchy.content.item.GravityGunItem; +import com.craisinlord.antarchy.content.item.PortalGunItem; import com.craisinlord.antarchy.content.item.TigerEyeArmorUtil; import com.craisinlord.antarchy.content.network.*; import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController; @@ -76,6 +77,7 @@ public final class AntarchyFabricNetworking { PayloadTypeRegistry.playS2C().register(TigerEyeCamouflageStatePayload.TYPE, TigerEyeCamouflageStatePayload.STREAM_CODEC); PayloadTypeRegistry.playS2C().register(BloodCrystalKatanaTrailPayload.TYPE, BloodCrystalKatanaTrailPayload.STREAM_CODEC); PayloadTypeRegistry.playS2C().register(ScorpionWhipTetherPayload.TYPE, ScorpionWhipTetherPayload.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(WormHookTetherPayload.TYPE, WormHookTetherPayload.STREAM_CODEC); PayloadTypeRegistry.playS2C().register(BrutalflyElytraAnimationPayload.TYPE, BrutalflyElytraAnimationPayload.STREAM_CODEC); PayloadTypeRegistry.playS2C().register(ThoraxisWeatherPayload.TYPE, ThoraxisWeatherPayload.STREAM_CODEC); PayloadTypeRegistry.playS2C().register(HerculesBeetleImpactShakePayload.TYPE, HerculesBeetleImpactShakePayload.STREAM_CODEC); @@ -83,6 +85,7 @@ public final class AntarchyFabricNetworking { PayloadTypeRegistry.playS2C().register(HordeIntensityPayload.TYPE, HordeIntensityPayload.STREAM_CODEC); PayloadTypeRegistry.playC2S().register(GravityGunPrimaryPayload.TYPE, GravityGunPrimaryPayload.STREAM_CODEC); + PayloadTypeRegistry.playC2S().register(PortalGunPrimaryPayload.TYPE, PortalGunPrimaryPayload.STREAM_CODEC); PayloadTypeRegistry.playC2S().register(GravityGunScrollPayload.TYPE, GravityGunScrollPayload.STREAM_CODEC); PayloadTypeRegistry.playC2S().register(BigBerthaModeCyclePayload.TYPE, BigBerthaModeCyclePayload.STREAM_CODEC); PayloadTypeRegistry.playC2S().register(ToggleTigerEyeCamouflagePayload.TYPE, ToggleTigerEyeCamouflagePayload.STREAM_CODEC); @@ -102,6 +105,8 @@ public final class AntarchyFabricNetworking { private static void registerServerReceivers() { ServerPlayNetworking.registerGlobalReceiver(GravityGunPrimaryPayload.TYPE, (payload, context) -> context.server().execute(() -> handleGravityGunPrimary(context.player(), payload))); + ServerPlayNetworking.registerGlobalReceiver(PortalGunPrimaryPayload.TYPE, (payload, context) -> + context.server().execute(() -> handlePortalGunPrimary(context.player(), payload))); ServerPlayNetworking.registerGlobalReceiver(GravityGunScrollPayload.TYPE, (payload, context) -> context.server().execute(() -> handleGravityGunScroll(context.player(), payload))); ServerPlayNetworking.registerGlobalReceiver(BigBerthaModeCyclePayload.TYPE, (payload, context) -> @@ -191,6 +196,14 @@ public final class AntarchyFabricNetworking { ServerPlayNetworking.send(player, payload); } + public static void syncWormHookTether(ServerPlayer player, int hookId) { + WormHookTetherPayload payload = new WormHookTetherPayload(player.getId(), hookId); + for (ServerPlayer tracking : PlayerLookup.tracking(player)) { + ServerPlayNetworking.send(tracking, payload); + } + ServerPlayNetworking.send(player, payload); + } + public static void syncThoraxisWeather(ServerLevel level, ThoraxisWeatherSnapshot snapshot) { ThoraxisWeatherPayload payload = new ThoraxisWeatherPayload( snapshot.dimension(), @@ -230,6 +243,13 @@ public final class AntarchyFabricNetworking { gravityGunItem.firePrimary(player.serverLevel(), player, player.getMainHandItem()); } + private static void handlePortalGunPrimary(ServerPlayer player, PortalGunPrimaryPayload payload) { + if (!(player.getMainHandItem().getItem() instanceof PortalGunItem portalGunItem)) { + return; + } + portalGunItem.firePrimary(player.serverLevel(), player, player.getMainHandItem()); + } + private static void handleGravityGunScroll(ServerPlayer player, GravityGunScrollPayload payload) { if (!(player.getMainHandItem().getItem() instanceof GravityGunItem)) { return; diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java index 7104b741..475b2bad 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java @@ -367,6 +367,8 @@ public final class AntarchyFabricBlocks { public static final DeferredBlock NYXITE_BRICKS = BLOCKS.register("nyxite_bricks", () -> new Block(nyxiteProperties())); + public static final DeferredBlock MOSSY_NYXITE_BRICKS = BLOCKS.register("mossy_nyxite_bricks", + () -> new Block(nyxiteProperties())); public static final DeferredBlock NYXITE_STAIRS = BLOCKS.register("nyxite_stairs", @@ -408,6 +410,12 @@ public final class AntarchyFabricBlocks { public static final DeferredBlock NYXITE_BRICK_WALL = BLOCKS.register("nyxite_brick_wall", () -> new net.minecraft.world.level.block.WallBlock(nyxiteProperties())); + public static final DeferredBlock MOSSY_NYXITE_BRICK_STAIRS = BLOCKS.register("mossy_nyxite_brick_stairs", + () -> new net.minecraft.world.level.block.StairBlock(MOSSY_NYXITE_BRICKS.get().defaultBlockState(), nyxiteProperties())); + public static final DeferredBlock MOSSY_NYXITE_BRICK_SLAB = BLOCKS.register("mossy_nyxite_brick_slab", + () -> new net.minecraft.world.level.block.SlabBlock(nyxiteProperties())); + public static final DeferredBlock MOSSY_NYXITE_BRICK_WALL = BLOCKS.register("mossy_nyxite_brick_wall", + () -> new net.minecraft.world.level.block.WallBlock(nyxiteProperties())); public static final DeferredBlock NYXITE_PILLAR = BLOCKS.register("nyxite_pillar", @@ -534,6 +542,40 @@ public final class AntarchyFabricBlocks { public static final DeferredBlock MYRMITE = BLOCKS.register("myrmite", () -> new Block(nyxiteProperties())); + public static final DeferredBlock MYRMITE_STAIRS = BLOCKS.register("myrmite_stairs", + () -> new StairBlock(MYRMITE.get().defaultBlockState(), nyxiteProperties())); + public static final DeferredBlock MYRMITE_SLAB = BLOCKS.register("myrmite_slab", + () -> new SlabBlock(nyxiteProperties())); + public static final DeferredBlock MYRMITE_WALL = BLOCKS.register("myrmite_wall", + () -> new WallBlock(nyxiteProperties())); + public static final DeferredBlock POLISHED_MYRMITE = BLOCKS.register("polished_myrmite", + () -> new Block(nyxiteProperties())); + public static final DeferredBlock POLISHED_MYRMITE_STAIRS = BLOCKS.register("polished_myrmite_stairs", + () -> new StairBlock(POLISHED_MYRMITE.get().defaultBlockState(), nyxiteProperties())); + public static final DeferredBlock POLISHED_MYRMITE_SLAB = BLOCKS.register("polished_myrmite_slab", + () -> new SlabBlock(nyxiteProperties())); + public static final DeferredBlock POLISHED_MYRMITE_WALL = BLOCKS.register("polished_myrmite_wall", + () -> new WallBlock(nyxiteProperties())); + public static final DeferredBlock CHISELED_MYRMITE = BLOCKS.register("chiseled_myrmite", + () -> new Block(nyxiteProperties())); + public static final DeferredBlock MYRMITE_BRICKS = BLOCKS.register("myrmite_bricks", + () -> new Block(nyxiteProperties())); + public static final DeferredBlock MYRMITE_BRICK_STAIRS = BLOCKS.register("myrmite_brick_stairs", + () -> new StairBlock(MYRMITE_BRICKS.get().defaultBlockState(), nyxiteProperties())); + public static final DeferredBlock MYRMITE_BRICK_SLAB = BLOCKS.register("myrmite_brick_slab", + () -> new SlabBlock(nyxiteProperties())); + public static final DeferredBlock MYRMITE_BRICK_WALL = BLOCKS.register("myrmite_brick_wall", + () -> new WallBlock(nyxiteProperties())); + public static final DeferredBlock MOSSY_MYRMITE_BRICKS = BLOCKS.register("mossy_myrmite_bricks", + () -> new Block(nyxiteProperties())); + public static final DeferredBlock MOSSY_MYRMITE_BRICK_STAIRS = BLOCKS.register("mossy_myrmite_brick_stairs", + () -> new StairBlock(MOSSY_MYRMITE_BRICKS.get().defaultBlockState(), nyxiteProperties())); + public static final DeferredBlock MOSSY_MYRMITE_BRICK_SLAB = BLOCKS.register("mossy_myrmite_brick_slab", + () -> new SlabBlock(nyxiteProperties())); + public static final DeferredBlock MOSSY_MYRMITE_BRICK_WALL = BLOCKS.register("mossy_myrmite_brick_wall", + () -> new WallBlock(nyxiteProperties())); + public static final DeferredBlock MYRMITE_PILLAR = BLOCKS.register("myrmite_pillar", + () -> new RotatedPillarBlock(nyxiteProperties())); public static final DeferredBlock BIOMITE = BLOCKS.register("biomite", @@ -570,6 +612,8 @@ public final class AntarchyFabricBlocks { public static final DeferredBlock BROODSTONE_BRICKS = BLOCKS.register("broodstone_bricks", () -> new Block(broodstoneProperties())); + public static final DeferredBlock MOSSY_BROODSTONE_BRICKS = BLOCKS.register("mossy_broodstone_bricks", + () -> new Block(broodstoneProperties())); public static final DeferredBlock BROODSTONE_STAIRS = BLOCKS.register("broodstone_stairs", @@ -606,6 +650,12 @@ public final class AntarchyFabricBlocks { public static final DeferredBlock BROODSTONE_BRICK_WALL = BLOCKS.register("broodstone_brick_wall", () -> new WallBlock(broodstoneProperties())); + public static final DeferredBlock MOSSY_BROODSTONE_BRICK_STAIRS = BLOCKS.register("mossy_broodstone_brick_stairs", + () -> new StairBlock(MOSSY_BROODSTONE_BRICKS.get().defaultBlockState(), broodstoneProperties())); + public static final DeferredBlock MOSSY_BROODSTONE_BRICK_SLAB = BLOCKS.register("mossy_broodstone_brick_slab", + () -> new SlabBlock(broodstoneProperties())); + public static final DeferredBlock MOSSY_BROODSTONE_BRICK_WALL = BLOCKS.register("mossy_broodstone_brick_wall", + () -> new WallBlock(broodstoneProperties())); public static final DeferredBlock BROODSTONE_PILLAR = BLOCKS.register("broodstone_pillar", @@ -828,6 +878,10 @@ public final class AntarchyFabricBlocks { () -> new com.craisinlord.antarchy.content.block.BluestoneLampBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.REDSTONE_LAMP).mapColor(MapColor.COLOR_BLUE))); + public static final DeferredBlock TIGERS_EYE_BLOCK = BLOCKS.register("tigers_eye_block", + () -> createStorageBlock(Blocks.EMERALD_BLOCK, MapColor.COLOR_ORANGE)); + + public static final DeferredBlock URANIUM_BLOCK = BLOCKS.register("uranium_block", () -> createStorageBlock(Blocks.EMERALD_BLOCK, MapColor.COLOR_YELLOW)); @@ -1017,6 +1071,18 @@ public final class AntarchyFabricBlocks { public static final DeferredBlock LOAM = BLOCKS.register("loam", () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.MUD))); + public static final DeferredBlock PACKED_LOAM = BLOCKS.register("packed_loam", + () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.PACKED_MUD))); + public static final DeferredBlock LOAM_BRICKS = BLOCKS.register("loam_bricks", + () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.MUD_BRICKS))); + public static final DeferredBlock LOAM_BRICK_STAIRS = BLOCKS.register("loam_brick_stairs", + () -> new StairBlock(LOAM_BRICKS.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.MUD_BRICK_STAIRS))); + public static final DeferredBlock LOAM_BRICK_SLAB = BLOCKS.register("loam_brick_slab", + () -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MUD_BRICK_SLAB))); + public static final DeferredBlock LOAM_BRICK_WALL = BLOCKS.register("loam_brick_wall", + () -> new WallBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MUD_BRICK_WALL))); + public static final DeferredBlock CHISELED_LOAM_BRICKS = BLOCKS.register("chiseled_loam_bricks", + () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.MUD_BRICKS))); public static final DeferredBlock MUCUS = BLOCKS.register("mucus", diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java index 527bea8c..6bd48265 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java @@ -21,6 +21,7 @@ import com.craisinlord.antarchy.content.entity.lucid.LucidBoltEntity; import com.craisinlord.antarchy.content.entity.lucid.LucidEyeProjectileEntity; import com.craisinlord.antarchy.content.entity.HushProjectileEntity; import com.craisinlord.antarchy.content.entity.CritterCageProjectileEntity; +import com.craisinlord.antarchy.content.entity.WormHookProjectileEntity; import com.craisinlord.antarchy.content.entity.JumpyBugEntity; import com.craisinlord.antarchy.content.entity.StinkBugEntity; import com.craisinlord.antarchy.content.entity.OuranwoodBoatEntity; @@ -37,6 +38,7 @@ import com.craisinlord.antarchy.content.entity.nightmare.NightmareEntity; import com.craisinlord.antarchy.content.entity.nightmare.NightmarePortalEntity; import com.craisinlord.antarchy.content.entity.nightmare.NightmareBiteEntity; import com.craisinlord.antarchy.content.entity.portal.DimensionalTearEntity; +import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity; import com.craisinlord.antarchy.content.entity.ToreterrorEntity; import com.craisinlord.antarchy.content.entity.WaterBombEntity; import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity; @@ -45,6 +47,7 @@ import com.craisinlord.antarchy.content.entity.kraken.TentacleEntity; import com.craisinlord.antarchy.content.entity.OctopusBombEntity; import com.craisinlord.antarchy.content.entity.MolevoreEntity; import com.craisinlord.antarchy.content.entity.MolewormEntity; +import com.craisinlord.antarchy.content.entity.WormEntity; import com.craisinlord.antarchy.content.entity.BomberEntity; import com.craisinlord.antarchy.content.entity.SizeRayProjectileEntity; import com.craisinlord.antarchy.content.entity.TriffidEntity; @@ -91,6 +94,11 @@ public final class AntarchyFabricEntities { .sized(0.4F, 0.3F) .clientTrackingRange(8) .build("moleworm")); + public static final DeferredHolder, EntityType> WORM = ENTITY_TYPES.register("worm", + () -> EntityType.Builder.of(WormEntity::new, MobCategory.MONSTER) + .sized(1.35F, 2.75F) + .clientTrackingRange(10) + .build("worm")); public static final DeferredHolder, EntityType> MANTIS = ENTITY_TYPES.register("mantis", @@ -363,6 +371,20 @@ public final class AntarchyFabricEntities { .updateInterval(1) .build("dimensional_tear")); + public static final DeferredHolder, EntityType> PORTAL_GUN_PORTAL = ENTITY_TYPES.register("portal_gun_portal", + () -> EntityType.Builder.of(PortalGunPortalEntity::new, MobCategory.MISC) + .sized(1.0F, 2.0F) + .clientTrackingRange(10) + .updateInterval(1) + .build("portal_gun_portal")); + + public static final DeferredHolder, EntityType> PORTAL_GUN_BLACK_HOLE = ENTITY_TYPES.register("portal_gun_black_hole", + () -> EntityType.Builder.of(com.craisinlord.antarchy.content.portalgun.PortalGunBlackHoleEntity::new, MobCategory.MISC) + .sized(1.2F, 1.2F) + .clientTrackingRange(10) + .updateInterval(1) + .build("portal_gun_black_hole")); + public static final DeferredHolder, EntityType> NIGHTMARE_BITE = ENTITY_TYPES.register("nightmare_bite", () -> EntityType.Builder.of(NightmareBiteEntity::new, MobCategory.MISC) .sized(2.5F, 2.0F) @@ -433,6 +455,12 @@ public final class AntarchyFabricEntities { .clientTrackingRange(8) .updateInterval(1) .build("critter_cage_projectile")); + public static final DeferredHolder, EntityType> WORM_HOOK_PROJECTILE = ENTITY_TYPES.register("worm_hook_projectile", + () -> EntityType.Builder.of(WormHookProjectileEntity::new, MobCategory.MISC) + .sized(0.25F, 0.25F) + .clientTrackingRange(10) + .updateInterval(1) + .build("worm_hook_projectile")); public static final DeferredHolder, EntityType> HUSH_PROJECTILE = ENTITY_TYPES.register("hush_projectile", diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntityAttributes.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntityAttributes.java index 174b8a46..89b4a3d9 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntityAttributes.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntityAttributes.java @@ -28,6 +28,7 @@ import com.craisinlord.antarchy.content.entity.MolewormEntity; import com.craisinlord.antarchy.content.entity.BomberEntity; import com.craisinlord.antarchy.content.entity.TriffidEntity; import com.craisinlord.antarchy.content.entity.WaspEntity; +import com.craisinlord.antarchy.content.entity.WormEntity; import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry; import net.minecraft.world.entity.ai.attributes.AttributeSupplier; import net.minecraft.world.entity.ai.attributes.Attributes; @@ -121,6 +122,7 @@ public final class AntarchyFabricEntityAttributes { AntarchySettings.termiteAttackDamage() ).build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.MOLEWORM.get(), MolewormEntity.createAttributes().build()); + FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.WORM.get(), WormEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.MOLEVORE.get(), MolevoreEntity.createAttributes().build()); } diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java index fe3cd76f..37e4ab7c 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java @@ -2,55 +2,17 @@ package com.craisinlord.antarchy.fabric.registry; import com.craisinlord.antarchy.Antarchy; import com.craisinlord.antarchy.config.AntarchySettings; -import com.craisinlord.antarchy.content.item.BloodCrystalArmorItem; -import com.craisinlord.antarchy.content.item.BloodCrystalAppleItem; -import com.craisinlord.antarchy.content.item.BloodCrystalKatanaItem; -import com.craisinlord.antarchy.content.item.CritterCageItem; +import com.craisinlord.antarchy.content.item.*; import com.craisinlord.antarchy.fabric.item.DeferredSpawnEggItem; -import com.craisinlord.antarchy.content.item.LucidAnchorBlockItem; -import com.craisinlord.antarchy.content.item.LucidEyeItem; -import com.craisinlord.antarchy.content.item.LucidPearlItem; -import com.craisinlord.antarchy.content.item.PrimordialArmorItem; -import com.craisinlord.antarchy.content.item.WaterCannonItem; import com.craisinlord.antarchy.content.entity.SizeRayProjectileEntity; -import com.craisinlord.antarchy.content.item.BattleAxeItem; -import com.craisinlord.antarchy.content.item.AttitudeAdjusterItem; -import com.craisinlord.antarchy.content.item.BasiliskDaggerItem; -import com.craisinlord.antarchy.content.item.BigBerthaItem; -import com.craisinlord.antarchy.content.item.KrakensGraspItem; -import com.craisinlord.antarchy.content.item.AntimetalBlockItem; -import com.craisinlord.antarchy.content.item.AntimetalScaffoldingItem; -import com.craisinlord.antarchy.content.item.CloudSharkFinSoupItem; -import com.craisinlord.antarchy.content.item.CorneaEarItem; -import com.craisinlord.antarchy.content.item.GravityGunItem; -import com.craisinlord.antarchy.content.item.MantisClawItem; -import com.craisinlord.antarchy.content.item.DuctTapeBlockItem; -import com.craisinlord.antarchy.content.item.BrutalflyElytraItem; -import com.craisinlord.antarchy.content.item.BluestoneDustItem; -import com.craisinlord.antarchy.content.item.CeilingPlacementTooltipBlockItem; -import com.craisinlord.antarchy.content.item.CeilingPlacementTooltipItem; -import com.craisinlord.antarchy.content.item.MobComingSoonTooltipItem; -import com.craisinlord.antarchy.content.item.MogglesItem; import com.craisinlord.antarchy.content.item.ultimate.UltimateAxeItem; import com.craisinlord.antarchy.content.item.ultimate.UltimateHoeItem; import com.craisinlord.antarchy.content.item.ultimate.UltimatePickaxeItem; import com.craisinlord.antarchy.content.item.ultimate.UtlimateShovelItem; import com.craisinlord.antarchy.content.item.ultimate.UltimateSwordItem; -import com.craisinlord.antarchy.content.item.DiamondMinecartItem; -import com.craisinlord.antarchy.content.item.ReverieBottleItem; -import com.craisinlord.antarchy.content.item.ScorpionWhipItem; -import com.craisinlord.antarchy.content.item.SizeRayItem; -import com.craisinlord.antarchy.content.item.SquidzookaItem; -import com.craisinlord.antarchy.content.item.RpoLauncherItem; -import com.craisinlord.antarchy.content.item.SimpleToolTier; import com.craisinlord.antarchy.content.item.ultimate.UltimateArmorItem; import com.craisinlord.antarchy.content.item.ultimate.UltimateBowItem; import com.craisinlord.antarchy.content.item.ultimate.UltimateCrossbowItem; -import com.craisinlord.antarchy.content.item.NightmareArmorItem; -import com.craisinlord.antarchy.content.item.NightmareSwordItem; -import com.craisinlord.antarchy.content.item.OuranwoodBoatOnlyItem; -import com.craisinlord.antarchy.content.item.OuranwoodChestBoatItem; -import com.craisinlord.antarchy.content.item.RainbowSugarItem; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.effect.MobEffectInstance; @@ -59,6 +21,7 @@ import net.minecraft.world.item.ArmorItem; import net.minecraft.world.item.BucketItem; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; +import net.minecraft.world.item.MobBucketItem; import net.minecraft.world.item.Rarity; import net.minecraft.world.item.StandingAndWallBlockItem; import net.minecraft.world.food.FoodProperties; @@ -66,6 +29,7 @@ import net.minecraft.world.item.Tier; import net.minecraft.world.item.Tiers; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.core.Direction; +import net.minecraft.sounds.SoundEvents; public final class AntarchyFabricItems { @@ -362,6 +326,7 @@ public final class AntarchyFabricItems { public static final DeferredItem BLUESTONE_LAMP_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BLUESTONE_LAMP); + public static final DeferredItem TIGERS_EYE_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TIGERS_EYE_BLOCK, new Item.Properties().rarity(Rarity.UNCOMMON)); public static final DeferredItem URANIUM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_BLOCK, new Item.Properties().rarity(Rarity.UNCOMMON)); @@ -477,6 +442,12 @@ public final class AntarchyFabricItems { public static final DeferredItem DREAM_SAND_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.DREAM_SAND); public static final DeferredItem ANTIGRAVEL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ANTIGRAVEL); public static final DeferredItem LOAM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LOAM); + public static final DeferredItem PACKED_LOAM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.PACKED_LOAM); + public static final DeferredItem LOAM_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LOAM_BRICKS); + public static final DeferredItem LOAM_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LOAM_BRICK_STAIRS); + public static final DeferredItem LOAM_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LOAM_BRICK_SLAB); + public static final DeferredItem LOAM_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LOAM_BRICK_WALL); + public static final DeferredItem CHISELED_LOAM_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHISELED_LOAM_BRICKS); public static final DeferredItem MUCUS_ITEM = ITEMS.register("mucus", () -> new com.craisinlord.antarchy.content.item.MucusBlockItem(AntarchyFabricBlocks.MUCUS.get(), new Item.Properties())); @@ -543,6 +514,23 @@ public final class AntarchyFabricItems { public static final DeferredItem NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE); public static final DeferredItem MYRMITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE); + public static final DeferredItem MYRMITE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_STAIRS); + public static final DeferredItem MYRMITE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_SLAB); + public static final DeferredItem MYRMITE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_WALL); + public static final DeferredItem POLISHED_MYRMITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_MYRMITE); + public static final DeferredItem POLISHED_MYRMITE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_MYRMITE_STAIRS); + public static final DeferredItem POLISHED_MYRMITE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_MYRMITE_SLAB); + public static final DeferredItem POLISHED_MYRMITE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_MYRMITE_WALL); + public static final DeferredItem CHISELED_MYRMITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHISELED_MYRMITE); + public static final DeferredItem MYRMITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_BRICKS); + public static final DeferredItem MYRMITE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_BRICK_STAIRS); + public static final DeferredItem MYRMITE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_BRICK_SLAB); + public static final DeferredItem MYRMITE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_BRICK_WALL); + public static final DeferredItem MOSSY_MYRMITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_MYRMITE_BRICKS); + public static final DeferredItem MOSSY_MYRMITE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_MYRMITE_BRICK_STAIRS); + public static final DeferredItem MOSSY_MYRMITE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_MYRMITE_BRICK_SLAB); + public static final DeferredItem MOSSY_MYRMITE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_MYRMITE_BRICK_WALL); + public static final DeferredItem MYRMITE_PILLAR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_PILLAR); public static final DeferredItem BIOMITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BIOMITE); public static final DeferredItem BIOMITE_TURF_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BIOMITE_TURF); public static final DeferredItem BIOWART_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BIOWART); @@ -551,6 +539,7 @@ public final class AntarchyFabricItems { public static final DeferredItem POLISHED_BROODSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_BROODSTONE); public static final DeferredItem CHISELED_BROODSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHISELED_BROODSTONE); public static final DeferredItem BROODSTONE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_BRICKS); + public static final DeferredItem MOSSY_BROODSTONE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_BROODSTONE_BRICKS); public static final DeferredItem BROODSTONE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_STAIRS); public static final DeferredItem BROODSTONE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_SLAB); public static final DeferredItem BROODSTONE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_WALL); @@ -560,6 +549,9 @@ 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 MOSSY_BROODSTONE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_BROODSTONE_BRICK_STAIRS); + public static final DeferredItem MOSSY_BROODSTONE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_BROODSTONE_BRICK_SLAB); + public static final DeferredItem MOSSY_BROODSTONE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_BROODSTONE_BRICK_WALL); public static final DeferredItem BROODSTONE_PILLAR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_PILLAR); 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, new Item.Properties().rarity(Rarity.UNCOMMON)); @@ -573,6 +565,7 @@ public final class AntarchyFabricItems { public static final DeferredItem NYXITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE_BRICKS); + public static final DeferredItem MOSSY_NYXITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_NYXITE_BRICKS); public static final DeferredItem CHITIN_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHITIN_BLOCK); @@ -604,6 +597,9 @@ public final class AntarchyFabricItems { public static final DeferredItem NYXITE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE_BRICK_WALL); + public static final DeferredItem MOSSY_NYXITE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_NYXITE_BRICK_STAIRS); + public static final DeferredItem MOSSY_NYXITE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_NYXITE_BRICK_SLAB); + public static final DeferredItem MOSSY_NYXITE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_NYXITE_BRICK_WALL); public static final DeferredItem NYXITE_PILLAR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE_PILLAR); @@ -1025,6 +1021,10 @@ public final class AntarchyFabricItems { .saturationModifier(0.0F) .effect(new MobEffectInstance(MobEffects.HUNGER, 600), 0.8F) .build()))); + public static final DeferredItem WORM_TOOTH = ITEMS.register("worm_tooth", + () -> new Item(new Item.Properties().rarity(Rarity.UNCOMMON))); + public static final DeferredItem WORM_HOOK = ITEMS.register("worm_hook", + () -> new WormHookItem(new Item.Properties().stacksTo(1).durability(256).rarity(Rarity.UNCOMMON))); public static final DeferredItem CLOUD_SHARK_FIN = ITEMS.registerSimpleItem("cloud_shark_fin", new Item.Properties().rarity(Rarity.UNCOMMON)); @@ -1247,6 +1247,9 @@ public final class AntarchyFabricItems { public static final DeferredItem GRAVITY_GUN = ITEMS.register("gravity_gun", () -> new GravityGunItem(new Item.Properties().stacksTo(1).durability(512).rarity(Rarity.RARE).fireResistant())); + public static final DeferredItem PORTAL_GUN = ITEMS.register("portal_gun", + () -> new PortalGunItem(new Item.Properties().stacksTo(1).durability(256).rarity(Rarity.RARE), AntarchyFabricEntities.PORTAL_GUN_PORTAL, AntarchyFabricEntities.PORTAL_GUN_BLACK_HOLE)); + // Temporarily disabled: keeping the code but not registering the item for now. // public static final DeferredItem MINERS_DREAM = ITEMS.register("miners_dream", @@ -1375,6 +1378,8 @@ public final class AntarchyFabricItems { public static final DeferredItem MOLEWORM_SPAWN_EGG = ITEMS.register("moleworm_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyFabricEntities.MOLEWORM, 0xB8B8B8, 0x8A623A, new Item.Properties())); + public static final DeferredItem WORM_SPAWN_EGG = ITEMS.register("worm_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyFabricEntities.WORM, 0x7A5742, 0xE4D2A6, new Item.Properties())); public static final DeferredItem MANTIS_SPAWN_EGG = ITEMS.register("mantis_spawn_egg", @@ -1535,6 +1540,14 @@ public final class AntarchyFabricItems { .nutrition(2) .saturationModifier(0.1F) .build()))); + public static final DeferredItem COOKED_CHEEP = ITEMS.register("cooked_cheep", + () -> new Item(new Item.Properties() + .food(new net.minecraft.world.food.FoodProperties.Builder() + .nutrition(5) + .saturationModifier(0.6F) + .build()))); + public static final DeferredItem CHEEP_BUCKET = ITEMS.register("cheep_bucket", + () -> new MobBucketItem(AntarchyFabricEntities.CHEEP.get(), net.minecraft.world.level.material.Fluids.WATER, SoundEvents.BUCKET_EMPTY_FISH, new Item.Properties().craftRemainder(Items.BUCKET).stacksTo(1))); public static final DeferredItem DORRIE_SPAWN_EGG = ITEMS.register("dorrie_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyFabricEntities.DORRIE, 0x6F8CFF, 0xD2F2FF, new Item.Properties())); diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java index 5c65da9f..1862b49c 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java @@ -63,6 +63,8 @@ import com.craisinlord.antarchy.content.worldgen.thoraxis.BedBugSurfaceClusterFe import com.craisinlord.antarchy.content.worldgen.thoraxis.DimensionalTearFeature; import com.craisinlord.antarchy.content.worldgen.elythia.ElythiaCloudFeature; import com.craisinlord.antarchy.content.worldgen.thoraxis.LucidAntiwaterPoolFeature; +import com.craisinlord.antarchy.content.worldgen.thoraxis.NadirTreeConfiguration; +import com.craisinlord.antarchy.content.worldgen.thoraxis.NadirTreeFeature; import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisBiomeSource; import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisDuneConfiguration; import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisDuneFeature; @@ -572,6 +574,10 @@ public final class AntarchyFabricMisc { () -> new PeachTreeFeature(PeachTreeConfiguration.CODEC)); + public static final DeferredHolder, NadirTreeFeature> NADIR_TREE_FEATURE = FEATURES.register("nadir_tree", + () -> new NadirTreeFeature(NadirTreeConfiguration.CODEC)); + + public static final DeferredHolder, ElythiaFloraFeature> ELYTHIA_FOREST_FLORA = FEATURES.register("elythia_forest_flora", () -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.FOREST)); diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricSounds.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricSounds.java index 7beec29e..8fe096bf 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricSounds.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricSounds.java @@ -316,6 +316,24 @@ public final class AntarchyFabricSounds { public static final DeferredHolder GRAVITY_GUN_DRYFIRE = registerSoundEvent("gravity_gun_dryfire"); + public static final DeferredHolder PORTAL_GUN_FIRE_BLUE = registerSoundEvent("portal_gun_fire_blue"); + + + public static final DeferredHolder PORTAL_GUN_FIRE_ORANGE = registerSoundEvent("portal_gun_fire_orange"); + + + public static final DeferredHolder PORTAL_GUN_INVALID_SURFACE = registerSoundEvent("portal_gun_invalid_surface"); + + + public static final DeferredHolder PORTAL_OPEN_BLUE = registerSoundEvent("portal_open_blue"); + + + public static final DeferredHolder PORTAL_OPEN_ORANGE = registerSoundEvent("portal_open_orange"); + + + public static final DeferredHolder PORTAL_FIZZLE = registerSoundEvent("portal_fizzle"); + + public static final DeferredHolder BED_BUG_AMBIENT = registerSoundEvent("bed_bug_ambient"); diff --git a/fabric-1.21.1/src/main/resources/assets/antarchy/models/item/portal_gun.json b/fabric-1.21.1/src/main/resources/assets/antarchy/models/item/portal_gun.json new file mode 100644 index 00000000..a3b81466 --- /dev/null +++ b/fabric-1.21.1/src/main/resources/assets/antarchy/models/item/portal_gun.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:item/portal_gun_held_geo" +} diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyNeoforge.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyNeoforge.java index e9379ae5..b369ac88 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyNeoforge.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyNeoforge.java @@ -202,6 +202,12 @@ public class AntarchyNeoforge { player, new com.craisinlord.antarchy.content.network.ScorpionWhipTetherPayload(player.getId(), targetId) )); + com.craisinlord.antarchy.content.item.WormHookTetherSync.setSink((player, hookId) -> PacketDistributor.sendToPlayersTrackingEntityAndSelf( + player, + new com.craisinlord.antarchy.content.network.WormHookTetherPayload(player.getId(), hookId) + )); + AntarchyObjects.setWormHookProjectile(() -> AntarchyNeoforgeEntites.WORM_HOOK_PROJECTILE.get()); + AntarchyObjects.setWormHook(() -> AntarchyNeoforgeItems.WORM_HOOK.get()); BloodCrystalKatanaItem.setTrailCallback((player, durationTicks) -> PacketDistributor.sendToPlayersTrackingEntityAndSelf( player, new BloodCrystalKatanaTrailPayload(player.getId(), durationTicks) diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java index a15f9acb..1deb6370 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java @@ -105,6 +105,7 @@ public final class AntarchyNeoForgeClient { event.registerEntityRenderer(AntarchyNeoforgeEntites.BROWN_ANT.get(), context -> withParalyzedGeoLayer(new AntRenderer(context))); event.registerEntityRenderer(AntarchyNeoforgeEntites.RAINBOW_ANT.get(), context -> withParalyzedGeoLayer(new AntRenderer(context))); event.registerEntityRenderer(AntarchyNeoforgeEntites.MOLEWORM.get(), context -> withParalyzedGeoLayer(new MolewormRenderer(context))); + event.registerEntityRenderer(AntarchyNeoforgeEntites.WORM.get(), context -> withParalyzedGeoLayer(new WormRenderer(context))); event.registerEntityRenderer(AntarchyNeoforgeEntites.MANTIS.get(), context -> withParalyzedGeoLayer(new MantisRenderer(context))); event.registerEntityRenderer(AntarchyNeoforgeEntites.ALPHA_MANTIS.get(), context -> withParalyzedGeoLayer(new AlphaMantisRenderer(context))); event.registerEntityRenderer(AntarchyNeoforgeEntites.MOLEVORE.get(), context -> withParalyzedGeoLayer(new MolevoreRenderer(context))); @@ -129,6 +130,8 @@ public final class AntarchyNeoForgeClient { event.registerEntityRenderer(AntarchyNeoforgeEntites.NIGHTMARE.get(), context -> withParalyzedGeoLayer(new NightmareRenderer(context))); event.registerEntityRenderer(AntarchyNeoforgeEntites.NIGHTMARE_PORTAL.get(), NightmarePortalRenderer::new); event.registerEntityRenderer(AntarchyNeoforgeEntites.DIMENSIONAL_TEAR.get(), DimensionalTearRenderer::new); + event.registerEntityRenderer(AntarchyNeoforgeEntites.PORTAL_GUN_PORTAL.get(), PortalGunPortalRenderer::new); + event.registerEntityRenderer(AntarchyNeoforgeEntites.PORTAL_GUN_BLACK_HOLE.get(), com.craisinlord.antarchy.content.client.renderer.PortalGunBlackHoleRenderer::new); event.registerEntityRenderer(AntarchyNeoforgeEntites.NIGHTMARE_BITE.get(), NightmareBiteRenderer::new); event.registerEntityRenderer(AntarchyNeoforgeEntites.LUCID.get(), context -> withParalyzedGeoLayer(new LucidRenderer(context))); event.registerEntityRenderer(AntarchyNeoforgeEntites.BED_BUG.get(), context -> withParalyzedGeoLayer(new BedBugRenderer(context))); @@ -140,6 +143,7 @@ public final class AntarchyNeoForgeClient { event.registerEntityRenderer(AntarchyNeoforgeEntites.LUCID_BOLT.get(), LucidBoltRenderer::new); event.registerEntityRenderer(AntarchyNeoforgeEntites.LUCID_PEARL_PROJECTILE.get(), ThrownItemRenderer::new); event.registerEntityRenderer(AntarchyNeoforgeEntites.CRITTER_CAGE_PROJECTILE.get(), ThrownItemRenderer::new); + event.registerEntityRenderer(AntarchyNeoforgeEntites.WORM_HOOK_PROJECTILE.get(), ThrownItemRenderer::new); event.registerEntityRenderer(AntarchyNeoforgeEntites.HUSH_PROJECTILE.get(), HushProjectileRenderer::new); event.registerEntityRenderer(AntarchyNeoforgeEntites.BRUTALFLY_ORB.get(), BrutalflyOrbRenderer::new); event.registerEntityRenderer(AntarchyNeoforgeEntites.UPWARD_FALLING_BLOCK.get(), com.craisinlord.antarchy.content.client.renderer.UpwardFallingBlockRenderer::new); @@ -550,6 +554,7 @@ public final class AntarchyNeoForgeClient { registerGeoItemExtensionSizeRay(event, AntarchyNeoforgeItems.SHRINK_RAY.get()); registerGeoItemExtensionSizeRay(event, AntarchyNeoforgeItems.GROWTH_RAY.get()); registerGeoItemExtension(event, AntarchyNeoforgeItems.GRAVITY_GUN.get(), HumanoidModel.ArmPose.CROSSBOW_HOLD); + registerGeoItemExtension(event, AntarchyNeoforgeItems.PORTAL_GUN.get(), HumanoidModel.ArmPose.CROSSBOW_HOLD); registerGeoItemExtension(event, AntarchyNeoforgeItems.SQUIDZOOKA.get(), HumanoidModel.ArmPose.CROSSBOW_HOLD); registerGeoItemExtension(event, AntarchyNeoforgeItems.RPO_LAUNCHER.get(), HumanoidModel.ArmPose.CROSSBOW_HOLD); registerGeoItemExtension(event, AntarchyNeoforgeItems.WATER_CANNON.get(), HumanoidModel.ArmPose.CROSSBOW_HOLD); diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/PortalGunClientHandler.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/PortalGunClientHandler.java new file mode 100644 index 00000000..d43e82f1 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/PortalGunClientHandler.java @@ -0,0 +1,39 @@ +package com.craisinlord.antarchy.neoforge.client; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.item.PortalGunItem; +import com.craisinlord.antarchy.content.network.PortalGunPrimaryPayload; +import net.minecraft.client.Minecraft; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.neoforge.client.event.ClientTickEvent; +import net.neoforged.neoforge.network.PacketDistributor; + +@EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT) +public final class PortalGunClientHandler { + private static boolean lastAttackDown; + + private PortalGunClientHandler() { + } + + @SubscribeEvent + public static void onClientTick(ClientTickEvent.Post event) { + Minecraft mc = Minecraft.getInstance(); + if (mc.player == null || mc.level == null || mc.screen != null) { + lastAttackDown = false; + return; + } + + if (!(mc.player.getMainHandItem().getItem() instanceof PortalGunItem)) { + lastAttackDown = false; + return; + } + + boolean attackDown = mc.options.keyAttack.isDown(); + if (attackDown && !lastAttackDown) { + PacketDistributor.sendToServer(new PortalGunPrimaryPayload()); + } + lastAttackDown = attackDown; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/WormHookTetherRenderHandler.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/WormHookTetherRenderHandler.java new file mode 100644 index 00000000..463855c9 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/WormHookTetherRenderHandler.java @@ -0,0 +1,177 @@ +package com.craisinlord.antarchy.neoforge.client; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.client.WormHookTetherClientState; +import com.craisinlord.antarchy.content.item.WormHookItem; +import com.craisinlord.antarchy.content.util.WormHookRope; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.blaze3d.vertex.BufferUploader; +import com.mojang.blaze3d.vertex.DefaultVertexFormat; +import com.mojang.blaze3d.vertex.MeshData; +import com.mojang.blaze3d.vertex.Tesselator; +import com.mojang.blaze3d.vertex.VertexFormat; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import net.minecraft.client.Camera; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.HumanoidArm; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.phys.Vec3; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.neoforge.client.event.ClientTickEvent; +import net.neoforged.neoforge.client.event.RenderLevelStageEvent; +import org.joml.Matrix4f; + +@EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT, bus = EventBusSubscriber.Bus.GAME) +public final class WormHookTetherRenderHandler { + private static final Map ROPES = new HashMap<>(); + + private WormHookTetherRenderHandler() { + } + + @SubscribeEvent + public static void onClientTick(ClientTickEvent.Post event) { + Minecraft minecraft = Minecraft.getInstance(); + if (minecraft.level == null) { + WormHookTetherClientState.clear(); + ROPES.clear(); + return; + } + + Map tethers = WormHookTetherClientState.snapshot(); + ROPES.keySet().removeIf(playerId -> !tethers.containsKey(playerId)); + + for (Map.Entry entry : tethers.entrySet()) { + Entity source = minecraft.level.getEntity(entry.getKey()); + Entity hook = minecraft.level.getEntity(entry.getValue()); + if (!(source instanceof Player player) || hook == null || hook.isRemoved()) { + continue; + } + + Vec3 anchor = hook.position(); + Vec3 playerEye = player.getEyePosition(); + WormHookRope rope = ROPES.computeIfAbsent(entry.getKey(), id -> new WormHookRope(anchor, playerEye)); + rope.update(hook, anchor, playerEye, anchor.distanceTo(playerEye) + 32.0D); + } + } + + @SubscribeEvent + public static void onRenderLevelStage(RenderLevelStageEvent event) { + if (event.getStage() != RenderLevelStageEvent.Stage.AFTER_PARTICLES) { + return; + } + + Minecraft minecraft = Minecraft.getInstance(); + if (minecraft.level == null) { + return; + } + + Map tethers = WormHookTetherClientState.snapshot(); + if (tethers.isEmpty()) { + return; + } + + Camera camera = event.getCamera(); + Vec3 cameraPos = camera.getPosition(); + Matrix4f pose = event.getPoseStack().last().pose(); + + RenderSystem.enableBlend(); + RenderSystem.defaultBlendFunc(); + RenderSystem.depthMask(false); + RenderSystem.disableCull(); + RenderSystem.setShader(GameRenderer::getPositionColorShader); + + BufferBuilder buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); + for (Map.Entry entry : tethers.entrySet()) { + Entity source = minecraft.level.getEntity(entry.getKey()); + Entity hook = minecraft.level.getEntity(entry.getValue()); + if (!(source instanceof Player player) || hook == null || hook.isRemoved()) { + continue; + } + + WormHookRope rope = ROPES.get(entry.getKey()); + List points = rope != null ? rope.points() : List.of(hook.position(), player.getEyePosition()); + + Vec3 handPos = tetherStart(player, event.getPartialTick().getGameTimeDeltaPartialTick(false)); + for (int i = points.size() - 1; i > 0; i--) { + Vec3 start = i == points.size() - 1 ? handPos : points.get(i); + Vec3 end = points.get(i - 1); + buildTether(buffer, pose, start, end, cameraPos); + } + } + + MeshData mesh = buffer.build(); + if (mesh != null) { + BufferUploader.drawWithShader(mesh); + } + + RenderSystem.enableCull(); + RenderSystem.depthMask(true); + RenderSystem.disableBlend(); + } + + private static Vec3 tetherStart(Player player, float partialTick) { + Vec3 start = player.getEyePosition(partialTick).add(0.0D, -0.45D, 0.0D); + boolean mainHandHook = player.getMainHandItem().getItem() instanceof WormHookItem; + boolean offHandHook = player.getOffhandItem().getItem() instanceof WormHookItem; + if (!mainHandHook && !offHandHook) { + return start; + } + + boolean useMainHand = mainHandHook || !offHandHook; + HumanoidArm arm = useMainHand ? player.getMainArm() : player.getMainArm().getOpposite(); + float bodyYaw = Mth.rotLerp(partialTick, player.yBodyRotO, player.yBodyRot); + double radians = Math.toRadians(bodyYaw + 90.0F); + double side = arm == HumanoidArm.RIGHT ? -0.28D : 0.28D; + return start.add(Math.cos(radians) * side, -0.12D, Math.sin(radians) * side); + } + + private static void buildTether(BufferBuilder buffer, Matrix4f pose, Vec3 start, Vec3 end, Vec3 cameraPos) { + Vec3 delta = end.subtract(start); + double length = delta.length(); + if (length < 0.001D) { + return; + } + + Vec3 forward = delta.scale(1.0D / length); + Vec3 right = forward.cross(new Vec3(0.0D, 1.0D, 0.0D)); + if (right.lengthSqr() < 1.0E-6D) { + right = forward.cross(new Vec3(1.0D, 0.0D, 0.0D)); + } + right = right.normalize(); + + int segments = Math.max(4, Mth.ceil(length * 8.0D)); + for (int i = 0; i < segments; i++) { + double t0 = (double) i / (double) segments; + double t1 = (double) (i + 1) / (double) segments; + Vec3 p0 = ropePoint(start, delta, t0, length); + Vec3 p1 = ropePoint(start, delta, t1, length); + float width = 0.04F; + Vec3 offset = right.scale(width); + + Vec3 a = p0.subtract(cameraPos); + Vec3 b = p1.subtract(cameraPos); + float shade = i % 2 == 0 ? 0.85F : 0.65F; + float red = 0.42F * shade; + float green = 0.36F * shade; + float blue = 0.24F * shade; + + buffer.addVertex(pose, (float) (a.x + offset.x), (float) (a.y + offset.y), (float) (a.z + offset.z)).setColor(red, green, blue, 1.0F); + buffer.addVertex(pose, (float) (a.x - offset.x), (float) (a.y - offset.y), (float) (a.z - offset.z)).setColor(red, green, blue, 1.0F); + buffer.addVertex(pose, (float) (b.x - offset.x), (float) (b.y - offset.y), (float) (b.z - offset.z)).setColor(red, green, blue, 1.0F); + buffer.addVertex(pose, (float) (b.x + offset.x), (float) (b.y + offset.y), (float) (b.z + offset.z)).setColor(red, green, blue, 1.0F); + } + } + + private static Vec3 ropePoint(Vec3 start, Vec3 delta, double t, double length) { + double sag = Math.sin(t * Math.PI) * Math.min(0.2D, length * 0.03D); + return start.add(delta.scale(t)).add(0.0D, -sag, 0.0D); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/network/AntarchyGravityNetworking.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/network/AntarchyGravityNetworking.java index 5e8fb44a..1d97e34f 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/network/AntarchyGravityNetworking.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/network/AntarchyGravityNetworking.java @@ -4,11 +4,13 @@ import com.craisinlord.antarchy.content.entity.DiamondMinecartEntity; import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi; import com.craisinlord.antarchy.content.item.BigBerthaItem; import com.craisinlord.antarchy.content.item.GravityGunItem; +import com.craisinlord.antarchy.content.item.PortalGunItem; import com.craisinlord.antarchy.content.network.BigBerthaModeCyclePayload; import com.craisinlord.antarchy.content.network.GravityGunPrimaryPayload; import com.craisinlord.antarchy.content.network.GravityGunScrollPayload; import com.craisinlord.antarchy.content.network.GravityStatePayload; import com.craisinlord.antarchy.content.network.ImpactShakePayload; +import com.craisinlord.antarchy.content.network.PortalGunPrimaryPayload; import com.craisinlord.antarchy.content.client.CameraShakeClientState; import net.minecraft.world.entity.Entity; import net.minecraft.server.level.ServerPlayer; @@ -34,6 +36,10 @@ public final class AntarchyGravityNetworking { GravityGunPrimaryPayload.TYPE, GravityGunPrimaryPayload.STREAM_CODEC, AntarchyGravityNetworking::handleGravityGunPrimary + ).playToServer( + PortalGunPrimaryPayload.TYPE, + PortalGunPrimaryPayload.STREAM_CODEC, + AntarchyGravityNetworking::handlePortalGunPrimary ).playToServer( GravityGunScrollPayload.TYPE, GravityGunScrollPayload.STREAM_CODEC, @@ -154,4 +160,18 @@ public final class AntarchyGravityNetworking { gravityGunItem.firePrimary(serverPlayer.serverLevel(), serverPlayer, serverPlayer.getMainHandItem()); }); } + + private static void handlePortalGunPrimary(PortalGunPrimaryPayload payload, IPayloadContext context) { + context.enqueueWork(() -> { + if (!(context.player() instanceof ServerPlayer serverPlayer)) { + return; + } + + if (!(serverPlayer.getMainHandItem().getItem() instanceof PortalGunItem portalGunItem)) { + return; + } + + portalGunItem.firePrimary(serverPlayer.serverLevel(), serverPlayer, serverPlayer.getMainHandItem()); + }); + } } diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java index 8524aa51..f39df3fc 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java @@ -101,6 +101,7 @@ public final class AntarchyNeoForgeEvents { NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleScorpionWhipAttackEntity); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleAttitudeAdjusterAttackEntity); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleScorpionWhipLeftClickBlock); + NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handlePortalGunLeftClickBlock); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleScorpionWhipRightClickBlock); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleScorpionWhipRightClickItem); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleParalyzedAttackEntity); @@ -112,6 +113,7 @@ public final class AntarchyNeoForgeEvents { NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleDreamSandJump); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickDreadAndIchor); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickScorpionWhips); + NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickWormHooks); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickDreamSandLowGravity); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickMinersDreamExcavations); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleAntiwaterDamage); @@ -927,6 +929,13 @@ public final class AntarchyNeoForgeEvents { event.setCanceled(true); } + static void handlePortalGunLeftClickBlock(PlayerInteractEvent.LeftClickBlock event) { + if (!(event.getEntity().getMainHandItem().getItem() instanceof com.craisinlord.antarchy.content.item.PortalGunItem)) { + return; + } + event.setCanceled(true); + } + static void handleScorpionWhipRightClickBlock(PlayerInteractEvent.RightClickBlock event) { if (!(event.getEntity() instanceof ServerPlayer player)) { return; @@ -1037,6 +1046,12 @@ public final class AntarchyNeoForgeEvents { } } + static void tickWormHooks(PlayerTickEvent.Post event) { + if (event.getEntity() instanceof ServerPlayer player) { + com.craisinlord.antarchy.content.item.WormHookTetherManager.tick(player); + } + } + static void tickMinersDreamExcavations(ServerTickEvent.Post event) { for (ServerLevel level : event.getServer().getAllLevels()) { AttitudeAdjusterSlamManager.tick(level); diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java index 380f167f..0dec6de5 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java @@ -213,6 +213,8 @@ public final class AntarchyNeoforgeBlocks { () -> new Block(nyxiteProperties())); public static final DeferredBlock NYXITE_BRICKS = BLOCKS.register("nyxite_bricks", () -> new Block(nyxiteProperties())); + public static final DeferredBlock MOSSY_NYXITE_BRICKS = BLOCKS.register("mossy_nyxite_bricks", + () -> new Block(nyxiteProperties())); public static final DeferredBlock NYXITE_STAIRS = BLOCKS.register("nyxite_stairs", () -> new StairBlock(NYXITE.get().defaultBlockState(), nyxiteProperties())); public static final DeferredBlock NYXITE_SLAB = BLOCKS.register("nyxite_slab", @@ -235,6 +237,12 @@ public final class AntarchyNeoforgeBlocks { () -> new SlabBlock(nyxiteProperties())); public static final DeferredBlock NYXITE_BRICK_WALL = BLOCKS.register("nyxite_brick_wall", () -> new WallBlock(nyxiteProperties())); + public static final DeferredBlock MOSSY_NYXITE_BRICK_STAIRS = BLOCKS.register("mossy_nyxite_brick_stairs", + () -> new StairBlock(MOSSY_NYXITE_BRICKS.get().defaultBlockState(), nyxiteProperties())); + public static final DeferredBlock MOSSY_NYXITE_BRICK_SLAB = BLOCKS.register("mossy_nyxite_brick_slab", + () -> new SlabBlock(nyxiteProperties())); + public static final DeferredBlock MOSSY_NYXITE_BRICK_WALL = BLOCKS.register("mossy_nyxite_brick_wall", + () -> new WallBlock(nyxiteProperties())); public static final DeferredBlock NYXITE_PILLAR = BLOCKS.register("nyxite_pillar", () -> new RotatedPillarBlock(nyxiteProperties())); public static final DeferredBlock SHELLSTONE = BLOCKS.register("shellstone", @@ -301,6 +309,40 @@ public final class AntarchyNeoforgeBlocks { )); public static final DeferredBlock MYRMITE = BLOCKS.register("myrmite", () -> new Block(nyxiteProperties())); + public static final DeferredBlock MYRMITE_STAIRS = BLOCKS.register("myrmite_stairs", + () -> new StairBlock(MYRMITE.get().defaultBlockState(), nyxiteProperties())); + public static final DeferredBlock MYRMITE_SLAB = BLOCKS.register("myrmite_slab", + () -> new SlabBlock(nyxiteProperties())); + public static final DeferredBlock MYRMITE_WALL = BLOCKS.register("myrmite_wall", + () -> new WallBlock(nyxiteProperties())); + public static final DeferredBlock POLISHED_MYRMITE = BLOCKS.register("polished_myrmite", + () -> new Block(nyxiteProperties())); + public static final DeferredBlock POLISHED_MYRMITE_STAIRS = BLOCKS.register("polished_myrmite_stairs", + () -> new StairBlock(POLISHED_MYRMITE.get().defaultBlockState(), nyxiteProperties())); + public static final DeferredBlock POLISHED_MYRMITE_SLAB = BLOCKS.register("polished_myrmite_slab", + () -> new SlabBlock(nyxiteProperties())); + public static final DeferredBlock POLISHED_MYRMITE_WALL = BLOCKS.register("polished_myrmite_wall", + () -> new WallBlock(nyxiteProperties())); + public static final DeferredBlock CHISELED_MYRMITE = BLOCKS.register("chiseled_myrmite", + () -> new Block(nyxiteProperties())); + public static final DeferredBlock MYRMITE_BRICKS = BLOCKS.register("myrmite_bricks", + () -> new Block(nyxiteProperties())); + public static final DeferredBlock MYRMITE_BRICK_STAIRS = BLOCKS.register("myrmite_brick_stairs", + () -> new StairBlock(MYRMITE_BRICKS.get().defaultBlockState(), nyxiteProperties())); + public static final DeferredBlock MYRMITE_BRICK_SLAB = BLOCKS.register("myrmite_brick_slab", + () -> new SlabBlock(nyxiteProperties())); + public static final DeferredBlock MYRMITE_BRICK_WALL = BLOCKS.register("myrmite_brick_wall", + () -> new WallBlock(nyxiteProperties())); + public static final DeferredBlock MOSSY_MYRMITE_BRICKS = BLOCKS.register("mossy_myrmite_bricks", + () -> new Block(nyxiteProperties())); + public static final DeferredBlock MOSSY_MYRMITE_BRICK_STAIRS = BLOCKS.register("mossy_myrmite_brick_stairs", + () -> new StairBlock(MOSSY_MYRMITE_BRICKS.get().defaultBlockState(), nyxiteProperties())); + public static final DeferredBlock MOSSY_MYRMITE_BRICK_SLAB = BLOCKS.register("mossy_myrmite_brick_slab", + () -> new SlabBlock(nyxiteProperties())); + public static final DeferredBlock MOSSY_MYRMITE_BRICK_WALL = BLOCKS.register("mossy_myrmite_brick_wall", + () -> new WallBlock(nyxiteProperties())); + public static final DeferredBlock MYRMITE_PILLAR = BLOCKS.register("myrmite_pillar", + () -> new RotatedPillarBlock(nyxiteProperties())); public static final DeferredBlock BIOMITE = BLOCKS.register("biomite", () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.NETHERRACK))); public static final DeferredBlock BIOMITE_TURF = BLOCKS.register("biomite_turf", @@ -319,6 +361,8 @@ public final class AntarchyNeoforgeBlocks { () -> new Block(broodstoneProperties())); public static final DeferredBlock BROODSTONE_BRICKS = BLOCKS.register("broodstone_bricks", () -> new Block(broodstoneProperties())); + public static final DeferredBlock MOSSY_BROODSTONE_BRICKS = BLOCKS.register("mossy_broodstone_bricks", + () -> new Block(broodstoneProperties())); public static final DeferredBlock BROODSTONE_STAIRS = BLOCKS.register("broodstone_stairs", () -> new StairBlock(BROODSTONE.get().defaultBlockState(), broodstoneProperties())); public static final DeferredBlock BROODSTONE_SLAB = BLOCKS.register("broodstone_slab", @@ -337,6 +381,12 @@ public final class AntarchyNeoforgeBlocks { () -> new SlabBlock(broodstoneProperties())); public static final DeferredBlock BROODSTONE_BRICK_WALL = BLOCKS.register("broodstone_brick_wall", () -> new WallBlock(broodstoneProperties())); + public static final DeferredBlock MOSSY_BROODSTONE_BRICK_STAIRS = BLOCKS.register("mossy_broodstone_brick_stairs", + () -> new StairBlock(MOSSY_BROODSTONE_BRICKS.get().defaultBlockState(), broodstoneProperties())); + public static final DeferredBlock MOSSY_BROODSTONE_BRICK_SLAB = BLOCKS.register("mossy_broodstone_brick_slab", + () -> new SlabBlock(broodstoneProperties())); + public static final DeferredBlock MOSSY_BROODSTONE_BRICK_WALL = BLOCKS.register("mossy_broodstone_brick_wall", + () -> new WallBlock(broodstoneProperties())); public static final DeferredBlock BROODSTONE_PILLAR = BLOCKS.register("broodstone_pillar", () -> new RotatedPillarBlock(broodstoneProperties())); public static final DeferredBlock BROODSTONE_URANIUM_ORE = BLOCKS.register("broodstone_uranium_ore", @@ -460,6 +510,8 @@ public final class AntarchyNeoforgeBlocks { () -> new BluestoneTorchBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.REDSTONE_TORCH).mapColor(MapColor.COLOR_BLUE).lightLevel(state -> state.getValue(BluestoneTorchBlock.LIT) ? 7 : 0).noCollission().instabreak())); public static final DeferredBlock BLUESTONE_LAMP = BLOCKS.register("bluestone_lamp", () -> new BluestoneLampBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.REDSTONE_LAMP).mapColor(MapColor.COLOR_BLUE))); + public static final DeferredBlock TIGERS_EYE_BLOCK = BLOCKS.register("tigers_eye_block", + () -> createStorageBlock(Blocks.EMERALD_BLOCK, MapColor.COLOR_ORANGE)); public static final DeferredBlock URANIUM_BLOCK = BLOCKS.register("uranium_block", () -> createStorageBlock(Blocks.EMERALD_BLOCK, MapColor.COLOR_YELLOW)); public static final DeferredBlock TITANIUM_BLOCK = BLOCKS.register("titanium_block", @@ -567,6 +619,18 @@ public final class AntarchyNeoforgeBlocks { () -> new AntigravelBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.GRAVEL))); public static final DeferredBlock LOAM = BLOCKS.register("loam", () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.MUD))); + public static final DeferredBlock PACKED_LOAM = BLOCKS.register("packed_loam", + () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.PACKED_MUD))); + public static final DeferredBlock LOAM_BRICKS = BLOCKS.register("loam_bricks", + () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.MUD_BRICKS))); + public static final DeferredBlock LOAM_BRICK_STAIRS = BLOCKS.register("loam_brick_stairs", + () -> new StairBlock(LOAM_BRICKS.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.MUD_BRICK_STAIRS))); + public static final DeferredBlock LOAM_BRICK_SLAB = BLOCKS.register("loam_brick_slab", + () -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MUD_BRICK_SLAB))); + public static final DeferredBlock LOAM_BRICK_WALL = BLOCKS.register("loam_brick_wall", + () -> new WallBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MUD_BRICK_WALL))); + public static final DeferredBlock CHISELED_LOAM_BRICKS = BLOCKS.register("chiseled_loam_bricks", + () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.MUD_BRICKS))); public static final DeferredBlock MUCUS = BLOCKS.register("mucus", () -> new MucusBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.GLOW_LICHEN).friction(0.98F).lightLevel(state -> 0).sound(SoundType.SLIME_BLOCK))); public static final DeferredBlock DREAM_SANDSTONE = BLOCKS.register("dream_sandstone", diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java index a2bfa3a7..b7ef9a84 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java @@ -18,6 +18,7 @@ import com.craisinlord.antarchy.content.entity.OuranwoodDeerEntity; import com.craisinlord.antarchy.content.entity.glimmer.GlimmerEntity; import com.craisinlord.antarchy.content.entity.HushProjectileEntity; import com.craisinlord.antarchy.content.entity.CritterCageProjectileEntity; +import com.craisinlord.antarchy.content.entity.WormHookProjectileEntity; import com.craisinlord.antarchy.content.entity.HerculesBeetleEntity; import com.craisinlord.antarchy.content.entity.JerryEntity; import com.craisinlord.antarchy.content.entity.JumpyBugEntity; @@ -28,6 +29,7 @@ import com.craisinlord.antarchy.content.entity.MissileSquidEntity; import com.craisinlord.antarchy.content.entity.OctopusBombEntity; import com.craisinlord.antarchy.content.entity.MolevoreEntity; import com.craisinlord.antarchy.content.entity.MolewormEntity; +import com.craisinlord.antarchy.content.entity.WormEntity; import com.craisinlord.antarchy.content.entity.OuranwoodBoatEntity; import com.craisinlord.antarchy.content.entity.OuranwoodChestBoatEntity; import com.craisinlord.antarchy.content.entity.NadirBoatEntity; @@ -68,6 +70,7 @@ import com.craisinlord.antarchy.content.entity.DorrieEntity; import com.craisinlord.antarchy.content.entity.LurkingTerrorEntity; import com.craisinlord.antarchy.content.entity.ToreterrorEntity; import com.craisinlord.antarchy.content.entity.WaterBombEntity; +import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity; import net.minecraft.core.registries.Registries; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobCategory; @@ -103,6 +106,11 @@ public final class AntarchyNeoforgeEntites { .sized(0.4F, 0.3F) .clientTrackingRange(8) .build("moleworm")); + public static final DeferredHolder, EntityType> WORM = ENTITY_TYPES.register("worm", + () -> EntityType.Builder.of(WormEntity::new, MobCategory.MONSTER) + .sized(1.35F, 2.75F) + .clientTrackingRange(10) + .build("worm")); public static final DeferredHolder, EntityType> MANTIS = ENTITY_TYPES.register("mantis", () -> EntityType.Builder.of(MantisEntity::new, MobCategory.MONSTER) .sized(3.125F, 2.5F) @@ -295,6 +303,19 @@ public final class AntarchyNeoforgeEntites { .clientTrackingRange(12) .updateInterval(1) .build("dimensional_tear")); + public static final DeferredHolder, EntityType> PORTAL_GUN_PORTAL = ENTITY_TYPES.register("portal_gun_portal", + () -> EntityType.Builder.of(PortalGunPortalEntity::new, MobCategory.MISC) + .sized(1.0F, 2.0F) + .clientTrackingRange(10) + .updateInterval(1) + .build("portal_gun_portal")); + + public static final DeferredHolder, EntityType> PORTAL_GUN_BLACK_HOLE = ENTITY_TYPES.register("portal_gun_black_hole", + () -> EntityType.Builder.of(com.craisinlord.antarchy.content.portalgun.PortalGunBlackHoleEntity::new, MobCategory.MISC) + .sized(1.2F, 1.2F) + .clientTrackingRange(10) + .updateInterval(1) + .build("portal_gun_black_hole")); public static final DeferredHolder, EntityType> NIGHTMARE_BITE = ENTITY_TYPES.register("nightmare_bite", () -> EntityType.Builder.of(NightmareBiteEntity::new, MobCategory.MISC) .sized(2.5F, 2.0F) @@ -354,6 +375,12 @@ public final class AntarchyNeoforgeEntites { .clientTrackingRange(8) .updateInterval(1) .build("critter_cage_projectile")); + public static final DeferredHolder, EntityType> WORM_HOOK_PROJECTILE = ENTITY_TYPES.register("worm_hook_projectile", + () -> EntityType.Builder.of(WormHookProjectileEntity::new, MobCategory.MISC) + .sized(0.25F, 0.25F) + .clientTrackingRange(10) + .updateInterval(1) + .build("worm_hook_projectile")); public static final DeferredHolder, EntityType> HUSH_PROJECTILE = ENTITY_TYPES.register("hush_projectile", () -> EntityType.Builder.of(HushProjectileEntity::new, MobCategory.MISC) .sized(0.35F, 0.35F) diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntityAttributes.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntityAttributes.java index a9be0cd4..cebbad46 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntityAttributes.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntityAttributes.java @@ -79,6 +79,7 @@ public class AntarchyNeoforgeEntityAttributes { event.put(AntarchyNeoforgeEntites.BROWN_ANT.get(), brownAntAttributes); event.put(AntarchyNeoforgeEntites.RAINBOW_ANT.get(), rainbowAntAttributes); event.put(AntarchyNeoforgeEntites.MOLEWORM.get(), MolewormEntity.createAttributes().build()); + event.put(AntarchyNeoforgeEntites.WORM.get(), WormEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.MOLEVORE.get(), MolevoreEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.CHEEP.get(), com.craisinlord.antarchy.content.entity.CheepEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.DORRIE.get(), com.craisinlord.antarchy.content.entity.DorrieEntity.createAttributes().build()); diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java index 84115e55..0bf7637b 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java @@ -269,6 +269,8 @@ public final class AntarchyNeoforgeItems { public static final DeferredItem BLUESTONE_TORCH_ITEM = ITEMS.register("bluestone_torch", () -> new CeilingPlacementTooltipBlockItem(AntarchyNeoforgeBlocks.BLUESTONE_TORCH.get(), new Item.Properties())); public static final DeferredItem BLUESTONE_LAMP_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BLUESTONE_LAMP); + public static final DeferredItem TIGERS_EYE_BLOCK_ITEM = ITEMS.register("tigers_eye_block", + () -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.TIGERS_EYE_BLOCK.get(), new Item.Properties().rarity(Rarity.UNCOMMON))); public static final DeferredItem URANIUM_BLOCK_ITEM = ITEMS.register("uranium_block", () -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.URANIUM_BLOCK.get(), new Item.Properties().rarity(Rarity.UNCOMMON))); public static final DeferredItem TITANIUM_BLOCK_ITEM = ITEMS.register("titanium_block", @@ -342,6 +344,12 @@ public final class AntarchyNeoforgeItems { public static final DeferredItem DREAM_SAND_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.DREAM_SAND); public static final DeferredItem ANTIGRAVEL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.ANTIGRAVEL); public static final DeferredItem LOAM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.LOAM); + public static final DeferredItem PACKED_LOAM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.PACKED_LOAM); + public static final DeferredItem LOAM_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.LOAM_BRICKS); + public static final DeferredItem LOAM_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.LOAM_BRICK_STAIRS); + public static final DeferredItem LOAM_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.LOAM_BRICK_SLAB); + public static final DeferredItem LOAM_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.LOAM_BRICK_WALL); + public static final DeferredItem CHISELED_LOAM_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CHISELED_LOAM_BRICKS); public static final DeferredItem MUCUS_ITEM = ITEMS.register("mucus", () -> new com.craisinlord.antarchy.content.item.MucusBlockItem(AntarchyNeoforgeBlocks.MUCUS.get(), new Item.Properties())); public static final DeferredItem DREAM_SANDSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.DREAM_SANDSTONE); @@ -368,6 +376,23 @@ public final class AntarchyNeoforgeItems { public static final DeferredItem INFESTED_COARSE_DIRT_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.INFESTED_COARSE_DIRT); public static final DeferredItem NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE); public static final DeferredItem MYRMITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MYRMITE); + public static final DeferredItem MYRMITE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MYRMITE_STAIRS); + public static final DeferredItem MYRMITE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MYRMITE_SLAB); + public static final DeferredItem MYRMITE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MYRMITE_WALL); + public static final DeferredItem POLISHED_MYRMITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_MYRMITE); + public static final DeferredItem POLISHED_MYRMITE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_MYRMITE_STAIRS); + public static final DeferredItem POLISHED_MYRMITE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_MYRMITE_SLAB); + public static final DeferredItem POLISHED_MYRMITE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_MYRMITE_WALL); + public static final DeferredItem CHISELED_MYRMITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CHISELED_MYRMITE); + public static final DeferredItem MYRMITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MYRMITE_BRICKS); + public static final DeferredItem MYRMITE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MYRMITE_BRICK_STAIRS); + public static final DeferredItem MYRMITE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MYRMITE_BRICK_SLAB); + public static final DeferredItem MYRMITE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MYRMITE_BRICK_WALL); + public static final DeferredItem MOSSY_MYRMITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MOSSY_MYRMITE_BRICKS); + public static final DeferredItem MOSSY_MYRMITE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MOSSY_MYRMITE_BRICK_STAIRS); + public static final DeferredItem MOSSY_MYRMITE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MOSSY_MYRMITE_BRICK_SLAB); + public static final DeferredItem MOSSY_MYRMITE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MOSSY_MYRMITE_BRICK_WALL); + public static final DeferredItem MYRMITE_PILLAR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MYRMITE_PILLAR); public static final DeferredItem BIOMITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BIOMITE); public static final DeferredItem BIOMITE_TURF_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BIOMITE_TURF); public static final DeferredItem BIOWART_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BIOWART); @@ -376,6 +401,7 @@ public final class AntarchyNeoforgeItems { public static final DeferredItem POLISHED_BROODSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_BROODSTONE); public static final DeferredItem CHISELED_BROODSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CHISELED_BROODSTONE); public static final DeferredItem BROODSTONE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_BRICKS); + public static final DeferredItem MOSSY_BROODSTONE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MOSSY_BROODSTONE_BRICKS); public static final DeferredItem BROODSTONE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_STAIRS); public static final DeferredItem BROODSTONE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_SLAB); public static final DeferredItem BROODSTONE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_WALL); @@ -385,6 +411,9 @@ 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 MOSSY_BROODSTONE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MOSSY_BROODSTONE_BRICK_STAIRS); + public static final DeferredItem MOSSY_BROODSTONE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MOSSY_BROODSTONE_BRICK_SLAB); + public static final DeferredItem MOSSY_BROODSTONE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MOSSY_BROODSTONE_BRICK_WALL); public static final DeferredItem BROODSTONE_PILLAR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_PILLAR); public static final DeferredItem MYRMITE_COAL_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MYRMITE_COAL_ORE); public static final DeferredItem BROODSTONE_URANIUM_ORE_ITEM = ITEMS.register("broodstone_uranium_ore", @@ -394,6 +423,7 @@ public final class AntarchyNeoforgeItems { public static final DeferredItem POLISHED_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_NYXITE); public static final DeferredItem CHISELED_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CHISELED_NYXITE); public static final DeferredItem NYXITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_BRICKS); + public static final DeferredItem MOSSY_NYXITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MOSSY_NYXITE_BRICKS); public static final DeferredItem CHITIN_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CHITIN_BLOCK); public static final DeferredItem NYXITE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_STAIRS); public static final DeferredItem NYXITE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_SLAB); @@ -407,6 +437,9 @@ public final class AntarchyNeoforgeItems { public static final DeferredItem NYXITE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_BRICK_STAIRS); public static final DeferredItem NYXITE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_BRICK_SLAB); public static final DeferredItem NYXITE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_BRICK_WALL); + public static final DeferredItem MOSSY_NYXITE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MOSSY_NYXITE_BRICK_STAIRS); + public static final DeferredItem MOSSY_NYXITE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MOSSY_NYXITE_BRICK_SLAB); + public static final DeferredItem MOSSY_NYXITE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MOSSY_NYXITE_BRICK_WALL); public static final DeferredItem NYXITE_PILLAR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_PILLAR); public static final DeferredItem SHELLSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.SHELLSTONE); public static final DeferredItem POLISHED_SHELLSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_SHELLSTONE); @@ -658,6 +691,10 @@ public final class AntarchyNeoforgeItems { .saturationModifier(0.0F) .effect(() -> new MobEffectInstance(MobEffects.HUNGER, 600), 0.8F) .build()))); + public static final DeferredItem WORM_TOOTH = ITEMS.register("worm_tooth", + () -> new Item(new Item.Properties().rarity(Rarity.UNCOMMON))); + public static final DeferredItem WORM_HOOK = ITEMS.register("worm_hook", + () -> new WormHookItem(new Item.Properties().stacksTo(1).durability(256).rarity(Rarity.UNCOMMON))); public static final DeferredItem CLOUD_SHARK_FIN = ITEMS.registerSimpleItem("cloud_shark_fin", new Item.Properties().rarity(Rarity.UNCOMMON)); public static final DeferredItem CLOUD_SHARK_FIN_SOUP = ITEMS.register("cloud_shark_fin_soup", () -> new CloudSharkFinSoupItem(new Item.Properties() @@ -757,6 +794,8 @@ public final class AntarchyNeoforgeItems { )); public static final DeferredItem GRAVITY_GUN = ITEMS.register("gravity_gun", () -> new GravityGunItem(new Item.Properties().stacksTo(1).durability(512).rarity(Rarity.RARE).fireResistant())); + public static final DeferredItem PORTAL_GUN = ITEMS.register("portal_gun", + () -> new PortalGunItem(new Item.Properties().stacksTo(1).durability(256).rarity(Rarity.RARE), AntarchyNeoforgeEntites.PORTAL_GUN_PORTAL, AntarchyNeoforgeEntites.PORTAL_GUN_BLACK_HOLE)); // Temporarily disabled: keeping the code but not registering the item for now. // public static final DeferredItem MINERS_DREAM = ITEMS.register("miners_dream", // () -> new MinersDreamItem(new Item.Properties().stacksTo(1).rarity(Rarity.RARE))); @@ -840,6 +879,8 @@ public final class AntarchyNeoforgeItems { () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.TERMITE, 0xD4B96A, 0xFF6B1A, new Item.Properties())); public static final DeferredItem MOLEWORM_SPAWN_EGG = ITEMS.register("moleworm_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.MOLEWORM, 0xB8B8B8, 0x8A623A, new Item.Properties())); + public static final DeferredItem WORM_SPAWN_EGG = ITEMS.register("worm_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.WORM, 0x7A5742, 0xE4D2A6, new Item.Properties())); public static final DeferredItem MANTIS_SPAWN_EGG = ITEMS.register("mantis_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.MANTIS, 0xF8F8F2, 0x63B44A, new Item.Properties())); public static final DeferredItem ALPHA_MANTIS_SPAWN_EGG = ITEMS.register("alpha_mantis_spawn_egg", @@ -923,6 +964,14 @@ public final class AntarchyNeoforgeItems { .nutrition(2) .saturationModifier(0.1F) .build()))); + public static final DeferredItem COOKED_CHEEP = ITEMS.register("cooked_cheep", + () -> new Item(new Item.Properties() + .food(new FoodProperties.Builder() + .nutrition(5) + .saturationModifier(0.6F) + .build()))); + public static final DeferredItem CHEEP_BUCKET = ITEMS.register("cheep_bucket", + () -> new MobBucketItem(AntarchyNeoforgeEntites.CHEEP.get(), net.minecraft.world.level.material.Fluids.WATER, SoundEvents.BUCKET_EMPTY_FISH, new Item.Properties().craftRemainder(Items.BUCKET).stacksTo(1))); private AntarchyNeoforgeItems() {} public static Collection> getItemEntries() { diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java index 4658b0be..08f4b53f 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java @@ -240,6 +240,8 @@ public final class AntarchyNeoforgeMisc { () -> new PeachTreeFeature(PeachTreeConfiguration.CODEC)); public static final DeferredHolder, PeachTreeFeature> PEACH_LARGE_TREE_FEATURE = FEATURES.register("peach_large_tree", () -> new PeachTreeFeature(PeachTreeConfiguration.CODEC)); + public static final DeferredHolder, NadirTreeFeature> NADIR_TREE_FEATURE = FEATURES.register("nadir_tree", + () -> new NadirTreeFeature(NadirTreeConfiguration.CODEC)); public static final DeferredHolder, ElythiaFloraFeature> ELYTHIA_FOREST_FLORA = FEATURES.register("elythia_forest_flora", () -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.FOREST)); public static final DeferredHolder, ElythiaFloraFeature> ELYTHIA_MEADOW_FLORA = FEATURES.register("elythia_meadow_flora", diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgePayloadHandlers.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgePayloadHandlers.java index 485e5d7a..49a90697 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgePayloadHandlers.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgePayloadHandlers.java @@ -83,6 +83,13 @@ public class AntarchyNeoforgePayloadHandlers { com.craisinlord.antarchy.content.client.ScorpionWhipTetherClientState.update(payload.playerId(), payload.targetId()) ) ); + registrar.playToClient( + com.craisinlord.antarchy.content.network.WormHookTetherPayload.TYPE, + com.craisinlord.antarchy.content.network.WormHookTetherPayload.STREAM_CODEC, + (payload, ctx) -> ctx.enqueueWork(() -> + com.craisinlord.antarchy.content.client.WormHookTetherClientState.update(payload.playerId(), payload.hookId()) + ) + ); registrar.playToClient( com.craisinlord.antarchy.content.network.HordeIntensityPayload.TYPE, com.craisinlord.antarchy.content.network.HordeIntensityPayload.STREAM_CODEC, diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeSounds.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeSounds.java index 98e2539d..225c4c7c 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeSounds.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeSounds.java @@ -113,6 +113,12 @@ public final class AntarchyNeoforgeSounds { public static final DeferredHolder GRAVITY_GUN_HOLD_LOOP = registerSoundEvent("gravity_gun_hold_loop"); public static final DeferredHolder GRAVITY_GUN_LAUNCH = registerSoundEvent("gravity_gun_launch"); public static final DeferredHolder GRAVITY_GUN_DRYFIRE = registerSoundEvent("gravity_gun_dryfire"); + public static final DeferredHolder PORTAL_GUN_FIRE_BLUE = registerSoundEvent("portal_gun_fire_blue"); + public static final DeferredHolder PORTAL_GUN_FIRE_ORANGE = registerSoundEvent("portal_gun_fire_orange"); + public static final DeferredHolder PORTAL_GUN_INVALID_SURFACE = registerSoundEvent("portal_gun_invalid_surface"); + public static final DeferredHolder PORTAL_OPEN_BLUE = registerSoundEvent("portal_open_blue"); + public static final DeferredHolder PORTAL_OPEN_ORANGE = registerSoundEvent("portal_open_orange"); + public static final DeferredHolder PORTAL_FIZZLE = registerSoundEvent("portal_fizzle"); public static final DeferredHolder BED_BUG_AMBIENT = registerSoundEvent("bed_bug_ambient"); public static final DeferredHolder BED_BUG_HURT = registerSoundEvent("bed_bug_hurt"); public static final DeferredHolder BED_BUG_ATTACK = registerSoundEvent("bed_bug_attack"); diff --git a/neoforge-1.21.1/src/main/resources/assets/antarchy/models/item/portal_gun.json b/neoforge-1.21.1/src/main/resources/assets/antarchy/models/item/portal_gun.json new file mode 100644 index 00000000..089a56e7 --- /dev/null +++ b/neoforge-1.21.1/src/main/resources/assets/antarchy/models/item/portal_gun.json @@ -0,0 +1,18 @@ +{ + "loader": "neoforge:separate_transforms", + "gui_light": "front", + "base": { + "parent": "antarchy:item/portal_gun_held_geo" + }, + "perspectives": { + "gui": { + "parent": "antarchy:item/portal_gun_display" + }, + "ground": { + "parent": "antarchy:item/portal_gun_display" + }, + "fixed": { + "parent": "antarchy:item/portal_gun_display" + } + } +}