diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/compat/item/AntarchyItemComponent.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/compat/item/AntarchyItemComponent.java new file mode 100644 index 00000000..6e2e7443 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/compat/item/AntarchyItemComponent.java @@ -0,0 +1,55 @@ +package com.craisinlord.antarchy.compat.item; + +import java.util.function.Function; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; + +/** NBT-backed stand-in for the 1.20.1 port of Minecraft's 1.20.5+ item components. */ +public final class AntarchyItemComponent { + private final String key; + private final Function reader; + private final Function writer; + + public AntarchyItemComponent(String key, Function reader, Function writer) { + this.key = key; + this.reader = reader; + this.writer = writer; + } + + public boolean has(ItemStack stack) { + return stack.hasTag() && stack.getTag().contains(this.key); + } + + public T get(ItemStack stack) { + return this.reader.apply(stack.getTag()); + } + + public T getOrDefault(ItemStack stack, T fallback) { + return this.has(stack) ? this.get(stack) : fallback; + } + + public void set(ItemStack stack, T value) { + Object encoded = this.writer.apply(value); + CompoundTag tag = stack.getOrCreateTag(); + if (encoded instanceof Integer integer) tag.putInt(this.key, integer); + else if (encoded instanceof String string) tag.putString(this.key, string); + else if (encoded instanceof Boolean bool) tag.putBoolean(this.key, bool); + } + + public void remove(ItemStack stack) { + if (stack.hasTag()) stack.getTag().remove(this.key); + } + + public static AntarchyItemComponent string(String key, Function decoder, Function encoder) { + return new AntarchyItemComponent<>(key, tag -> decoder.apply(tag.getString(key)), encoder::apply); + } + + public static AntarchyItemComponent integer(String key) { + return new AntarchyItemComponent<>(key, tag -> tag.getInt(key), value -> value); + } + + public static AntarchyItemComponent marker(String key) { + return new AntarchyItemComponent<>(key, tag -> null, value -> true); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/AntarchyObjects.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/AntarchyObjects.java index 5d445136..a837a731 100644 --- a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/AntarchyObjects.java +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/AntarchyObjects.java @@ -103,6 +103,8 @@ public final class AntarchyObjects { @SuppressWarnings("unchecked") public static Supplier> ROYAL_BLACK_HOLE = (Supplier>) UNBOUND; @SuppressWarnings("unchecked") + public static Supplier> ROYAL_ASSAILANT_BLACK_HOLE = (Supplier>) UNBOUND; + @SuppressWarnings("unchecked") public static Supplier VORTEX_LENS = (Supplier) UNBOUND; @SuppressWarnings("unchecked") public static Supplier> VORTEX_LENS_BLOCK_ENTITY = (Supplier>) UNBOUND; @@ -324,6 +326,8 @@ public final class AntarchyObjects { public static Supplier GLIMMERING_EFFECT = (Supplier) UNBOUND; public static Supplier DILATED_EFFECT = (Supplier) UNBOUND; @SuppressWarnings("unchecked") + public static Supplier CONTRACTED_EFFECT = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") public static Supplier LUMEN = (Supplier) UNBOUND; @SuppressWarnings("unchecked") public static Supplier FLOWING_LUMEN = (Supplier) UNBOUND; @@ -699,6 +703,10 @@ public final class AntarchyObjects { ROYAL_BLACK_HOLE = supplier; } + public static void setRoyalAssailantBlackHole(Supplier> supplier) { + ROYAL_ASSAILANT_BLACK_HOLE = supplier; + } + public static void setVortexLens(Supplier supplier) { VORTEX_LENS = supplier; } @@ -819,6 +827,10 @@ public final class AntarchyObjects { DILATED_EFFECT = supplier; } + public static void setContractedEffect(Supplier supplier) { + CONTRACTED_EFFECT = supplier; + } + public static void setElka(Supplier> supplier) { ELKA = supplier; } diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/DimensionalTearMarkerBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/DimensionalTearMarkerBlock.java new file mode 100644 index 00000000..81b1a02f --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/DimensionalTearMarkerBlock.java @@ -0,0 +1,61 @@ +package com.craisinlord.antarchy.content.block; + +import com.craisinlord.antarchy.content.block.entity.DimensionalTearMarkerBlockEntity; +import java.util.function.Supplier; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class DimensionalTearMarkerBlock extends BaseEntityBlock { + private static final VoxelShape EMPTY = Shapes.empty(); + private final Supplier> blockEntityTypeSupplier; + + public DimensionalTearMarkerBlock(Supplier> blockEntityTypeSupplier, BlockBehaviour.Properties properties) { + super(properties); + this.blockEntityTypeSupplier = blockEntityTypeSupplier; + } + + @Override + public RenderShape getRenderShape(BlockState state) { + return RenderShape.INVISIBLE; + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return EMPTY; + } + + @Override + public VoxelShape getCollisionShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return EMPTY; + } + + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new DimensionalTearMarkerBlockEntity(pos, state, this.blockEntityTypeSupplier); + } + + @Override + public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType blockEntityType) { + if (level.isClientSide) { + return null; + } + return createTickerHelper(blockEntityType, this.blockEntityTypeSupplier.get(), (tickLevel, tickPos, tickState, blockEntity) -> { + if (tickLevel instanceof ServerLevel serverLevel) { + DimensionalTearMarkerBlockEntity.serverTick(serverLevel, tickPos, tickState, blockEntity); + } + }); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/DirectionalNyxiumBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/DirectionalNyxiumBlock.java new file mode 100644 index 00000000..ec1b6e4b --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/DirectionalNyxiumBlock.java @@ -0,0 +1,133 @@ +package com.craisinlord.antarchy.content.block; + +import com.craisinlord.antarchy.Antarchy; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.BonemealableBlock; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.DirectionProperty; + +public class DirectionalNyxiumBlock extends Block implements BonemealableBlock { + public static final DirectionProperty VERTICAL_DIRECTION = BlockStateProperties.VERTICAL_DIRECTION; + private static final ResourceLocation NYXITE_ID = new ResourceLocation(Antarchy.MODID, "nyxite"); + private static final ResourceLocation NADIR_FERN_ID = new ResourceLocation(Antarchy.MODID, "nadir_fern"); + private static final ResourceLocation DUSKBELL_ID = new ResourceLocation(Antarchy.MODID, "duskbell"); + private static final ResourceLocation NADIR_SAPLING_ID = new ResourceLocation(Antarchy.MODID, "nadir_sapling"); + private static final ResourceLocation WHIRLFLOWER_ID = new ResourceLocation(Antarchy.MODID, "whirlflower"); + private static final ResourceLocation SPIRALING_VINES_ID = new ResourceLocation(Antarchy.MODID, "spiraling_vines"); + private static final ResourceLocation NADIR_ROOTS_ID = new ResourceLocation(Antarchy.MODID, "nadir_roots"); + private static final ResourceLocation VERDANT_ROOTS_ID = new ResourceLocation(Antarchy.MODID, "verdant_roots"); + private final Type type; + + public DirectionalNyxiumBlock(BlockBehaviour.Properties properties, Type type) { + super(properties); + this.type = type; + this.registerDefaultState(this.stateDefinition.any().setValue(VERTICAL_DIRECTION, Direction.UP)); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + return this.defaultBlockState().setValue( + VERTICAL_DIRECTION, + context.getClickedFace() == Direction.DOWN ? Direction.DOWN : Direction.UP + ); + } + + @Override + public void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(VERTICAL_DIRECTION); + } + + @Override + public boolean isValidBonemealTarget(LevelReader level, BlockPos pos, BlockState state, boolean isClientSide) { + return hasAdjacentNyxite(level, pos) || level.getBlockState(pos.relative(state.getValue(VERTICAL_DIRECTION))).isAir(); + } + + @Override + public boolean isBonemealSuccess(Level level, RandomSource random, BlockPos pos, BlockState state) { + return true; + } + + @Override + public void performBonemeal(ServerLevel level, RandomSource random, BlockPos pos, BlockState state) { + spreadToNearbyNyxite(level, random, pos, state); + BlockPos growthPos = pos.relative(state.getValue(VERTICAL_DIRECTION)); + if (level.getBlockState(growthPos).isAir()) { + placeVegetation(level, random, growthPos, state.getValue(VERTICAL_DIRECTION)); + } + } + + private void spreadToNearbyNyxite(ServerLevel level, RandomSource random, BlockPos pos, BlockState state) { + for (int i = 0; i < 24; i++) { + BlockPos targetPos = pos.offset( + random.nextInt(5) - 2, + random.nextInt(3) - 1, + random.nextInt(5) - 2 + ); + if (isNyxite(level.getBlockState(targetPos))) { + level.setBlock(targetPos, state, Block.UPDATE_ALL); + } + } + } + + private void placeVegetation(ServerLevel level, RandomSource random, BlockPos pos, Direction direction) { + ResourceLocation id = switch (this.type) { + case NADIR -> { + if (direction == Direction.DOWN && random.nextInt(7) == 0) { + yield NADIR_SAPLING_ID; + } + yield switch (random.nextInt(5)) { + case 0 -> DUSKBELL_ID; + case 1, 2 -> NADIR_ROOTS_ID; + default -> NADIR_FERN_ID; + }; + } + case VERDANT -> switch (random.nextInt(5)) { + case 0, 1 -> VERDANT_ROOTS_ID; + case 2 -> SPIRALING_VINES_ID; + default -> WHIRLFLOWER_ID; + }; + }; + Block block = BuiltInRegistries.BLOCK.get(id); + BlockState growthState = block.defaultBlockState(); + if (growthState.hasProperty(SimpleDirectionalVineBlock.GROWTH_DIRECTION)) { + growthState = growthState.setValue(SimpleDirectionalVineBlock.GROWTH_DIRECTION, direction); + } + if (growthState.hasProperty(VERTICAL_DIRECTION)) { + growthState = growthState.setValue(VERTICAL_DIRECTION, direction); + } + if (growthState.canSurvive(level, pos)) { + level.setBlock(pos, growthState, Block.UPDATE_ALL); + } + } + + private static boolean hasAdjacentNyxite(LevelReader level, BlockPos pos) { + for (Direction direction : Direction.values()) { + if (isNyxite(level.getBlockState(pos.relative(direction)))) { + return true; + } + } + return false; + } + + private static boolean isNyxite(BlockState state) { + return BuiltInRegistries.BLOCK.getKey(state.getBlock()).equals(NYXITE_ID); + } + + public enum Type { + NADIR, + VERDANT + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/DirectionalThoraxisFlowerBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/DirectionalThoraxisFlowerBlock.java new file mode 100644 index 00000000..a9872733 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/DirectionalThoraxisFlowerBlock.java @@ -0,0 +1,74 @@ +package com.craisinlord.antarchy.content.block; + +import com.craisinlord.antarchy.content.AntarchyTags; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +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.BushBlock; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class DirectionalThoraxisFlowerBlock extends BushBlock { + public static final DirectionProperty VERTICAL_DIRECTION = BlockStateProperties.VERTICAL_DIRECTION; + private static final VoxelShape UP_SHAPE = Block.box(3.0D, 0.0D, 3.0D, 13.0D, 13.0D, 13.0D); + private static final VoxelShape DOWN_SHAPE = Block.box(3.0D, 3.0D, 3.0D, 13.0D, 16.0D, 13.0D); + + public DirectionalThoraxisFlowerBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(VERTICAL_DIRECTION, Direction.UP)); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + return this.defaultBlockState().setValue( + VERTICAL_DIRECTION, + context.getClickedFace() == Direction.DOWN ? Direction.DOWN : Direction.UP + ); + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return state.getValue(VERTICAL_DIRECTION) == Direction.DOWN ? DOWN_SHAPE : UP_SHAPE; + } + + @Override + public boolean mayPlaceOn(BlockState state, BlockGetter level, BlockPos pos) { + return state.is(AntarchyTags.Blocks.NYXIUM); + } + + @Override + public boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + Direction growthDirection = state.getValue(VERTICAL_DIRECTION); + BlockPos supportPos = pos.relative(growthDirection.getOpposite()); + return this.mayPlaceOn(level.getBlockState(supportPos), level, supportPos); + } + + @Override + public BlockState updateShape( + BlockState state, + Direction direction, + BlockState neighborState, + LevelAccessor level, + BlockPos pos, + BlockPos neighborPos + ) { + return state.canSurvive(level, pos) + ? super.updateShape(state, direction, neighborState, level, pos, neighborPos) + : Blocks.AIR.defaultBlockState(); + } + + @Override + public void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(VERTICAL_DIRECTION); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/DreamSandstoneBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/DreamSandstoneBlock.java new file mode 100644 index 00000000..fbbb50ac --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/DreamSandstoneBlock.java @@ -0,0 +1,32 @@ +package com.craisinlord.antarchy.content.block; + +import net.minecraft.core.Direction; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.DirectionProperty; + +public class DreamSandstoneBlock extends Block { + public static final DirectionProperty VERTICAL_DIRECTION = BlockStateProperties.VERTICAL_DIRECTION; + + public DreamSandstoneBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(VERTICAL_DIRECTION, Direction.UP)); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + return this.defaultBlockState().setValue( + VERTICAL_DIRECTION, + context.getClickedFace() == Direction.DOWN ? Direction.DOWN : Direction.UP + ); + } + + @Override + public void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(VERTICAL_DIRECTION); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/GlimmeringReedBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/GlimmeringReedBlock.java new file mode 100644 index 00000000..bbcdfb8d --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/GlimmeringReedBlock.java @@ -0,0 +1,76 @@ +package com.craisinlord.antarchy.content.block; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.BonemealableBlock; +import net.minecraft.world.level.block.DoublePlantBlock; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; +import net.minecraft.world.phys.BlockHitResult; + +/** A two-block-tall, light-emitting reed found around Lumen pools. */ +public final class GlimmeringReedBlock extends DoublePlantBlock implements BonemealableBlock { + + public GlimmeringReedBlock(BlockBehaviour.Properties properties) { + super(properties); + } + + @Override + public InteractionResult use( + BlockState state, + Level level, + BlockPos pos, + Player player, + InteractionHand hand, + BlockHitResult hitResult + ) { + if (player.getItemInHand(hand).is(Items.BONE_MEAL)) { + popResource(level, pos, new ItemStack(state.getBlock().asItem(), 1)); + return InteractionResult.PASS; + } + + return super.use(state, level, pos, player, hand, hitResult); + } + + @Override + public boolean isValidBonemealTarget(LevelReader level, BlockPos pos, BlockState state, boolean isClientSide) { + return true; + } + + @Override + public boolean isBonemealSuccess(Level level, RandomSource random, BlockPos pos, BlockState state) { + return true; + } + + @Override + public void performBonemeal(ServerLevel level, RandomSource random, BlockPos pos, BlockState state) { + } + + @Override + public void animateTick(BlockState state, Level level, BlockPos pos, RandomSource random) { + super.animateTick(state, level, pos, random); + if (state.getValue(HALF) != DoubleBlockHalf.UPPER || random.nextInt(8) != 0) { + return; + } + + double x = pos.getX() + 0.15D + random.nextDouble() * 0.7D; + double y = pos.getY() + 0.76D + random.nextDouble() * 0.18D; + double z = pos.getZ() + 0.15D + random.nextDouble() * 0.7D; + level.addParticle(ParticleTypes.GLOW, x, y, z, 0.0D, 0.02D, 0.0D); + + if (random.nextInt(4) == 0) { + level.addParticle(ParticleTypes.ENCHANT, x, y + 0.02D, z, 0.0D, 0.015D, 0.0D); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/GorevineBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/GorevineBlock.java new file mode 100644 index 00000000..3c8febc4 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/GorevineBlock.java @@ -0,0 +1,17 @@ +package com.craisinlord.antarchy.content.block; + +import net.minecraft.world.level.block.BushBlock; +import net.minecraft.world.level.block.state.BlockBehaviour; + +public class GorevineBlock extends SimpleDirectionalVineBlock { + private static final int MAX_GROWTH_DISTANCE = 7; + + public GorevineBlock(BlockBehaviour.Properties properties) { + super(properties); + } + + @Override + public int maxDistance() { + return MAX_GROWTH_DISTANCE; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/LargeNadirFernBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/LargeNadirFernBlock.java new file mode 100644 index 00000000..1cb8f525 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/LargeNadirFernBlock.java @@ -0,0 +1,131 @@ +package com.craisinlord.antarchy.content.block; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +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.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class LargeNadirFernBlock extends Block { + public static final DirectionProperty VERTICAL_DIRECTION = BlockStateProperties.VERTICAL_DIRECTION; + public static final EnumProperty HALF = EnumProperty.create("half", Half.class); + private static final VoxelShape SHAPE = Block.box(2.0D, 0.0D, 2.0D, 14.0D, 16.0D, 14.0D); + + public LargeNadirFernBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any() + .setValue(VERTICAL_DIRECTION, Direction.UP) + .setValue(HALF, Half.BOTTOM)); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + Direction direction = context.getClickedFace() == Direction.DOWN ? Direction.DOWN : Direction.UP; + BlockPos otherPos = context.getClickedPos().relative(direction); + if (!context.getLevel().getBlockState(otherPos).canBeReplaced(context)) { + return null; + } + return this.defaultBlockState().setValue(VERTICAL_DIRECTION, direction); + } + + @Override + public void setPlacedBy(net.minecraft.world.level.Level level, BlockPos pos, BlockState state, net.minecraft.world.entity.LivingEntity placer, net.minecraft.world.item.ItemStack stack) { + placeOtherHalf(level, pos, state, Block.UPDATE_ALL); + } + + public static void placeAt(LevelAccessor level, BlockPos pos, BlockState bottomState, int flags) { + level.setBlock(pos, bottomState.setValue(HALF, Half.BOTTOM), flags); + placeOtherHalf(level, pos, bottomState, flags); + } + + private static void placeOtherHalf(LevelAccessor level, BlockPos pos, BlockState state, int flags) { + Direction direction = state.getValue(VERTICAL_DIRECTION); + level.setBlock(pos.relative(direction), state.setValue(HALF, Half.TOP), flags); + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return SHAPE; + } + + @Override + public boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + Direction direction = state.getValue(VERTICAL_DIRECTION); + if (state.getValue(HALF) == Half.TOP) { + BlockState otherState = level.getBlockState(pos.relative(direction.getOpposite())); + return otherState.is(this) + && otherState.getValue(HALF) == Half.BOTTOM + && otherState.getValue(VERTICAL_DIRECTION) == direction; + } + + BlockPos supportPos = pos.relative(direction.getOpposite()); + BlockState supportState = level.getBlockState(supportPos); + BlockState topState = level.getBlockState(pos.relative(direction)); + boolean topMatches = topState.isAir() + || topState.is(this) + && topState.getValue(HALF) == Half.TOP + && topState.getValue(VERTICAL_DIRECTION) == direction; + return topMatches && supportState.isFaceSturdy(level, supportPos, direction); + } + + @Override + public BlockState updateShape( + BlockState state, + Direction direction, + BlockState neighborState, + LevelAccessor level, + BlockPos pos, + BlockPos neighborPos + ) { + return state.canSurvive(level, pos) + ? super.updateShape(state, direction, neighborState, level, pos, neighborPos) + : Blocks.AIR.defaultBlockState(); + } + + @Override + public void onRemove(BlockState state, net.minecraft.world.level.Level level, BlockPos pos, BlockState newState, boolean movedByPiston) { + if (!state.is(newState.getBlock())) { + Direction verticalDirection = state.getValue(VERTICAL_DIRECTION); + BlockPos otherPos = state.getValue(HALF) == Half.BOTTOM + ? pos.relative(verticalDirection) + : pos.relative(verticalDirection.getOpposite()); + if (level.getBlockState(otherPos).is(this)) { + level.setBlock(otherPos, Blocks.AIR.defaultBlockState(), Block.UPDATE_ALL); + } + } + super.onRemove(state, level, pos, newState, movedByPiston); + } + + @Override + public void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(VERTICAL_DIRECTION, HALF); + } + + public enum Half implements StringRepresentable { + TOP("top"), + BOTTOM("bottom"); + + private final String name; + + Half(String name) { + this.name = name; + } + + @Override + public String getSerializedName() { + return this.name; + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/NadirFernBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/NadirFernBlock.java new file mode 100644 index 00000000..7d18ade4 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/NadirFernBlock.java @@ -0,0 +1,43 @@ +package com.craisinlord.antarchy.content.block; + +import com.craisinlord.antarchy.Antarchy; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.BonemealableBlock; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; + +public class NadirFernBlock extends DirectionalThoraxisFlowerBlock implements BonemealableBlock { + private static final ResourceLocation LARGE_NADIR_FERN_ID = new ResourceLocation(Antarchy.MODID, "large_nadir_fern"); + + public NadirFernBlock(BlockBehaviour.Properties properties) { + super(properties); + } + + @Override + public boolean isValidBonemealTarget(LevelReader level, BlockPos pos, BlockState state, boolean isClientSide) { + return level.getBlockState(pos.relative(state.getValue(VERTICAL_DIRECTION))).isAir(); + } + + @Override + public boolean isBonemealSuccess(Level level, RandomSource random, BlockPos pos, BlockState state) { + return true; + } + + @Override + public void performBonemeal(ServerLevel level, RandomSource random, BlockPos pos, BlockState state) { + Direction direction = state.getValue(VERTICAL_DIRECTION); + Block largeFern = BuiltInRegistries.BLOCK.get(LARGE_NADIR_FERN_ID); + BlockState lowerState = largeFern.defaultBlockState() + .setValue(LargeNadirFernBlock.VERTICAL_DIRECTION, direction) + .setValue(LargeNadirFernBlock.HALF, LargeNadirFernBlock.Half.BOTTOM); + LargeNadirFernBlock.placeAt(level, pos, lowerState, Block.UPDATE_ALL); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/NadirVeilBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/NadirVeilBlock.java new file mode 100644 index 00000000..eb89a7ed --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/NadirVeilBlock.java @@ -0,0 +1,33 @@ +package com.craisinlord.antarchy.content.block; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.particles.DustParticleOptions; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import org.joml.Vector3f; + +public class NadirVeilBlock extends Block { + + private static final int GLOW_LIGHT_LEVEL = 6; + private static final DustParticleOptions DRIP_PARTICLE = + new DustParticleOptions(new Vector3f(0.63F, 0.26F, 0.92F), 1.0F); + + public NadirVeilBlock(BlockBehaviour.Properties properties) { + super(properties.lightLevel(state -> GLOW_LIGHT_LEVEL)); + } + + @Override + public void animateTick(BlockState state, Level level, BlockPos pos, RandomSource random) { + if (random.nextInt(6) != 0) { + return; + } + + double x = pos.getX() + 0.5D + (random.nextDouble() - 0.5D) * 0.7D; + double y = pos.getY() + 0.15D + random.nextDouble() * 0.4D; + double z = pos.getZ() + 0.5D + (random.nextDouble() - 0.5D) * 0.7D; + level.addParticle(DRIP_PARTICLE, x, y, z, 0.0D, 0.02D + random.nextDouble() * 0.02D, 0.0D); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/PortalGunPortalBaseBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/PortalGunPortalBaseBlock.java new file mode 100644 index 00000000..a74a953e --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/PortalGunPortalBaseBlock.java @@ -0,0 +1,68 @@ +package com.craisinlord.antarchy.content.block; + +import com.craisinlord.antarchy.content.block.entity.PortalGunPortalBaseBlockEntity; +import java.util.function.Supplier; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class PortalGunPortalBaseBlock extends BaseEntityBlock { + private static final VoxelShape EMPTY = Shapes.empty(); + private final Supplier> blockEntityTypeSupplier; + + public PortalGunPortalBaseBlock(Supplier> blockEntityTypeSupplier, BlockBehaviour.Properties properties) { + super(properties); + this.blockEntityTypeSupplier = blockEntityTypeSupplier; + } + + @Override + public RenderShape getRenderShape(BlockState state) { + return RenderShape.INVISIBLE; + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return EMPTY; + } + + @Override + public VoxelShape getCollisionShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return EMPTY; + } + + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new PortalGunPortalBaseBlockEntity(pos, state, this.blockEntityTypeSupplier); + } + + @Override + public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType blockEntityType) { + if (level.isClientSide) { + return null; + } + return createTickerHelper(blockEntityType, this.blockEntityTypeSupplier.get(), (tickLevel, tickPos, tickState, blockEntity) -> { + if (tickLevel instanceof net.minecraft.server.level.ServerLevel serverLevel) { + PortalGunPortalBaseBlockEntity.serverTick(serverLevel, tickPos, tickState, blockEntity); + } + }); + } + + @Override + public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean movedByPiston) { + if (!state.is(newState.getBlock()) && level.getBlockEntity(pos) instanceof PortalGunPortalBaseBlockEntity blockEntity) { + blockEntity.onBroken(); + } + super.onRemove(state, level, pos, newState, movedByPiston); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/PortalGunPortalMasterBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/PortalGunPortalMasterBlock.java new file mode 100644 index 00000000..cfbb0973 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/PortalGunPortalMasterBlock.java @@ -0,0 +1,68 @@ +package com.craisinlord.antarchy.content.block; + +import com.craisinlord.antarchy.content.block.entity.PortalGunPortalMasterBlockEntity; +import java.util.function.Supplier; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class PortalGunPortalMasterBlock extends BaseEntityBlock { + private static final VoxelShape EMPTY = Shapes.empty(); + private final Supplier> blockEntityTypeSupplier; + + public PortalGunPortalMasterBlock(Supplier> blockEntityTypeSupplier, BlockBehaviour.Properties properties) { + super(properties); + this.blockEntityTypeSupplier = blockEntityTypeSupplier; + } + + @Override + public RenderShape getRenderShape(BlockState state) { + return RenderShape.INVISIBLE; + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return EMPTY; + } + + @Override + public VoxelShape getCollisionShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return EMPTY; + } + + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new PortalGunPortalMasterBlockEntity(pos, state, this.blockEntityTypeSupplier); + } + + @Override + public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType blockEntityType) { + if (level.isClientSide) { + return null; + } + return createTickerHelper(blockEntityType, this.blockEntityTypeSupplier.get(), (tickLevel, tickPos, tickState, blockEntity) -> { + if (tickLevel instanceof net.minecraft.server.level.ServerLevel serverLevel) { + PortalGunPortalMasterBlockEntity.serverTick(serverLevel, tickPos, tickState, blockEntity); + } + }); + } + + @Override + public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean movedByPiston) { + if (!state.is(newState.getBlock()) && level.getBlockEntity(pos) instanceof PortalGunPortalMasterBlockEntity blockEntity) { + blockEntity.onBroken(); + } + super.onRemove(state, level, pos, newState, movedByPiston); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/PrinceEggBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/PrinceEggBlock.java new file mode 100644 index 00000000..fab0eea0 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/PrinceEggBlock.java @@ -0,0 +1,17 @@ +package com.craisinlord.antarchy.content.block; + +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.entity.royal.RoyalMountEntity; +import net.minecraft.world.entity.EntityType; + +public class PrinceEggBlock extends RoyalEggBlock { + + public PrinceEggBlock(Properties properties) { + super(properties); + } + + @Override + public EntityType mountType() { + return AntarchyObjects.PRINCE.get(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/PrincessEggBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/PrincessEggBlock.java new file mode 100644 index 00000000..624b8eed --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/PrincessEggBlock.java @@ -0,0 +1,17 @@ +package com.craisinlord.antarchy.content.block; + +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.entity.royal.RoyalMountEntity; +import net.minecraft.world.entity.EntityType; + +public class PrincessEggBlock extends RoyalEggBlock { + + public PrincessEggBlock(Properties properties) { + super(properties); + } + + @Override + public EntityType mountType() { + return AntarchyObjects.PRINCESS.get(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/RoyalEggBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/RoyalEggBlock.java new file mode 100644 index 00000000..30527d06 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/RoyalEggBlock.java @@ -0,0 +1,185 @@ +package com.craisinlord.antarchy.content.block; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.block.entity.RoyalEggBlockEntity; +import com.craisinlord.antarchy.content.entity.royal.RoyalMountEntity; +import java.util.UUID; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.util.RandomSource; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.MobSpawnType; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.entity.item.FallingBlockEntity; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.FallingBlock; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import org.jetbrains.annotations.Nullable; + +public abstract class RoyalEggBlock extends BaseEntityBlock { + public static final IntegerProperty HATCH = BlockStateProperties.HATCH; + private static final int MAX_HATCH = 2; + private static final int FALL_DELAY = 2; + + private static final VoxelShape SHAPE = Shapes.or( + Block.box(3.0D, 0.0D, 3.0D, 13.0D, 13.0D, 13.0D), + Block.box(2.0D, 1.0D, 2.0D, 14.0D, 11.0D, 14.0D), + Block.box(4.0D, 13.0D, 4.0D, 12.0D, 14.0D, 12.0D), + Block.box(5.0D, 14.0D, 5.0D, 11.0D, 15.0D, 11.0D), + Block.box(6.0D, 15.0D, 6.0D, 10.0D, 16.0D, 10.0D)); + + public RoyalEggBlock(Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(HATCH, 0)); + } + + public abstract EntityType mountType(); + + @Override + public void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(HATCH); + } + + @Override + public RenderShape getRenderShape(BlockState state) { + return RenderShape.MODEL; + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return SHAPE; + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new RoyalEggBlockEntity(pos, state); + } + + @Override + public void setPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack stack) { + super.setPlacedBy(level, pos, state, placer, stack); + if (!level.isClientSide && placer instanceof Player player + && level.getBlockEntity(pos) instanceof RoyalEggBlockEntity egg) { + egg.setPlacerUuid(player.getUUID()); + } + } + + @Override + public void attack(BlockState state, Level level, BlockPos pos, Player player) { + if (level instanceof ServerLevel serverLevel) { + this.teleport(state, serverLevel, pos); + } + } + + private void teleport(BlockState state, ServerLevel level, BlockPos pos) { + RandomSource random = level.random; + for (int attempt = 0; attempt < 32; attempt++) { + BlockPos target = pos.offset( + random.nextInt(16) - random.nextInt(16), + random.nextInt(8) - random.nextInt(8), + random.nextInt(16) - random.nextInt(16)); + if (level.getBlockState(target).isAir() && target.getY() > level.getMinBuildHeight()) { + RoyalEggBlockEntity source = level.getBlockEntity(pos) instanceof RoyalEggBlockEntity be ? be : null; + UUID placer = source == null ? null : source.getPlacerUuid(); + int hatch = state.getValue(HATCH); + level.setBlock(pos, Blocks.AIR.defaultBlockState(), 2); + level.setBlock(target, state.setValue(HATCH, Math.max(0, hatch - 1)), 2); + if (level.getBlockEntity(target) instanceof RoyalEggBlockEntity moved) { + moved.setPlacerUuid(placer); + } + level.levelEvent(2003, pos, 0); + level.playSound(null, pos, SoundEvents.ENDER_DRAGON_FLAP, SoundSource.BLOCKS, 0.6F, 1.4F); + return; + } + } + } + + @Override + public void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) { + level.scheduleTick(pos, this, FALL_DELAY); + } + + @Override + public BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor level, BlockPos pos, BlockPos neighborPos) { + level.scheduleTick(pos, this, FALL_DELAY); + return super.updateShape(state, direction, neighborState, level, pos, neighborPos); + } + + @Override + public void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + if (!FallingBlock.isFree(level.getBlockState(pos.below())) || pos.getY() < level.getMinBuildHeight()) { + return; + } + CompoundTag blockData = level.getBlockEntity(pos) instanceof RoyalEggBlockEntity egg + ? egg.saveWithoutMetadata() + : null; + FallingBlockEntity falling = FallingBlockEntity.fall(level, pos, state); + if (blockData != null && !blockData.isEmpty()) { + falling.blockData = blockData; + } + } + + @Override + public boolean isRandomlyTicking(BlockState state) { + return true; + } + + @Override + public void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + if (random.nextInt(Math.max(1, AntarchySettings.royalEggHatchChance())) != 0) { + return; + } + int hatch = state.getValue(HATCH); + if (hatch < MAX_HATCH) { + level.setBlock(pos, state.setValue(HATCH, hatch + 1), 2); + level.playSound(null, pos, SoundEvents.TURTLE_EGG_CRACK, SoundSource.BLOCKS, 0.7F, 0.9F + random.nextFloat() * 0.2F); + return; + } + this.hatch(level, pos); + } + + private void hatch(ServerLevel level, BlockPos pos) { + UUID placer = level.getBlockEntity(pos) instanceof RoyalEggBlockEntity be ? be.getPlacerUuid() : null; + level.playSound(null, pos, SoundEvents.TURTLE_EGG_HATCH, SoundSource.BLOCKS, 0.9F, 1.0F); + level.setBlock(pos, Blocks.AIR.defaultBlockState(), 3); + + RoyalMountEntity mount = this.mountType().create(level); + if (mount == null) { + return; + } + mount.moveTo(pos.getX() + 0.5D, pos.getY(), pos.getZ() + 0.5D, level.random.nextFloat() * 360.0F, 0.0F); + mount.setBaby(true); + mount.finalizeSpawn(level, level.getCurrentDifficultyAt(pos), MobSpawnType.BREEDING, null, null); + if (placer != null) { + mount.setTame(true); + mount.setOwnerUUID(placer); + if (level.getPlayerByUUID(placer) instanceof ServerPlayer owner) { + mount.tame(owner); + } + } + level.addFreshEntity(mount); + level.sendParticles(ParticleTypes.HAPPY_VILLAGER, pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D, 24, 0.4D, 0.4D, 0.4D, 0.0D); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/RoyalLeavesBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/RoyalLeavesBlock.java new file mode 100644 index 00000000..381627d8 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/RoyalLeavesBlock.java @@ -0,0 +1,139 @@ +package com.craisinlord.antarchy.content.block; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.tags.BlockTags; +import net.minecraft.util.RandomSource; +import net.minecraft.world.item.context.BlockPlaceContext; +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.LeavesBlock; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.level.material.Fluids; + +public class RoyalLeavesBlock extends LeavesBlock { + public static final IntegerProperty ROYAL_DISTANCE = IntegerProperty.create("royal_distance", 1, 17); + public static final BooleanProperty PERSISTENT = LeavesBlock.PERSISTENT; + public static final BooleanProperty WATERLOGGED = LeavesBlock.WATERLOGGED; + public static final int ROYAL_MAX_DISTANCE = 16; + public static final int ROYAL_DECAY_DISTANCE = ROYAL_MAX_DISTANCE + 1; + + public RoyalLeavesBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any() + .setValue(DISTANCE, DECAY_DISTANCE) + .setValue(ROYAL_DISTANCE, ROYAL_DECAY_DISTANCE) + .setValue(PERSISTENT, false) + .setValue(WATERLOGGED, false)); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + FluidState fluidState = context.getLevel().getFluidState(context.getClickedPos()); + BlockState state = this.defaultBlockState() + .setValue(PERSISTENT, true) + .setValue(WATERLOGGED, fluidState.getType() == Fluids.WATER); + + return recalculateDistance(state, context.getLevel(), context.getClickedPos()); + } + + @Override + public void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(LeavesBlock.DISTANCE, ROYAL_DISTANCE, PERSISTENT, WATERLOGGED); + } + + @Override + public boolean isRandomlyTicking(BlockState state) { + return decaying(state); + } + + @Override + public boolean decaying(BlockState state) { + return !state.getValue(PERSISTENT) && state.getValue(ROYAL_DISTANCE) > ROYAL_MAX_DISTANCE; + } + + @Override + public void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + if (decaying(state)) { + dropResources(state, level, pos); + level.removeBlock(pos, false); + } + } + + @Override + public void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + level.setBlock(pos, recalculateDistance(state, level, pos), Block.UPDATE_ALL); + } + + @Override + public BlockState updateShape( + BlockState state, + Direction direction, + BlockState neighborState, + LevelAccessor level, + BlockPos pos, + BlockPos neighborPos + ) { + if (state.getValue(WATERLOGGED)) { + level.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); + } + + int neighborDistance = Math.min(ROYAL_DECAY_DISTANCE, getDistanceAt(neighborState) + 1); + int currentDistance = state.getValue(ROYAL_DISTANCE); + + if (neighborDistance != 1 || currentDistance != neighborDistance) { + level.scheduleTick(pos, this, 1); + } + + return state; + } + + private static BlockState recalculateDistance(BlockState state, LevelReader level, BlockPos pos) { + int bestDistance = ROYAL_DECAY_DISTANCE; + BlockPos.MutableBlockPos cursor = new BlockPos.MutableBlockPos(); + + for (Direction direction : Direction.values()) { + cursor.setWithOffset(pos, direction); + bestDistance = Math.min(bestDistance, getDistanceAt(level.getBlockState(cursor)) + 1); + if (bestDistance == 1) { + break; + } + } + + return setRoyalDistance(state, Math.min(ROYAL_DECAY_DISTANCE, bestDistance)); + } + + private static BlockState setRoyalDistance(BlockState state, int distance) { + int royalDistance = Math.max(1, Math.min(ROYAL_DECAY_DISTANCE, distance)); + int vanillaDistance = Math.min(LeavesBlock.DECAY_DISTANCE, royalDistance); + + return state + .setValue(ROYAL_DISTANCE, royalDistance) + .setValue(LeavesBlock.DISTANCE, vanillaDistance); + } + + private static int getDistanceAt(BlockState state) { + if (state.is(BlockTags.LOGS)) { + return 0; + } + if (state.hasProperty(ROYAL_DISTANCE)) { + return state.getValue(ROYAL_DISTANCE); + } + if (state.hasProperty(LeavesBlock.DISTANCE)) { + return state.getValue(LeavesBlock.DISTANCE); + } + + return ROYAL_DECAY_DISTANCE; + } + + public static BlockState setRoyalDistanceForWorldgen(BlockState state, int distance) { + return setRoyalDistance(state, distance); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/RoyalSaplingBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/RoyalSaplingBlock.java new file mode 100644 index 00000000..b480d2f4 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/RoyalSaplingBlock.java @@ -0,0 +1,152 @@ +package com.craisinlord.antarchy.content.block; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.advancement.AntarchyAdvancements; +import com.craisinlord.antarchy.content.worldgen.royal.RoyalTreeGrowers; +import java.util.LinkedHashMap; +import java.util.Map; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.tags.BlockTags; +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.AABB; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class RoyalSaplingBlock extends BushBlock implements BonemealableBlock { + private static final ResourceLocation LET_IT_GROW_ADVANCEMENT = new ResourceLocation(Antarchy.MODID, "let_it_grow"); + private static final VoxelShape SHAPE = Block.box(2.0D, 0.0D, 2.0D, 14.0D, 12.0D, 14.0D); + + public RoyalSaplingBlock(BlockBehaviour.Properties properties) { + super(properties); + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return SHAPE; + } + + @Override + public boolean mayPlaceOn(BlockState state, BlockGetter level, BlockPos pos) { + return state.is(BlockTags.DIRT); + } + + @Override + public boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + return level.getBlockState(pos.below()).is(BlockTags.DIRT); + } + + @Override + public BlockState updateShape( + BlockState state, + Direction direction, + BlockState neighborState, + LevelAccessor level, + BlockPos pos, + BlockPos neighborPos + ) { + return state.canSurvive(level, pos) + ? super.updateShape(state, direction, neighborState, level, pos, neighborPos) + : Blocks.AIR.defaultBlockState(); + } + + @Override + public void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + if (level.getMaxLocalRawBrightness(pos.above()) >= 9 && random.nextInt(7) == 0) { + this.growRoyalTree(level, pos, random); + } + } + + @Override + public boolean isValidBonemealTarget(LevelReader level, BlockPos pos, BlockState state, boolean isClientSide) { + 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.growRoyalTree(level, pos, random); + } + + private void growRoyalTree(ServerLevel level, BlockPos pos, RandomSource random) { + Map footprint = this.findFootprint(level, pos); + if (footprint == null) { + return; + } + + BlockPos origin = footprint.keySet().iterator().next(); + ResourceKey> variant = switch (random.nextInt(3)) { + case 0 -> RoyalTreeGrowers.ROYAL_TREE_SMALL; + case 1 -> RoyalTreeGrowers.ROYAL_TREE_MEDIUM; + default -> RoyalTreeGrowers.ROYAL_TREE_LARGE; + }; + + Holder.Reference> feature = level.registryAccess() + .lookupOrThrow(Registries.CONFIGURED_FEATURE) + .getOrThrow(variant); + + for (BlockPos saplingPos : footprint.keySet()) { + level.removeBlock(saplingPos, false); + } + + if (feature.value().place(level, level.getChunkSource().getGenerator(), random, origin)) { + for (ServerPlayer player : level.getEntitiesOfClass(ServerPlayer.class, new AABB(origin).inflate(8.0D))) { + AntarchyAdvancements.award(player, LET_IT_GROW_ADVANCEMENT); + } + return; + } + + for (Map.Entry entry : footprint.entrySet()) { + level.setBlock(entry.getKey(), entry.getValue(), Block.UPDATE_ALL); + } + } + + private Map findFootprint(ServerLevel level, BlockPos pos) { + for (int offsetX = 0; offsetX < 2; offsetX++) { + for (int offsetZ = 0; offsetZ < 2; offsetZ++) { + BlockPos origin = pos.offset(-offsetX, 0, -offsetZ); + Map blocks = new LinkedHashMap<>(); + boolean matches = true; + + for (int x = 0; x < 2 && matches; x++) { + for (int z = 0; z < 2; z++) { + BlockPos checkPos = origin.offset(x, 0, z); + BlockState checkState = level.getBlockState(checkPos); + if (!checkState.is(this)) { + matches = false; + break; + } + blocks.put(checkPos, checkState); + } + } + + if (matches) { + return blocks; + } + } + } + + return null; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/SimpleDirectionalVineBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/SimpleDirectionalVineBlock.java new file mode 100644 index 00000000..e6a2317f --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/SimpleDirectionalVineBlock.java @@ -0,0 +1,173 @@ +package com.craisinlord.antarchy.content.block; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.item.context.BlockPlaceContext; +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.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.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class SimpleDirectionalVineBlock extends BushBlock implements BonemealableBlock { + public static final EnumProperty GROWTH_DIRECTION = EnumProperty.create("growth_direction", Direction.class, Direction.UP, Direction.DOWN); + public static final BooleanProperty TOP_CAP = BooleanProperty.create("top_cap"); + public static final BooleanProperty BOTTOM_CAP = BooleanProperty.create("bottom_cap"); + public static final IntegerProperty DISTANCE = IntegerProperty.create("distance", 0, 15); + public static final int MAX_DISTANCE = 6; + public static final VoxelShape SHAPE = Block.box(4.0D, 0.0D, 4.0D, 12.0D, 16.0D, 12.0D); + + public SimpleDirectionalVineBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any() + .setValue(GROWTH_DIRECTION, Direction.DOWN) + .setValue(TOP_CAP, false) + .setValue(BOTTOM_CAP, true) + .setValue(DISTANCE, 0)); + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return SHAPE; + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + BlockGetter level = context.getLevel(); + BlockPos pos = context.getClickedPos(); + Direction growthDirection = resolveGrowthDirection(level, pos); + return computeState(this.defaultBlockState().setValue(GROWTH_DIRECTION, growthDirection).setValue(DISTANCE, 0), level, pos); + } + + private Direction resolveGrowthDirection(BlockGetter level, BlockPos pos) { + BlockState belowState = level.getBlockState(pos.below()); + if (belowState.is(this) && belowState.getValue(GROWTH_DIRECTION) == Direction.UP) { + return Direction.UP; + } + + BlockState aboveState = level.getBlockState(pos.above()); + if (aboveState.is(this) && aboveState.getValue(GROWTH_DIRECTION) == Direction.DOWN) { + return Direction.DOWN; + } + + return hasSturdyAnchor(level, pos, Direction.UP) ? Direction.DOWN : Direction.UP; + } + + private static boolean hasSturdyAnchor(BlockGetter level, BlockPos pos, Direction towardAnchor) { + BlockPos anchorPos = pos.relative(towardAnchor); + BlockState anchorState = level.getBlockState(anchorPos); + return anchorState.isFaceSturdy(level, anchorPos, towardAnchor.getOpposite()); + } + + @Override + public boolean mayPlaceOn(BlockState state, BlockGetter level, BlockPos pos) { + return state.is(this) || state.isFaceSturdy(level, pos, Direction.DOWN) || state.isFaceSturdy(level, pos, Direction.UP); + } + + @Override + public boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + Direction anchorDirection = state.getValue(GROWTH_DIRECTION).getOpposite(); + BlockPos anchorPos = pos.relative(anchorDirection); + BlockState anchorState = level.getBlockState(anchorPos); + if (anchorState.is(this)) { + return true; + } + return anchorState.isFaceSturdy(level, anchorPos, anchorDirection.getOpposite()); + } + + @Override + public BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor level, BlockPos pos, BlockPos neighborPos) { + if (!state.canSurvive(level, pos)) { + return net.minecraft.world.level.block.Blocks.AIR.defaultBlockState(); + } + if (direction == Direction.UP || direction == Direction.DOWN) { + return computeState(state, level, pos); + } + return state; + } + + public static BlockState computeState(BlockState state, BlockGetter level, BlockPos pos) { + boolean aboveIsSame = level.getBlockState(pos.above()).is(state.getBlock()); + boolean belowIsSame = level.getBlockState(pos.below()).is(state.getBlock()); + Direction growthDirection = state.getValue(GROWTH_DIRECTION); + + boolean topCap = growthDirection == Direction.UP && !aboveIsSame; + boolean bottomCap = growthDirection == Direction.DOWN && !belowIsSame; + return state.setValue(TOP_CAP, topCap).setValue(BOTTOM_CAP, bottomCap); + } + + public int maxDistance() { + return MAX_DISTANCE; + } + + @Override + public boolean isRandomlyTicking(BlockState state) { + return isTip(state) && state.getValue(DISTANCE) < maxDistance(); + } + + @Override + public void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + if (random.nextInt(10) == 0) { + grow(level, pos, state); + } + } + + @Override + public boolean isValidBonemealTarget(LevelReader level, BlockPos pos, BlockState state, boolean isClientSide) { + return isTip(state) && state.getValue(DISTANCE) < maxDistance() && level.getBlockState(pos.relative(state.getValue(GROWTH_DIRECTION))).isAir(); + } + + @Override + public boolean isBonemealSuccess(Level level, RandomSource random, BlockPos pos, BlockState state) { + return true; + } + + @Override + public void performBonemeal(ServerLevel level, RandomSource random, BlockPos pos, BlockState state) { + grow(level, pos, state); + } + + private void grow(ServerLevel level, BlockPos pos, BlockState state) { + Direction direction = state.getValue(GROWTH_DIRECTION); + BlockPos targetPos = pos.relative(direction); + if (!level.getBlockState(targetPos).isAir()) { + return; + } + + int nextDistance = Math.min(state.getValue(DISTANCE) + 1, maxDistance()); + BlockState grownState = this.defaultBlockState() + .setValue(GROWTH_DIRECTION, direction) + .setValue(DISTANCE, nextDistance); + level.setBlock(targetPos, grownState, Block.UPDATE_ALL); + + BlockState posState = level.getBlockState(pos); + if (posState.is(this)) { + level.setBlock(pos, computeState(posState, level, pos), Block.UPDATE_CLIENTS); + } + BlockState targetState = level.getBlockState(targetPos); + if (targetState.is(this)) { + level.setBlock(targetPos, computeState(targetState, level, targetPos), Block.UPDATE_CLIENTS); + } + } + + public static boolean isTip(BlockState state) { + return state.getValue(GROWTH_DIRECTION) == Direction.DOWN ? state.getValue(BOTTOM_CAP) : state.getValue(TOP_CAP); + } + + @Override + public void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(GROWTH_DIRECTION, TOP_CAP, BOTTOM_CAP, DISTANCE); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/SpiralingVinesBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/SpiralingVinesBlock.java new file mode 100644 index 00000000..07c1ba35 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/SpiralingVinesBlock.java @@ -0,0 +1,11 @@ +package com.craisinlord.antarchy.content.block; + +import net.minecraft.world.level.block.BushBlock; +import net.minecraft.world.level.block.state.BlockBehaviour; + +public class SpiralingVinesBlock extends SimpleDirectionalVineBlock { + + public SpiralingVinesBlock(BlockBehaviour.Properties properties) { + super(properties); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/TruffaloLogBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/TruffaloLogBlock.java new file mode 100644 index 00000000..7c28da32 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/TruffaloLogBlock.java @@ -0,0 +1,45 @@ +package com.craisinlord.antarchy.content.block; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.RotatedPillarBlock; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class TruffaloLogBlock extends RotatedPillarBlock { + + private static final VoxelShape SHAPE_Y = Block.box(4.0D, 0.0D, 4.0D, 12.0D, 16.0D, 12.0D); + private static final VoxelShape SHAPE_X = Block.box(0.0D, 4.0D, 4.0D, 16.0D, 12.0D, 12.0D); + private static final VoxelShape SHAPE_Z = Block.box(4.0D, 4.0D, 0.0D, 12.0D, 12.0D, 16.0D); + + public TruffaloLogBlock(BlockBehaviour.Properties properties) { + super(properties); + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return shapeFor(state); + } + + @Override + public VoxelShape getCollisionShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return shapeFor(state); + } + + @Override + public VoxelShape getOcclusionShape(BlockState state, BlockGetter level, BlockPos pos) { + return shapeFor(state); + } + + private static VoxelShape shapeFor(BlockState state) { + return switch (state.getValue(AXIS)) { + case X -> SHAPE_X; + case Z -> SHAPE_Z; + default -> SHAPE_Y; + }; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/TruffaloSaplingBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/TruffaloSaplingBlock.java new file mode 100644 index 00000000..8d89c8a4 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/TruffaloSaplingBlock.java @@ -0,0 +1,110 @@ +package com.craisinlord.antarchy.content.block; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.advancement.AntarchyAdvancements; +import com.craisinlord.antarchy.content.worldgen.truffalo.TruffaloTreeGrowers; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +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.server.level.ServerPlayer; +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.AABB; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class TruffaloSaplingBlock extends BushBlock implements BonemealableBlock { + private static final ResourceLocation LET_IT_GROW_ADVANCEMENT = new ResourceLocation(Antarchy.MODID, "let_it_grow"); + private static final TagKey SUPPORTS = TagKey.create( + Registries.BLOCK, + new ResourceLocation(Antarchy.MODID, "truffalo_sapling_supports") + ); + private static final VoxelShape SHAPE = Block.box(2.0D, 4.0D, 2.0D, 14.0D, 16.0D, 14.0D); + + public TruffaloSaplingBlock(BlockBehaviour.Properties properties) { + super(properties); + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return SHAPE; + } + + @Override + public boolean mayPlaceOn(BlockState state, BlockGetter level, BlockPos pos) { + return state.is(SUPPORTS); + } + + @Override + public boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + BlockPos supportPos = pos.below(); + BlockState supportState = level.getBlockState(supportPos); + return supportState.is(SUPPORTS) && supportState.isFaceSturdy(level, supportPos, Direction.UP); + } + + @Override + public void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + if (random.nextInt(7) == 0) { + this.growConfiguredTree(level, pos, state, random); + } + } + + @Override + public BlockState updateShape( + BlockState state, + Direction direction, + BlockState neighborState, + LevelAccessor level, + BlockPos pos, + BlockPos neighborPos + ) { + return state.canSurvive(level, pos) + ? super.updateShape(state, direction, neighborState, level, pos, neighborPos) + : Blocks.AIR.defaultBlockState(); + } + + @Override + public boolean isValidBonemealTarget(LevelReader level, BlockPos pos, BlockState state, boolean isClientSide) { + 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(TruffaloTreeGrowers.TRUFFALO_TREE); + + level.removeBlock(pos, false); + if (feature.value().place(level, level.getChunkSource().getGenerator(), random, pos)) { + for (ServerPlayer player : level.getEntitiesOfClass(ServerPlayer.class, new AABB(pos).inflate(8.0D))) { + AntarchyAdvancements.award(player, LET_IT_GROW_ADVANCEMENT); + } + return; + } + + level.setBlock(pos, state, Block.UPDATE_ALL); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/TruffaloTuftBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/TruffaloTuftBlock.java new file mode 100644 index 00000000..89211918 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/TruffaloTuftBlock.java @@ -0,0 +1,26 @@ +package com.craisinlord.antarchy.content.block; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ShearsItem; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; + +public class TruffaloTuftBlock extends Block { + private static final float SHEARS_DESTROY_SPEED = 10.0F; + + public TruffaloTuftBlock(BlockBehaviour.Properties properties) { + super(properties); + } + + @Override + public float getDestroyProgress(BlockState state, Player player, BlockGetter level, BlockPos pos) { + if (player.getMainHandItem().getItem() instanceof ShearsItem) { + return SHEARS_DESTROY_SPEED; + } + + return super.getDestroyProgress(state, player, level, pos); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/TyphoniteSpikeBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/TyphoniteSpikeBlock.java new file mode 100644 index 00000000..b0ca95fb --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/TyphoniteSpikeBlock.java @@ -0,0 +1,158 @@ +package com.craisinlord.antarchy.content.block; + +import com.craisinlord.antarchy.content.entity.UpwardFallingBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.entity.item.FallingBlockEntity; +import net.minecraft.world.item.context.BlockPlaceContext; +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.PointedDripstoneBlock; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.DripstoneThickness; +import net.minecraft.world.level.material.Fluids; + +public class TyphoniteSpikeBlock extends PointedDripstoneBlock { + @SuppressWarnings("rawtypes") + + public TyphoniteSpikeBlock(BlockBehaviour.Properties properties) { + super(properties); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + LevelAccessor level = context.getLevel(); + BlockPos pos = context.getClickedPos(); + Direction direction = calculateTipDirection(level, pos, context.getNearestLookingVerticalDirection().getOpposite()); + if (direction == null) { + return null; + } + + boolean mergeTips = !context.isSecondaryUseActive(); + DripstoneThickness thickness = calculateDripstoneThickness(level, pos, direction, mergeTips); + if (thickness == null) { + return null; + } + + return this.defaultBlockState() + .setValue(TIP_DIRECTION, direction) + .setValue(THICKNESS, thickness) + .setValue(WATERLOGGED, level.getFluidState(pos).getType() == Fluids.WATER); + } + + @Override + public BlockState updateShape( + BlockState state, + Direction direction, + BlockState neighborState, + LevelAccessor level, + BlockPos pos, + BlockPos neighborPos + ) { + if (state.getValue(WATERLOGGED)) { + level.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); + } + + if (direction != Direction.UP && direction != Direction.DOWN) { + return state; + } + + Direction tipDirection = state.getValue(TIP_DIRECTION); + if (tipDirection == Direction.DOWN && level.getBlockTicks().hasScheduledTick(pos, this)) { + return state; + } + + if (direction == tipDirection.getOpposite() && !this.canSurvive(state, level, pos)) { + if (tipDirection == Direction.DOWN) { + level.scheduleTick(pos, this, 2); + } else { + level.scheduleTick(pos, this, 1); + } + + return state; + } + + boolean mergeTips = state.getValue(THICKNESS) == DripstoneThickness.TIP_MERGE; + return state.setValue(THICKNESS, calculateDripstoneThickness(level, pos, tipDirection, mergeTips)); + } + + @Override + public boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + return isValidPointedDripstonePlacement(level, pos, state.getValue(TIP_DIRECTION)); + } + + @Override + public void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + if (this.canSurvive(state, level, pos)) { + return; + } + + if (state.getValue(TIP_DIRECTION) == Direction.DOWN) { + BlockPos.MutableBlockPos root = pos.mutable(); + while (isTyphoniteSpikeWithDirection(level.getBlockState(root.above()), Direction.DOWN)) { + root.move(Direction.UP); + } + + BlockPos.MutableBlockPos cursor = root.mutable(); + while (isTyphoniteSpikeWithDirection(level.getBlockState(cursor), Direction.DOWN)) { + BlockState fallingState = level.getBlockState(cursor); + if (isTyphoniteSpikeWithDirection(fallingState, Direction.DOWN)) { + FallingBlockEntity.fall(level, cursor, fallingState); + } + cursor.move(Direction.DOWN); + } + return; + } + + BlockPos.MutableBlockPos cursor = pos.mutable(); + while (isTyphoniteSpikeWithDirection(level.getBlockState(cursor), Direction.UP)) { + BlockState spikeState = level.getBlockState(cursor); + UpwardFallingBlockEntity.fallUp(level, cursor, spikeState); + cursor.move(Direction.UP); + } + } + + private static Direction calculateTipDirection(LevelReader level, BlockPos pos, Direction preferredDirection) { + if (isValidPointedDripstonePlacement(level, pos, preferredDirection)) { + return preferredDirection; + } + + Direction opposite = preferredDirection.getOpposite(); + return isValidPointedDripstonePlacement(level, pos, opposite) ? opposite : null; + } + + private static DripstoneThickness calculateDripstoneThickness(LevelReader level, BlockPos pos, Direction direction, boolean mergeTips) { + Direction opposite = direction.getOpposite(); + BlockState forwardState = level.getBlockState(pos.relative(direction)); + if (isTyphoniteSpikeWithDirection(forwardState, opposite)) { + return !mergeTips && forwardState.getValue(THICKNESS) != DripstoneThickness.TIP_MERGE + ? DripstoneThickness.TIP + : DripstoneThickness.TIP_MERGE; + } + + if (!isTyphoniteSpikeWithDirection(forwardState, direction)) { + return DripstoneThickness.TIP; + } + + DripstoneThickness forwardThickness = forwardState.getValue(THICKNESS); + if (forwardThickness == DripstoneThickness.TIP || forwardThickness == DripstoneThickness.TIP_MERGE) { + return DripstoneThickness.MIDDLE; + } + + return DripstoneThickness.BASE; + } + + private static boolean isValidPointedDripstonePlacement(LevelReader level, BlockPos pos, Direction direction) { + BlockPos supportPos = pos.relative(direction.getOpposite()); + BlockState supportState = level.getBlockState(supportPos); + return supportState.isFaceSturdy(level, supportPos, direction) || isTyphoniteSpikeWithDirection(supportState, direction); + } + + private static boolean isTyphoniteSpikeWithDirection(BlockState state, Direction direction) { + return state.getBlock() instanceof TyphoniteSpikeBlock && state.getValue(TIP_DIRECTION) == direction; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/VortexLensBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/VortexLensBlock.java new file mode 100644 index 00000000..bd1b1f43 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/VortexLensBlock.java @@ -0,0 +1,110 @@ +package com.craisinlord.antarchy.content.block; + +import com.craisinlord.antarchy.content.block.entity.VortexLensBlockEntity; +import java.util.function.Supplier; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.DirectionProperty; +import org.jetbrains.annotations.Nullable; + +public class VortexLensBlock extends BaseEntityBlock { + public static final DirectionProperty FACING = BlockStateProperties.FACING; + public static final BooleanProperty POWERED = BlockStateProperties.POWERED; + public static final BooleanProperty PUSHING = BooleanProperty.create("pushing"); + + private final Supplier> blockEntityTypeSupplier; + + public VortexLensBlock(Supplier> blockEntityTypeSupplier, + BlockBehaviour.Properties properties) { + super(properties); + this.blockEntityTypeSupplier = blockEntityTypeSupplier; + this.registerDefaultState(this.stateDefinition.any() + .setValue(FACING, Direction.UP).setValue(POWERED, false).setValue(PUSHING, false)); + } + + @Override + public void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(FACING, POWERED, PUSHING); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + Level level = context.getLevel(); + BlockPos pos = context.getClickedPos(); + boolean bluestone = BluestoneSignalHelper.getBestNeighborSignal(level, pos) > 0; + return this.defaultBlockState() + .setValue(FACING, context.getClickedFace()) + .setValue(POWERED, hasAnySignal(level, pos)) + .setValue(PUSHING, bluestone); + } + + @Override + public void neighborChanged(BlockState state, Level level, BlockPos pos, Block neighborBlock, BlockPos neighborPos, + boolean movedByPiston) { + if (!level.isClientSide && level.getBlockEntity(pos) instanceof VortexLensBlockEntity lens) { + lens.refreshImmediately(); + } + } + + @Override + public RenderShape getRenderShape(BlockState state) { + return RenderShape.MODEL; + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new VortexLensBlockEntity(pos, state, this.blockEntityTypeSupplier); + } + + @Nullable + @Override + public BlockEntityTicker getTicker(Level level, BlockState state, + BlockEntityType blockEntityType) { + if (level.isClientSide) { + return null; + } + return createTickerHelper(blockEntityType, this.blockEntityTypeSupplier.get(), (tickLevel, tickPos, tickState, blockEntity) -> { + if (tickLevel instanceof net.minecraft.server.level.ServerLevel serverLevel) { + VortexLensBlockEntity.serverTick(serverLevel, tickPos, tickState, blockEntity); + } + }); + } + + @Override + public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean movedByPiston) { + if (!state.is(newState.getBlock()) && level.getBlockEntity(pos) instanceof VortexLensBlockEntity lens) { + lens.removeActiveVortex(); + } + super.onRemove(state, level, pos, newState, movedByPiston); + } + + @Override + public BlockState rotate(BlockState state, Rotation rotation) { + return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); + } + + @Override + public BlockState mirror(BlockState state, Mirror mirror) { + return state.rotate(mirror.getRotation(state.getValue(FACING))); + } + + private static boolean hasAnySignal(Level level, BlockPos pos) { + return level.getBestNeighborSignal(pos) > 0 || BluestoneSignalHelper.getBestNeighborSignal(level, pos) > 0; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/WhirlflowerBlock.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/WhirlflowerBlock.java new file mode 100644 index 00000000..3bb1c233 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/WhirlflowerBlock.java @@ -0,0 +1,79 @@ +package com.craisinlord.antarchy.content.block; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.AntarchyTags; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +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.BushBlock; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class WhirlflowerBlock extends BushBlock { + public static final DirectionProperty VERTICAL_DIRECTION = BlockStateProperties.VERTICAL_DIRECTION; + private static final VoxelShape UP_SHAPE = Block.box(3.0D, 0.0D, 3.0D, 13.0D, 13.0D, 13.0D); + private static final VoxelShape DOWN_SHAPE = Block.box(3.0D, 3.0D, 3.0D, 13.0D, 16.0D, 13.0D); + private static final ResourceLocation VEINED_TYPHONITE_ID = new ResourceLocation(Antarchy.MODID, "veined_typhonite"); + + public WhirlflowerBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(VERTICAL_DIRECTION, Direction.UP)); + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return state.getValue(VERTICAL_DIRECTION) == Direction.DOWN ? DOWN_SHAPE : UP_SHAPE; + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + return this.defaultBlockState().setValue( + VERTICAL_DIRECTION, + context.getClickedFace() == Direction.DOWN ? Direction.DOWN : Direction.UP + ); + } + + @Override + public boolean mayPlaceOn(BlockState state, BlockGetter level, BlockPos pos) { + return state.is(AntarchyTags.Blocks.NYXIUM) + || BuiltInRegistries.BLOCK.getKey(state.getBlock()).equals(VEINED_TYPHONITE_ID); + } + + @Override + public boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + Direction growthDirection = state.getValue(VERTICAL_DIRECTION); + BlockPos supportPos = pos.relative(growthDirection.getOpposite()); + return this.mayPlaceOn(level.getBlockState(supportPos), level, supportPos); + } + + @Override + public BlockState updateShape( + BlockState state, + Direction direction, + BlockState neighborState, + LevelAccessor level, + BlockPos pos, + BlockPos neighborPos + ) { + return state.canSurvive(level, pos) + ? super.updateShape(state, direction, neighborState, level, pos, neighborPos) + : Blocks.AIR.defaultBlockState(); + } + + @Override + public void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(VERTICAL_DIRECTION); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/entity/DimensionalTearMarkerBlockEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/entity/DimensionalTearMarkerBlockEntity.java new file mode 100644 index 00000000..b77b3457 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/entity/DimensionalTearMarkerBlockEntity.java @@ -0,0 +1,187 @@ +package com.craisinlord.antarchy.content.block.entity; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.entity.portal.DimensionalTearEntity; +import java.util.function.Supplier; +import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; + +public class DimensionalTearMarkerBlockEntity extends BlockEntity { + private static final int MAX_ATTEMPT_TICKS = 80; + private static final int MIN_LINK_RANGE = 50; + private static final int MAX_LINK_RANGE = 500; + private static final int PARTNER_ORIGIN_ATTEMPTS = 8; + private static final int PARTNER_SEARCH_ATTEMPTS = 32; + private static final int LOCAL_SEARCH_ATTEMPTS = 12; + private static final int SEARCH_ATTEMPTS_PER_TICK = 1; + private static final int MIN_VERTICAL_SEPARATION = 24; + private static final int MIN_PARTNER_VERTICAL_OFFSET = 48; + private static final int MAX_PARTNER_VERTICAL_OFFSET = 96; + private static final int NATURAL_TEAR_LOCAL_RADIUS = 512; + private static final int NATURAL_TEAR_LOCAL_CAP = 6; + + private int attemptTicks; + private int localAttempts; + private int partnerOriginAttempts; + private int partnerSearchAttempts; + @Nullable + private BlockPos firstPocket; + @Nullable + private BlockPos partnerOrigin; + + public DimensionalTearMarkerBlockEntity( + BlockPos pos, + BlockState blockState, + Supplier> blockEntityTypeSupplier + ) { + super(blockEntityTypeSupplier.get(), pos, blockState); + } + + public static void serverTick(ServerLevel level, BlockPos pos, BlockState state, DimensionalTearMarkerBlockEntity blockEntity) { + blockEntity.attemptTicks++; + boolean spawned = blockEntity.trySpawnLinkedPair(level, pos); + if (spawned || blockEntity.attemptTicks >= MAX_ATTEMPT_TICKS) { + level.removeBlock(pos, false); + } + } + + private boolean trySpawnLinkedPair(ServerLevel level, BlockPos origin) { + RandomSource random = level.getRandom(); + for (int i = 0; i < SEARCH_ATTEMPTS_PER_TICK; i++) { + if (firstPocket == null) { + if (localAttempts >= LOCAL_SEARCH_ATTEMPTS) { + return false; + } + localAttempts++; + BlockPos candidate = randomCandidate(origin, random); + if (isUsablePocket(level, candidate)) { + firstPocket = candidate; + } + continue; + } + + if (partnerOrigin == null && partnerOriginAttempts == 0 + && countNearbyTears(level, origin) >= NATURAL_TEAR_LOCAL_CAP) { + return false; + } + + if (partnerOrigin == null || partnerSearchAttempts >= PARTNER_SEARCH_ATTEMPTS) { + if (partnerOriginAttempts >= PARTNER_ORIGIN_ATTEMPTS) { + return false; + } + partnerOrigin = linkedOrigin(firstPocket, random); + partnerOriginAttempts++; + partnerSearchAttempts = 0; + } + + partnerSearchAttempts++; + BlockPos candidate = randomCandidate(partnerOrigin, random); + if (Math.abs(candidate.getY() - firstPocket.getY()) < MIN_VERTICAL_SEPARATION + || !isUsablePocket(level, candidate)) { + continue; + } + return spawnPair(level, random, firstPocket, candidate); + } + + return false; + } + + private boolean spawnPair(ServerLevel level, RandomSource random, BlockPos first, BlockPos second) { + + int lifetime = Math.max(1200, AntarchySettings.dimensionalTearLifetimeTicks()); + float yawA = random.nextFloat() * 360.0F; + float yawB = Mth.wrapDegrees(yawA + 140.0F + random.nextFloat() * 80.0F); + DimensionalTearEntity tearA = DimensionalTearEntity.create(level, center(first), yawA, lifetime); + DimensionalTearEntity tearB = DimensionalTearEntity.create(level, center(second), yawB, lifetime); + tearA.linkTo(tearB); + tearB.linkTo(tearA); + level.addFreshEntity(tearA); + level.addFreshEntity(tearB); + return true; + } + + private static BlockPos randomCandidate(BlockPos origin, RandomSource random) { + return origin.offset( + Mth.nextInt(random, -16, 16), + Mth.nextInt(random, -24, 24), + Mth.nextInt(random, -16, 16) + ); + } + + private static BlockPos linkedOrigin(BlockPos first, RandomSource random) { + double angle = random.nextDouble() * Math.PI * 2.0D; + int distance = Mth.nextInt(random, MIN_LINK_RANGE, MAX_LINK_RANGE); + int dx = Mth.floor(Math.cos(angle) * distance); + int dz = Mth.floor(Math.sin(angle) * distance); + int verticalOffset = Mth.nextInt(random, MIN_PARTNER_VERTICAL_OFFSET, MAX_PARTNER_VERTICAL_OFFSET); + int dy = random.nextBoolean() ? verticalOffset : -verticalOffset; + return first.offset(dx, dy, dz); + } + + private static int countNearbyTears(ServerLevel level, BlockPos origin) { + AABB area = new AABB(origin).inflate(NATURAL_TEAR_LOCAL_RADIUS); + return level.getEntitiesOfClass(DimensionalTearEntity.class, area).size(); + } + + private static boolean isUsablePocket(ServerLevel level, BlockPos pos) { + int minY = level.getMinBuildHeight() + 8; + int maxY = level.getMaxBuildHeight() - 8; + if (pos.getY() < minY || pos.getY() > maxY) { + return false; + } + for (int dx = -2; dx <= 2; dx++) { + for (int dy = -2; dy <= 3; dy++) { + for (int dz = -4; dz <= 4; dz++) { + BlockPos checkPos = pos.offset(dx, dy, dz); + if (!level.isLoaded(checkPos)) { + return false; + } + if (!level.getBlockState(checkPos).getCollisionShape(level, checkPos).isEmpty()) { + return false; + } + } + } + } + return true; + } + + private static Vec3 center(BlockPos pos) { + return new Vec3(pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D); + } + + @Override + public void saveAdditional(CompoundTag tag) { + super.saveAdditional(tag); + tag.putInt("attempt_ticks", this.attemptTicks); + tag.putInt("local_attempts", this.localAttempts); + tag.putInt("partner_origin_attempts", this.partnerOriginAttempts); + tag.putInt("partner_search_attempts", this.partnerSearchAttempts); + if (this.firstPocket != null) { + tag.putLong("first_pocket", this.firstPocket.asLong()); + } + if (this.partnerOrigin != null) { + tag.putLong("partner_origin", this.partnerOrigin.asLong()); + } + } + + @Override + public void load(CompoundTag tag) { + super.load(tag); + this.attemptTicks = tag.getInt("attempt_ticks"); + this.localAttempts = tag.getInt("local_attempts"); + this.partnerOriginAttempts = tag.getInt("partner_origin_attempts"); + this.partnerSearchAttempts = tag.getInt("partner_search_attempts"); + this.firstPocket = tag.contains("first_pocket") ? BlockPos.of(tag.getLong("first_pocket")) : null; + this.partnerOrigin = tag.contains("partner_origin") ? BlockPos.of(tag.getLong("partner_origin")) : null; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/entity/PortalGunPortalBaseBlockEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/entity/PortalGunPortalBaseBlockEntity.java new file mode 100644 index 00000000..e21c8cfa --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/entity/PortalGunPortalBaseBlockEntity.java @@ -0,0 +1,148 @@ +package com.craisinlord.antarchy.content.block.entity; + +import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity; +import java.util.UUID; +import java.util.function.Supplier; +import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.game.ClientGamePacketListener; +import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +public class PortalGunPortalBaseBlockEntity extends BlockEntity { + private UUID ownerId; + private UUID portalId; + private PortalGunPortalEntity.PortalSide side = PortalGunPortalEntity.PortalSide.BLUE; + private BlockPos masterPos = BlockPos.ZERO; + private UUID linkedPortalId; + private int pairTime; + + public PortalGunPortalBaseBlockEntity(BlockPos pos, BlockState state, Supplier> typeSupplier) { + super(typeSupplier.get(), pos, state); + } + + public void configure(UUID ownerId, UUID portalId, PortalGunPortalEntity.PortalSide side, BlockPos masterPos) { + this.ownerId = ownerId; + this.portalId = portalId; + this.side = side; + this.masterPos = masterPos.immutable(); + this.setChanged(); + } + + public UUID getOwnerId() { + return this.ownerId; + } + + public UUID getPortalId() { + return this.portalId; + } + + public PortalGunPortalEntity.PortalSide getSide() { + return this.side; + } + + public BlockPos getMasterPos() { + return this.masterPos; + } + + public UUID getLinkedPortalId() { + return this.linkedPortalId; + } + + public int getPairTime() { + return this.pairTime; + } + + public void updatePair(UUID linkedPortalId, int pairTime) { + this.linkedPortalId = linkedPortalId; + this.pairTime = pairTime; + this.setChanged(); + } + + public boolean matches(UUID ownerId, UUID portalId, PortalGunPortalEntity.PortalSide side) { + return ownerId != null && portalId != null && ownerId.equals(this.ownerId) && portalId.equals(this.portalId) && this.side == side; + } + + public void onBroken() { + if (!(this.level instanceof ServerLevel serverLevel) || this.portalId == null) { + return; + } + if (serverLevel.getEntity(this.portalId) instanceof PortalGunPortalEntity portal && !portal.isRemoved()) { + portal.discard(); + } + } + + public static void serverTick(ServerLevel level, BlockPos pos, BlockState state, PortalGunPortalBaseBlockEntity blockEntity) { + if (((level.getGameTime() + pos.asLong()) & 15L) != 0L) { + return; + } + if (!(level.getBlockEntity(blockEntity.masterPos) instanceof PortalGunPortalMasterBlockEntity master) + || !master.matches(blockEntity.ownerId, blockEntity.portalId, blockEntity.side) + || !pos.equals(master.getBasePos())) { + level.removeBlock(pos, false); + return; + } + if (!(level.getEntity(blockEntity.portalId) instanceof PortalGunPortalEntity portal) + || portal.isRemoved() + || !pos.equals(portal.getBasePos()) + || blockEntity.ownerId == null + || !blockEntity.ownerId.equals(portal.getOwnerId()) + || blockEntity.side != portal.getPortalSide()) { + level.removeBlock(pos, false); + return; + } + UUID linkedPortalId = portal.getLinkedPortalId(); + if ((linkedPortalId == null && blockEntity.linkedPortalId != null) + || (linkedPortalId != null && !linkedPortalId.equals(blockEntity.linkedPortalId)) + || blockEntity.pairTime != portal.getPairTime()) { + blockEntity.linkedPortalId = linkedPortalId; + blockEntity.pairTime = portal.getPairTime(); + blockEntity.setChanged(); + } + } + + @Override + public void saveAdditional(CompoundTag tag) { + super.saveAdditional(tag); + if (this.ownerId != null) { + tag.putUUID("OwnerId", this.ownerId); + } + if (this.portalId != null) { + tag.putUUID("PortalId", this.portalId); + } + if (this.linkedPortalId != null) { + tag.putUUID("LinkedPortalId", this.linkedPortalId); + } + tag.putInt("Side", this.side.ordinal()); + tag.putInt("MasterX", this.masterPos.getX()); + tag.putInt("MasterY", this.masterPos.getY()); + tag.putInt("MasterZ", this.masterPos.getZ()); + tag.putInt("PairTime", this.pairTime); + } + + @Override + public void load(CompoundTag tag) { + super.load(tag); + this.ownerId = tag.hasUUID("OwnerId") ? tag.getUUID("OwnerId") : null; + this.portalId = tag.hasUUID("PortalId") ? tag.getUUID("PortalId") : null; + this.linkedPortalId = tag.hasUUID("LinkedPortalId") ? tag.getUUID("LinkedPortalId") : null; + this.side = tag.getInt("Side") == PortalGunPortalEntity.PortalSide.ORANGE.ordinal() ? PortalGunPortalEntity.PortalSide.ORANGE : PortalGunPortalEntity.PortalSide.BLUE; + this.masterPos = new BlockPos(tag.getInt("MasterX"), tag.getInt("MasterY"), tag.getInt("MasterZ")); + this.pairTime = tag.getInt("PairTime"); + } + + @Override + public CompoundTag getUpdateTag() { + return this.saveWithoutMetadata(); + } + + @Override + public Packet getUpdatePacket() { + return ClientboundBlockEntityDataPacket.create(this); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/entity/PortalGunPortalMasterBlockEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/entity/PortalGunPortalMasterBlockEntity.java new file mode 100644 index 00000000..46047424 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/entity/PortalGunPortalMasterBlockEntity.java @@ -0,0 +1,300 @@ +package com.craisinlord.antarchy.content.block.entity; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity; +import com.craisinlord.antarchy.content.portalgun.PortalGunPlacement; +import com.craisinlord.antarchy.content.portalgun.PortalGunSavedData; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.UUID; +import java.util.function.Supplier; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.Tag; +import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.game.ClientGamePacketListener; +import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.Vec3; + +public class PortalGunPortalMasterBlockEntity extends BlockEntity { + private UUID ownerId; + private UUID portalId; + private PortalGunPortalEntity.PortalSide side = PortalGunPortalEntity.PortalSide.BLUE; + private Direction facing = Direction.NORTH; + private Direction upAxis = Direction.UP; + private BlockPos basePos = BlockPos.ZERO; + private BlockPos[] portalSpots = new BlockPos[] {BlockPos.ZERO, BlockPos.ZERO}; + private Set compensatedSpots = Set.of(); + private UUID linkedPortalId; + private int pairTime; + + public PortalGunPortalMasterBlockEntity(BlockPos pos, BlockState state, Supplier> typeSupplier) { + super(typeSupplier.get(), pos, state); + } + + public void configure( + UUID ownerId, + UUID portalId, + PortalGunPortalEntity.PortalSide side, + Direction facing, + Direction upAxis, + BlockPos basePos, + BlockPos[] portalSpots, + Set compensatedSpots, + int pairTime + ) { + this.ownerId = ownerId; + this.portalId = portalId; + this.side = side; + this.facing = facing; + this.upAxis = upAxis; + this.basePos = basePos.immutable(); + this.portalSpots = new BlockPos[] {portalSpots[0].immutable(), portalSpots[1].immutable()}; + this.compensatedSpots = new HashSet<>(compensatedSpots); + this.pairTime = pairTime; + this.setChanged(); + } + + public UUID getPortalId() { + return this.portalId; + } + + public UUID getOwnerId() { + return this.ownerId; + } + + public PortalGunPortalEntity.PortalSide getSide() { + return this.side; + } + + public Direction getFacing() { + return this.facing; + } + + public Direction getUpAxis() { + return this.upAxis; + } + + public BlockPos getBasePos() { + return this.basePos; + } + + public BlockPos[] getPortalSpots() { + return new BlockPos[] {this.portalSpots[0], this.portalSpots[1]}; + } + + public Set getCompensatedSpots() { + return Set.copyOf(this.compensatedSpots); + } + + public int getPairTime() { + return this.pairTime; + } + + public UUID getLinkedPortalId() { + return this.linkedPortalId; + } + + public void updatePair(UUID linkedPortalId, int pairTime) { + this.linkedPortalId = linkedPortalId; + this.pairTime = pairTime; + this.setChanged(); + } + + public boolean matches(UUID ownerId, UUID portalId, PortalGunPortalEntity.PortalSide side) { + return ownerId != null && portalId != null && ownerId.equals(this.ownerId) && portalId.equals(this.portalId) && this.side == side; + } + + public void onBroken() { + if (!(this.level instanceof ServerLevel serverLevel) || this.portalId == null) { + return; + } + if (serverLevel.getEntity(this.portalId) instanceof PortalGunPortalEntity portal && !portal.isRemoved()) { + portal.discard(); + } + } + + public static void serverTick(ServerLevel level, BlockPos pos, BlockState state, PortalGunPortalMasterBlockEntity blockEntity) { + if (((level.getGameTime() + pos.asLong()) & 15L) != 0L) { + return; + } + if (!blockEntity.hasValidFootprint(level, pos)) { + level.removeBlock(pos, false); + return; + } + PortalGunPortalEntity portal = blockEntity.ensurePortalEntity(level); + if (portal == null + || portal.isRemoved() + || !pos.equals(portal.getMasterPos()) + || blockEntity.ownerId == null + || !blockEntity.ownerId.equals(portal.getOwnerId()) + || blockEntity.side != portal.getPortalSide()) { + level.removeBlock(pos, false); + return; + } + blockEntity.ensureLinkedPortal(level, portal); + UUID linkedPortalId = portal.getLinkedPortalId(); + if ((linkedPortalId == null && blockEntity.linkedPortalId != null) + || (linkedPortalId != null && !linkedPortalId.equals(blockEntity.linkedPortalId)) + || blockEntity.pairTime != portal.getPairTime()) { + blockEntity.linkedPortalId = linkedPortalId; + blockEntity.pairTime = portal.getPairTime(); + blockEntity.setChanged(); + } + } + + private boolean hasValidFootprint(ServerLevel level, BlockPos pos) { + if (this.ownerId == null || this.portalId == null || !pos.equals(this.worldPosition)) { + return false; + } + if (!(level.getBlockEntity(this.basePos) instanceof PortalGunPortalBaseBlockEntity base) + || !base.matches(this.ownerId, this.portalId, this.side) + || !pos.equals(base.getMasterPos())) { + return false; + } + List supportPositions = new ArrayList<>(2); + for (BlockPos portalSpot : this.portalSpots) { + if (portalSpot == null || BlockPos.ZERO.equals(portalSpot)) { + return false; + } + supportPositions.add(portalSpot.relative(this.facing.getOpposite())); + } + for (BlockPos supportPos : supportPositions) { + BlockState supportState = level.getBlockState(supportPos); + if (!supportState.isFaceSturdy(level, supportPos, this.facing)) { + return false; + } + } + return true; + } + + private PortalGunPortalEntity ensurePortalEntity(ServerLevel level) { + if (this.portalId == null || this.ownerId == null) { + return null; + } + if (level.getEntity(this.portalId) instanceof PortalGunPortalEntity portal && !portal.isRemoved()) { + return portal; + } + EntityType rawType = BuiltInRegistries.ENTITY_TYPE.get(new ResourceLocation(Antarchy.MODID, "portal_gun_portal")); + if (!(rawType instanceof EntityType)) { + return null; + } + PortalGunPlacement placement = PortalGunPlacement.fromStored(this.facing, this.upAxis, this.worldPosition, this.basePos, this.compensatedSpots); + @SuppressWarnings("unchecked") + PortalGunPortalEntity restored = new PortalGunPortalEntity((EntityType) rawType, level); + restored.setUUID(this.portalId); + restored.configure(this.ownerId, this.side, placement); + restored.restorePair(this.linkedPortalId, this.pairTime); + Vec3 center = placement.center(); + restored.moveTo(center.x, center.y, center.z, placement.yaw(), 0.0F); + level.addFreshEntity(restored); + PortalGunSavedData.setPortal(level.getServer(), this.ownerId, this.side, restored.getUUID()); + return restored; + } + + private void ensureLinkedPortal(ServerLevel level, PortalGunPortalEntity portal) { + if (this.ownerId == null) { + return; + } + PortalGunPortalEntity counterpart = PortalGunSavedData.findLoadedPortal( + level.getServer(), + this.ownerId, + this.side == PortalGunPortalEntity.PortalSide.BLUE ? PortalGunPortalEntity.PortalSide.ORANGE : PortalGunPortalEntity.PortalSide.BLUE + ); + if (counterpart == null || counterpart == portal || counterpart.isRemoved()) { + return; + } + if (!counterpart.getUUID().equals(portal.getLinkedPortalId()) || !portal.getUUID().equals(counterpart.getLinkedPortalId())) { + portal.linkTo(counterpart); + counterpart.linkTo(portal); + } + } + + @Override + public void saveAdditional(CompoundTag tag) { + super.saveAdditional(tag); + if (this.ownerId != null) { + tag.putUUID("OwnerId", this.ownerId); + } + if (this.portalId != null) { + tag.putUUID("PortalId", this.portalId); + } + if (this.linkedPortalId != null) { + tag.putUUID("LinkedPortalId", this.linkedPortalId); + } + tag.putInt("Side", this.side.ordinal()); + tag.putInt("Facing", this.facing.get3DDataValue()); + tag.putInt("UpAxis", this.upAxis.get3DDataValue()); + tag.putInt("BaseX", this.basePos.getX()); + tag.putInt("BaseY", this.basePos.getY()); + tag.putInt("BaseZ", this.basePos.getZ()); + tag.putInt("PairTime", this.pairTime); + ListTag spots = new ListTag(); + for (BlockPos portalSpot : this.portalSpots) { + CompoundTag spot = new CompoundTag(); + spot.putInt("X", portalSpot.getX()); + spot.putInt("Y", portalSpot.getY()); + spot.putInt("Z", portalSpot.getZ()); + spots.add(spot); + } + tag.put("PortalSpots", spots); + ListTag compensated = new ListTag(); + for (BlockPos compensatedSpot : this.compensatedSpots) { + CompoundTag spot = new CompoundTag(); + spot.putInt("X", compensatedSpot.getX()); + spot.putInt("Y", compensatedSpot.getY()); + spot.putInt("Z", compensatedSpot.getZ()); + compensated.add(spot); + } + tag.put("CompensatedSpots", compensated); + } + + @Override + public void load(CompoundTag tag) { + super.load(tag); + this.ownerId = tag.hasUUID("OwnerId") ? tag.getUUID("OwnerId") : null; + this.portalId = tag.hasUUID("PortalId") ? tag.getUUID("PortalId") : null; + this.linkedPortalId = tag.hasUUID("LinkedPortalId") ? tag.getUUID("LinkedPortalId") : null; + this.side = tag.getInt("Side") == PortalGunPortalEntity.PortalSide.ORANGE.ordinal() ? PortalGunPortalEntity.PortalSide.ORANGE : PortalGunPortalEntity.PortalSide.BLUE; + this.facing = Direction.from3DDataValue(tag.getInt("Facing")); + this.upAxis = Direction.from3DDataValue(tag.getInt("UpAxis")); + this.basePos = new BlockPos(tag.getInt("BaseX"), tag.getInt("BaseY"), tag.getInt("BaseZ")); + this.pairTime = tag.getInt("PairTime"); + ListTag spots = tag.getList("PortalSpots", Tag.TAG_COMPOUND); + for (int i = 0; i < Math.min(2, spots.size()); i++) { + CompoundTag spot = spots.getCompound(i); + this.portalSpots[i] = new BlockPos(spot.getInt("X"), spot.getInt("Y"), spot.getInt("Z")); + } + ListTag compensated = tag.getList("CompensatedSpots", Tag.TAG_COMPOUND); + Set compensatedSpots = new HashSet<>(); + for (int i = 0; i < compensated.size(); i++) { + CompoundTag spot = compensated.getCompound(i); + compensatedSpots.add(new BlockPos(spot.getInt("X"), spot.getInt("Y"), spot.getInt("Z"))); + } + this.compensatedSpots = compensatedSpots; + } + + @Override + public CompoundTag getUpdateTag() { + return this.saveWithoutMetadata(); + } + + @Override + public Packet getUpdatePacket() { + return ClientboundBlockEntityDataPacket.create(this); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/entity/RoyalEggBlockEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/entity/RoyalEggBlockEntity.java new file mode 100644 index 00000000..da7b46b6 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/entity/RoyalEggBlockEntity.java @@ -0,0 +1,42 @@ +package com.craisinlord.antarchy.content.block.entity; + +import com.craisinlord.antarchy.content.AntarchyObjects; +import java.util.UUID; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.Nullable; + +public class RoyalEggBlockEntity extends BlockEntity { + @Nullable + private UUID placerUuid; + + public RoyalEggBlockEntity(BlockPos pos, BlockState state) { + super(AntarchyObjects.ROYAL_EGG_BLOCK_ENTITY.get(), pos, state); + } + + @Nullable + public UUID getPlacerUuid() { + return this.placerUuid; + } + + public void setPlacerUuid(@Nullable UUID placerUuid) { + this.placerUuid = placerUuid; + this.setChanged(); + } + + @Override + public void load(CompoundTag tag) { + super.load(tag); + this.placerUuid = tag.hasUUID("Placer") ? tag.getUUID("Placer") : null; + } + + @Override + public void saveAdditional(CompoundTag tag) { + super.saveAdditional(tag); + if (this.placerUuid != null) { + tag.putUUID("Placer", this.placerUuid); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/entity/VortexLensBlockEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/entity/VortexLensBlockEntity.java new file mode 100644 index 00000000..b55cf978 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/block/entity/VortexLensBlockEntity.java @@ -0,0 +1,158 @@ +package com.craisinlord.antarchy.content.block.entity; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.block.BluestoneSignalHelper; +import com.craisinlord.antarchy.content.block.VortexLensBlock; +import com.craisinlord.antarchy.content.entity.vortex.WindVortexEntity; +import java.util.UUID; +import java.util.function.Supplier; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; + +public class VortexLensBlockEntity extends BlockEntity { + private static final String ACTIVE_VORTEX_KEY = "ActiveVortex"; + private static final int LENS_VORTEX_REFRESH_DURATION = 40; + + @Nullable + private UUID activeVortexUuid; + private boolean refreshNow = true; + + public VortexLensBlockEntity(BlockPos pos, BlockState state, + Supplier> typeSupplier) { + super(typeSupplier.get(), pos, state); + } + + public static void serverTick(ServerLevel level, BlockPos pos, BlockState state, VortexLensBlockEntity blockEntity) { + blockEntity.tickLens(level, pos, state); + } + + public void refreshImmediately() { + this.refreshNow = true; + } + + public void removeActiveVortex() { + if (this.level instanceof ServerLevel serverLevel) { + WindVortexEntity vortex = this.getActiveVortex(serverLevel); + if (vortex != null) { + vortex.removeFromLens(); + } + } + this.activeVortexUuid = null; + this.setChanged(); + } + + private void tickLens(ServerLevel level, BlockPos pos, BlockState state) { + if (!this.refreshNow && (level.getGameTime() & 1L) == 1L) { + return; + } + this.refreshNow = false; + + int bluestoneSignal = BluestoneSignalHelper.getBestNeighborSignal(level, pos); + int redstoneSignal = level.getBestNeighborSignal(pos); + boolean pushMode = bluestoneSignal > 0; + int signal = pushMode ? bluestoneSignal : redstoneSignal; + + if (signal <= 0) { + this.removeActiveVortex(); + this.updateBlockState(level, pos, state, false, false); + return; + } + + WindVortexEntity vortex = this.getOrCreateVortex(level, pos, state); + if (vortex == null) { + return; + } + + Direction facing = state.getValue(VortexLensBlock.FACING); + double signalScale = Mth.clamp(signal / 15.0D, 0.0D, 1.0D); + double radius = Mth.lerp(signalScale, AntarchySettings.vortexLensMinRadius(), AntarchySettings.vortexLensMaxRadius()); + double height = Mth.lerp(signalScale, AntarchySettings.vortexLensMinHeight(), AntarchySettings.vortexLensMaxHeight()); + Vec3 axis = Vec3.atLowerCornerOf(facing.getNormal()); + Vec3 origin = Vec3.atCenterOf(pos).add(axis.scale(0.65D)); + WindVortexEntity.VortexMode mode = pushMode ? WindVortexEntity.VortexMode.LENS_PUSH : WindVortexEntity.VortexMode.LENS_PULL; + double strength = pushMode ? AntarchySettings.vortexLensPushStrength() : AntarchySettings.vortexLensPullStrength(); + + vortex.setPos(origin.x, origin.y, origin.z); + vortex.setDeltaMovement(Vec3.ZERO); + vortex.setAxis(facing); + vortex.setMode(mode); + vortex.setVortexSize((float) height, (float) radius); + vortex.setVortexDurationTicks(LENS_VORTEX_REFRESH_DURATION); + vortex.resetVortexAge(); + vortex.setVortexStrengths(strength, AntarchySettings.vortexLensLaunchStrength()); + vortex.setDamaging(false); + this.updateBlockState(level, pos, state, true, pushMode); + } + + @Nullable + private WindVortexEntity getOrCreateVortex(ServerLevel level, BlockPos pos, BlockState state) { + WindVortexEntity vortex = this.getActiveVortex(level); + if (vortex != null) { + return vortex; + } + + Direction facing = state.getValue(VortexLensBlock.FACING); + Vec3 axis = Vec3.atLowerCornerOf(facing.getNormal()); + Vec3 origin = Vec3.atCenterOf(pos).add(axis.scale(0.65D)); + vortex = WindVortexEntity.create(level, AntarchyObjects.WIND_VORTEX.get(), origin, Vec3.ZERO, null, false); + vortex.setAxis(facing); + vortex.setMode(WindVortexEntity.VortexMode.LENS_PULL); + vortex.setVortexDurationTicks(LENS_VORTEX_REFRESH_DURATION); + vortex.resetVortexAge(); + level.addFreshEntity(vortex); + this.activeVortexUuid = vortex.getUUID(); + this.setChanged(); + return vortex; + } + + @Nullable + private WindVortexEntity getActiveVortex(ServerLevel level) { + if (this.activeVortexUuid == null) { + return null; + } + Entity entity = level.getEntity(this.activeVortexUuid); + if (entity instanceof WindVortexEntity vortex && vortex.isAlive()) { + return vortex; + } + this.activeVortexUuid = null; + this.setChanged(); + return null; + } + + private void updateBlockState(ServerLevel level, BlockPos pos, BlockState state, boolean powered, boolean pushing) { + if (!(state.getBlock() instanceof VortexLensBlock)) { + return; + } + if (state.getValue(VortexLensBlock.POWERED) != powered || state.getValue(VortexLensBlock.PUSHING) != pushing) { + level.setBlock(pos, + state.setValue(VortexLensBlock.POWERED, powered).setValue(VortexLensBlock.PUSHING, pushing), + Block.UPDATE_CLIENTS); + } + } + + @Override + public void saveAdditional(CompoundTag tag) { + super.saveAdditional(tag); + if (this.activeVortexUuid != null) { + tag.putUUID(ACTIVE_VORTEX_KEY, this.activeVortexUuid); + } + } + + @Override + public void load(CompoundTag tag) { + super.load(tag); + this.activeVortexUuid = tag.hasUUID(ACTIVE_VORTEX_KEY) ? tag.getUUID(ACTIVE_VORTEX_KEY) : null; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/ClientTimeDilationTicker.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/ClientTimeDilationTicker.java new file mode 100644 index 00000000..ae2c4a96 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/ClientTimeDilationTicker.java @@ -0,0 +1,146 @@ +package com.craisinlord.antarchy.content.client; + +import com.craisinlord.antarchy.content.time.TimeDilationFieldSnapshot; +import com.craisinlord.antarchy.content.time.TimeDilationFieldSnapshotSampler; +import com.craisinlord.antarchy.content.time.TimeDilationMath; +import java.util.List; +import java.util.Map; +import java.util.WeakHashMap; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.util.Mth; + +public final class ClientTimeDilationTicker { + private static volatile List activeFields = List.of(); + private static ClientLevel activeLevel; + private static final Map ITEM_SPIN_STATES = new WeakHashMap<>(); + private static final Map ATTACK_ANIMATION_STATES = new WeakHashMap<>(); + private static final Map ANIMATION_CLOCKS = new WeakHashMap<>(); + + private ClientTimeDilationTicker() { + } + + public static void tick(ClientLevel level) { + if (activeLevel != level) { + activeLevel = level; + activeFields = List.of(); + ITEM_SPIN_STATES.clear(); + ATTACK_ANIMATION_STATES.clear(); + ANIMATION_CLOCKS.clear(); + com.craisinlord.antarchy.content.time.TimeDilationApi.clearSyncedClientRates(); + } + } + + public static float dilateAnimationTime(Entity entity, float vanillaTime) { + double rate = com.craisinlord.antarchy.content.time.TimeDilationApi.getRate(entity); + if (rate >= TimeDilationMath.NORMAL_RATE) { + ANIMATION_CLOCKS.remove(entity); + return vanillaTime; + } + AnimationClockState state = ANIMATION_CLOCKS.computeIfAbsent(entity, + ignored -> new AnimationClockState(vanillaTime)); + float delta = vanillaTime - state.lastVanillaTime; + if (delta >= 0.0F) { + state.temporalTime += delta * (float) rate; + } + state.lastVanillaTime = vanillaTime; + return state.temporalTime; + } + + public static float dilateAttackAnimation(LivingEntity entity, float partialTick, float vanillaAnimation) { + double rate = com.craisinlord.antarchy.content.time.TimeDilationApi.getRate(entity); + if (rate >= TimeDilationMath.NORMAL_RATE) { + ATTACK_ANIMATION_STATES.remove(entity); + return vanillaAnimation; + } + AttackAnimationState state = ATTACK_ANIMATION_STATES.computeIfAbsent( + entity, ignored -> new AttackAnimationState(entity.tickCount, vanillaAnimation) + ); + if (state.lastTick != entity.tickCount) { + state.previous = state.current; + state.current += (vanillaAnimation - state.current) * (float) rate; + state.lastTick = entity.tickCount; + } + return state.previous + (state.current - state.previous) * partialTick; + } + + public static float dilateRotation(LivingEntity entity, float previous, float current, float partialTick) { + double rate = com.craisinlord.antarchy.content.time.TimeDilationApi.getRate(entity); + if (rate >= TimeDilationMath.NORMAL_RATE) { + return Mth.rotLerp(partialTick, previous, current); + } + return previous + Mth.wrapDegrees(current - previous) * partialTick * (float) rate; + } + + public static float dilatePitch(LivingEntity entity, float previous, float current, float partialTick) { + double rate = com.craisinlord.antarchy.content.time.TimeDilationApi.getRate(entity); + if (rate >= TimeDilationMath.NORMAL_RATE) { + return Mth.lerp(partialTick, previous, current); + } + return previous + (current - previous) * partialTick * (float) rate; + } + + public static float dilateWalkAmount(LivingEntity entity, float amount) { + double rate = com.craisinlord.antarchy.content.time.TimeDilationApi.getRate(entity); + return rate >= TimeDilationMath.NORMAL_RATE ? amount : amount * (float) rate; + } + + public static float dilateItemSpin(ItemEntity item, float vanillaSpin) { + double rate = com.craisinlord.antarchy.content.time.TimeDilationApi.getRate(item); + if (rate >= TimeDilationMath.NORMAL_RATE) { + ITEM_SPIN_STATES.remove(item); + return vanillaSpin; + } + ItemSpinState state = ITEM_SPIN_STATES.computeIfAbsent(item, ignored -> new ItemSpinState(vanillaSpin)); + float rawDelta = vanillaSpin - state.lastVanillaSpin; + state.lastVanillaSpin = vanillaSpin; + state.temporalSpin += rawDelta * (float) rate; + return state.temporalSpin; + } + + private static final class ItemSpinState { + private float lastVanillaSpin; + private float temporalSpin; + + private ItemSpinState(float initialSpin) { + this.lastVanillaSpin = initialSpin; + this.temporalSpin = initialSpin; + } + } + + private static final class AttackAnimationState { + private int lastTick; + private float previous; + private float current; + + private AttackAnimationState(int tick, float initial) { + this.lastTick = tick; + this.previous = initial; + this.current = initial; + } + } + + private static final class AnimationClockState { + private float lastVanillaTime; + private float temporalTime; + + private AnimationClockState(float initialTime) { + this.lastVanillaTime = initialTime; + this.temporalTime = initialTime; + } + } + + public static double rateAt(double x, double y, double z) { + List fields = activeFields; + if (fields.isEmpty()) { + return TimeDilationMath.NORMAL_RATE; + } + return TimeDilationFieldSnapshotSampler.sample(fields, x, y, z); + } + + public static void applyFields(List fields) { + activeFields = List.copyOf(fields); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/ContractionAfterimages.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/ContractionAfterimages.java new file mode 100644 index 00000000..4393b561 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/ContractionAfterimages.java @@ -0,0 +1,62 @@ +package com.craisinlord.antarchy.content.client; + +import com.craisinlord.antarchy.content.effect.RoyalEffectHooks; +import java.util.ArrayDeque; +import java.util.Deque; +import java.util.Iterator; +import java.util.Map; +import java.util.WeakHashMap; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.effect.MobEffect; + +public final class ContractionAfterimages { + public static final int MAX_SAMPLES = 10; + public static final int SAMPLE_LIFETIME_TICKS = 13; + private static final Map> HISTORY = new WeakHashMap<>(); + + private ContractionAfterimages() {} + + public static void tick(ClientLevel level) { + MobEffect contracted = RoyalEffectHooks.contractedHolder(); + int now = (int) (level.getGameTime() & 0x7fffffffL); + Iterator>> iterator = HISTORY.entrySet().iterator(); + while (iterator.hasNext()) { + LivingEntity tracked = iterator.next().getKey(); + if (tracked == null || tracked.isRemoved() || !tracked.isAlive() || contracted == null + || !tracked.hasEffect(contracted)) { + iterator.remove(); + } + } + if (contracted == null) return; + for (Entity entity : level.entitiesForRendering()) { + if (!(entity instanceof LivingEntity living) || living.isInvisible() || !living.hasEffect(contracted)) continue; + Deque samples = HISTORY.computeIfAbsent(living, ignored -> new ArrayDeque<>()); + samples.addFirst(new Sample(living, now)); + while (samples.size() > MAX_SAMPLES) samples.removeLast(); + } + } + + public static Deque samples(LivingEntity entity) { return HISTORY.get(entity); } + + public static float fade(Sample sample, int now) { + return Math.max(0.0F, 1.0F - (now - sample.recordedTick) / (float) SAMPLE_LIFETIME_TICKS); + } + + public static void clear() { HISTORY.clear(); } + + public static final class Sample { + public final double x, y, z; + public final float bodyYaw, headYaw, xRot, limbPos, limbSpeed, ageInTicks; + public final int recordedTick; + + Sample(LivingEntity entity, int recordedTick) { + this.x = entity.getX(); this.y = entity.getY(); this.z = entity.getZ(); + this.bodyYaw = entity.yBodyRot; this.headYaw = entity.getYHeadRot(); this.xRot = entity.getXRot(); + this.limbPos = entity.walkAnimation.position(); + this.limbSpeed = Math.min(entity.walkAnimation.speed(), 1.0F); + this.ageInTicks = entity.tickCount; this.recordedTick = recordedTick; + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/HoverboardTrailSystem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/HoverboardTrailSystem.java new file mode 100644 index 00000000..6b5c1c0d --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/HoverboardTrailSystem.java @@ -0,0 +1,294 @@ +package com.craisinlord.antarchy.content.client; + +import com.craisinlord.antarchy.content.entity.HoverboardEntity; +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.Tesselator; +import com.mojang.blaze3d.vertex.VertexFormat; +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.item.DyeColor; +import net.minecraft.world.phys.Vec3; +import org.joml.Matrix4f; + +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; + +public final class HoverboardTrailSystem { + private static final int MAX_TRAIL_POINTS = 18; + private static final int TRAIL_LIFETIME_TICKS = 12; + private static final float CORE_HALF_WIDTH = 0.0225f; + private static final float GLOW_HALF_WIDTH = 0.055f; + private static final double MIN_DISTANCE_BETWEEN_POINTS = 0.04D; + private static final double LATERAL_OFFSET = 0.5275D; + private static final double REAR_OFFSET = 0.77D; + private static final double HEIGHT_OFFSET = 0.14D; + private static final float[] DEFAULT_COLOR = rgb(0xC9A0FF); + + private static final Map TRAILS = new HashMap<>(); + + private HoverboardTrailSystem() { + } + + private static final class TrailPoint { + final Vec3 pos; + int age; + + TrailPoint(Vec3 pos) { + this.pos = pos; + } + + float progress() { + return (float) this.age / (float) TRAIL_LIFETIME_TICKS; + } + + boolean expired() { + return this.age >= TRAIL_LIFETIME_TICKS; + } + } + + private static final class BoardTrails { + final ArrayDeque left = new ArrayDeque<>(); + final ArrayDeque right = new ArrayDeque<>(); + float[] color = DEFAULT_COLOR; + } + + public static void tick() { + Minecraft mc = Minecraft.getInstance(); + if (mc.level == null) { + TRAILS.clear(); + return; + } + if (mc.isPaused()) { + return; + } + + Set activeIds = new HashSet<>(); + for (Entity entity : mc.level.entitiesForRendering()) { + if (!(entity instanceof HoverboardEntity hoverboard)) { + continue; + } + + int id = hoverboard.getId(); + activeIds.add(id); + BoardTrails boardTrails = TRAILS.computeIfAbsent(id, ignored -> new BoardTrails()); + boardTrails.color = colorFor(hoverboard.getColor()); + + if (hoverboard.isVehicle() && hoverboard.isTrailActive()) { + TrailAnchors anchors = trailAnchors(hoverboard); + addPoint(boardTrails.left, anchors.left()); + addPoint(boardTrails.right, anchors.right()); + } + + age(boardTrails.left); + age(boardTrails.right); + if (boardTrails.left.isEmpty() && boardTrails.right.isEmpty() && !hoverboard.isTrailActive()) { + TRAILS.remove(id); + } + } + + TRAILS.keySet().removeIf(id -> !activeIds.contains(id)); + } + + public static void render(Camera camera, Matrix4f mat) { + if (TRAILS.isEmpty()) { + return; + } + + Minecraft mc = Minecraft.getInstance(); + if (mc.level == null) { + return; + } + + Vec3 camPos = camera.getPosition(); + List snapshots = new ArrayList<>(TRAILS.size() * 2); + for (BoardTrails boardTrails : TRAILS.values()) { + if (boardTrails.left.size() >= 2) { + snapshots.add(new TrailSnapshot(new ArrayList<>(boardTrails.left), boardTrails.color)); + } + if (boardTrails.right.size() >= 2) { + snapshots.add(new TrailSnapshot(new ArrayList<>(boardTrails.right), boardTrails.color)); + } + } + + if (snapshots.isEmpty()) { + return; + } + + RenderSystem.enableBlend(); + RenderSystem.defaultBlendFunc(); + RenderSystem.depthMask(false); + RenderSystem.disableCull(); + RenderSystem.setShader(GameRenderer::getPositionColorShader); + + Tesselator tesselator = Tesselator.getInstance(); + + BufferBuilder glowBuf = tesselator.getBuilder(); + glowBuf.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); + for (TrailSnapshot snapshot : snapshots) { + buildPass(glowBuf, mat, snapshot.points(), snapshot.color(), camPos, true); + } + BufferBuilder.RenderedBuffer glowMesh = glowBuf.end(); + if (glowMesh != null) { + BufferUploader.drawWithShader(glowMesh); + } + + BufferBuilder coreBuf = tesselator.getBuilder(); + coreBuf.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); + for (TrailSnapshot snapshot : snapshots) { + buildPass(coreBuf, mat, snapshot.points(), snapshot.color(), camPos, false); + } + BufferBuilder.RenderedBuffer coreMesh = coreBuf.end(); + if (coreMesh != null) { + BufferUploader.drawWithShader(coreMesh); + } + + RenderSystem.enableCull(); + RenderSystem.depthMask(true); + RenderSystem.disableBlend(); + } + + private static void addPoint(ArrayDeque points, Vec3 pos) { + if (points.isEmpty()) { + points.addFirst(new TrailPoint(pos)); + return; + } + if (points.peekFirst().pos.distanceToSqr(pos) < MIN_DISTANCE_BETWEEN_POINTS * MIN_DISTANCE_BETWEEN_POINTS) { + return; + } + points.addFirst(new TrailPoint(pos)); + while (points.size() > MAX_TRAIL_POINTS) { + points.pollLast(); + } + } + + private static void age(ArrayDeque points) { + Iterator iterator = points.iterator(); + while (iterator.hasNext()) { + TrailPoint point = iterator.next(); + point.age++; + if (point.expired()) { + iterator.remove(); + } + } + } + + private static TrailAnchors trailAnchors(HoverboardEntity hoverboard) { + float yawRad = hoverboard.getYRot() * Mth.DEG_TO_RAD; + Vec3 forward = new Vec3(-Mth.sin(yawRad), 0.0D, Mth.cos(yawRad)); + if (forward.lengthSqr() < 1.0E-6D) { + forward = new Vec3(0.0D, 0.0D, 1.0D); + } + forward = forward.normalize(); + Vec3 right = new Vec3(forward.z, 0.0D, -forward.x); + Vec3 center = hoverboard.position().add(0.0D, HEIGHT_OFFSET, 0.0D).subtract(forward.scale(REAR_OFFSET)); + return new TrailAnchors(center.subtract(right.scale(LATERAL_OFFSET)), center.add(right.scale(LATERAL_OFFSET))); + } + + private static void buildPass(BufferBuilder buf, Matrix4f mat, List points, float[] color, Vec3 camPos, boolean glow) { + int n = points.size(); + for (int i = 0; i < n - 1; i++) { + TrailPoint newer = points.get(i); + TrailPoint older = points.get(i + 1); + + float alphaNearer = (glow ? 0.34f : 0.78f) * indexAlpha(i, n) * (1.0f - newer.progress()); + float alphaFarther = (glow ? 0.34f : 0.78f) * indexAlpha(i + 1, n) * (1.0f - older.progress()); + if (alphaNearer < 0.005f && alphaFarther < 0.005f) { + continue; + } + + Vec3 right = cameraFacingRight(newer.pos, older.pos, camPos); + if (right == null) { + continue; + } + + right = right.scale(glow ? GLOW_HALF_WIDTH : CORE_HALF_WIDTH); + Vec3 na = newer.pos.subtract(camPos); + Vec3 nb = older.pos.subtract(camPos); + + buf.vertex(mat, (float) (na.x + right.x), (float) (na.y + right.y), (float) (na.z + right.z)).color(color[0], color[1], color[2], alphaNearer).endVertex(); + buf.vertex(mat, (float) (na.x - right.x), (float) (na.y - right.y), (float) (na.z - right.z)).color(color[0], color[1], color[2], alphaNearer).endVertex(); + buf.vertex(mat, (float) (nb.x - right.x), (float) (nb.y - right.y), (float) (nb.z - right.z)).color(color[0], color[1], color[2], alphaFarther).endVertex(); + buf.vertex(mat, (float) (nb.x + right.x), (float) (nb.y + right.y), (float) (nb.z + right.z)).color(color[0], color[1], color[2], alphaFarther).endVertex(); + } + } + + private static Vec3 cameraFacingRight(Vec3 a, Vec3 b, Vec3 camPos) { + Vec3 segDir = b.subtract(a); + if (segDir.lengthSqr() < 1.0E-12D) { + return null; + } + segDir = segDir.normalize(); + Vec3 mid = a.add(b).scale(0.5D); + Vec3 toCamera = camPos.subtract(mid); + if (toCamera.lengthSqr() < 1.0E-12D) { + return null; + } + toCamera = toCamera.normalize(); + Vec3 right = segDir.cross(toCamera); + if (right.lengthSqr() < 1.0E-10D) { + right = segDir.cross(new Vec3(0.0D, 1.0D, 0.0D)); + if (right.lengthSqr() < 1.0E-10D) { + return null; + } + } + return right.normalize(); + } + + private static float indexAlpha(int i, int n) { + if (n <= 1) { + return 1.0f; + } + return 1.0f - (float) i / (float) (n - 1); + } + + private static float[] colorFor(DyeColor color) { + if (color == null) { + return DEFAULT_COLOR; + } + return switch (color) { + case PURPLE -> rgb(0x00FF3C); + case WHITE -> rgb(0xFF1919); + case ORANGE -> rgb(0x33CCFF); + case LIGHT_BLUE -> rgb(0xFF8A00); + case YELLOW -> rgb(0xB026FF); + case PINK -> rgb(0x66E0FF); + case LIME -> rgb(0xFF00E6); + case GRAY -> rgb(0xFF9F4D); + case LIGHT_GRAY -> rgb(0x9BFF1A); + case BLUE -> rgb(0x2ED9A0); + case BROWN -> rgb(0x66C6FF); + case GREEN -> rgb(0xFF3B1F); + case RED -> rgb(0xFF7A00); + case BLACK -> rgb(0xFFFFFF); + case MAGENTA -> rgb(0x00E5FF); + case CYAN -> rgb(0xFF3DDB); + }; + } + + private static float[] rgb(int color) { + return new float[] { + ((color >> 16) & 255) / 255.0f, + ((color >> 8) & 255) / 255.0f, + (color & 255) / 255.0f + }; + } + + private record TrailAnchors(Vec3 left, Vec3 right) { + } + + private record TrailSnapshot(List points, float[] color) { + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunEntityTransformationStack.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunEntityTransformationStack.java new file mode 100644 index 00000000..2fc79ae4 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunEntityTransformationStack.java @@ -0,0 +1,101 @@ +package com.craisinlord.antarchy.content.client; + +import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity; +import com.craisinlord.antarchy.content.portalgun.PortalGunTransformUtil; +import java.util.ArrayDeque; +import java.util.Deque; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.phys.Vec3; + +public final class PortalGunEntityTransformationStack { + private final Entity entity; + private final Deque stack = new ArrayDeque<>(); + + public PortalGunEntityTransformationStack(Entity entity) { + this.entity = entity; + } + + public void push() { + this.stack.push(EntityTransformation.capture(this.entity)); + } + + public void pop() { + if (!this.stack.isEmpty()) { + this.stack.pop().restore(this.entity); + } + } + + public Vec3 moveEntity(PortalGunPortalEntity sourcePortal, PortalGunPortalEntity destinationPortal, float partialTick) { + Vec3 interpolated = new Vec3( + net.minecraft.util.Mth.lerp(partialTick, this.entity.xo, this.entity.getX()), + net.minecraft.util.Mth.lerp(partialTick, this.entity.yo, this.entity.getY()), + net.minecraft.util.Mth.lerp(partialTick, this.entity.zo, this.entity.getZ()) + ); + Vec3 previous = new Vec3(this.entity.xo, this.entity.yo, this.entity.zo); + Vec3 transformed = destinationPortal.position().add(PortalGunTransformUtil.transformPosition(sourcePortal, destinationPortal, interpolated.subtract(sourcePortal.position()))); + Vec3 transformedPrevious = destinationPortal.position().add(PortalGunTransformUtil.transformPosition(sourcePortal, destinationPortal, previous.subtract(sourcePortal.position()))); + Vec3 look = PortalGunTransformUtil.transformVector(sourcePortal, destinationPortal, this.entity.getLookAngle()).normalize(); + Vec3 velocity = PortalGunTransformUtil.transformVector(sourcePortal, destinationPortal, this.entity.getDeltaMovement()); + float yaw = PortalGunTransformUtil.yawFromLook(look); + float pitch = PortalGunTransformUtil.pitchFromLook(look); + this.entity.setPos(transformed.x, transformed.y, transformed.z); + this.entity.xo = transformedPrevious.x; + this.entity.yo = transformedPrevious.y; + this.entity.zo = transformedPrevious.z; + this.entity.setYRot(yaw); + this.entity.setXRot(pitch); + this.entity.yRotO = yaw; + this.entity.xRotO = pitch; + this.entity.setDeltaMovement(velocity); + if (this.entity instanceof LivingEntity living) { + living.setYHeadRot(yaw); + living.setYBodyRot(yaw); + } + return transformed; + } + + public void reset() { + while (!this.stack.isEmpty()) { + this.pop(); + } + } + + private record EntityTransformation( + double x, + double y, + double z, + double xo, + double yo, + double zo, + float yRot, + float xRot, + float yRotO, + float xRotO, + float yHeadRot, + float yBodyRot, + Vec3 deltaMovement + ) { + private static EntityTransformation capture(Entity entity) { + float yHeadRot = entity instanceof LivingEntity living ? living.getYHeadRot() : entity.getYRot(); + float yBodyRot = entity instanceof LivingEntity living ? living.yBodyRot : entity.getYRot(); + return new EntityTransformation(entity.getX(), entity.getY(), entity.getZ(), entity.xo, entity.yo, entity.zo, entity.getYRot(), entity.getXRot(), entity.yRotO, entity.xRotO, yHeadRot, yBodyRot, entity.getDeltaMovement()); + } + + private void restore(Entity entity) { + entity.setPos(this.x, this.y, this.z); + entity.xo = this.xo; + entity.yo = this.yo; + entity.zo = this.zo; + entity.setYRot(this.yRot); + entity.setXRot(this.xRot); + entity.yRotO = this.yRotO; + entity.xRotO = this.xRotO; + entity.setDeltaMovement(this.deltaMovement); + if (entity instanceof LivingEntity living) { + living.setYHeadRot(this.yHeadRot); + living.setYBodyRot(this.yBodyRot); + } + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunPortalRenderState.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunPortalRenderState.java new file mode 100644 index 00000000..6b3b3f94 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunPortalRenderState.java @@ -0,0 +1,139 @@ +package com.craisinlord.antarchy.content.client; + +import com.craisinlord.antarchy.content.portalgun.PortalGunWorldPortalShape; +import java.util.ArrayDeque; +import java.util.Deque; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import org.joml.Matrix4f; + +public final class PortalGunPortalRenderState { + private static final ThreadLocal> ACTIVE_DESTINATION_SHAPES = ThreadLocal.withInitial(ArrayDeque::new); + private static final ThreadLocal> ACTIVE_SOURCE_SHAPES = ThreadLocal.withInitial(ArrayDeque::new); + private static final ThreadLocal> ACTIVE_CONTEXTS = ThreadLocal.withInitial(ArrayDeque::new); + private static final ThreadLocal RENDER_ALL_DEPTH = ThreadLocal.withInitial(() -> 0); + + private PortalGunPortalRenderState() { + } + + public static void pushPortalView(PortalGunWorldPortalShape sourceShape, PortalGunWorldPortalShape destinationShape, boolean renderAll) { + ACTIVE_SOURCE_SHAPES.get().push(sourceShape); + ACTIVE_DESTINATION_SHAPES.get().push(destinationShape); + if (renderAll) { + RENDER_ALL_DEPTH.set(RENDER_ALL_DEPTH.get() + 1); + } + } + + public static void pushPortalView(PortalRenderContext context) { + ACTIVE_CONTEXTS.get().push(context); + pushPortalView(context.sourceShape(), context.destinationShape(), context.renderAll()); + } + + public static void popPortalView(boolean renderAll) { + Deque sourceShapes = ACTIVE_SOURCE_SHAPES.get(); + if (!sourceShapes.isEmpty()) { + sourceShapes.pop(); + } + if (sourceShapes.isEmpty()) { + ACTIVE_SOURCE_SHAPES.remove(); + } + Deque destinationShapes = ACTIVE_DESTINATION_SHAPES.get(); + if (!destinationShapes.isEmpty()) { + destinationShapes.pop(); + } + if (destinationShapes.isEmpty()) { + ACTIVE_DESTINATION_SHAPES.remove(); + } + if (renderAll) { + int depth = Math.max(0, RENDER_ALL_DEPTH.get() - 1); + if (depth == 0) { + RENDER_ALL_DEPTH.remove(); + } else { + RENDER_ALL_DEPTH.set(depth); + } + } + Deque contexts = ACTIVE_CONTEXTS.get(); + if (!contexts.isEmpty()) { + contexts.pop(); + } + if (contexts.isEmpty()) { + ACTIVE_CONTEXTS.remove(); + } + } + + public static void pushDestinationShape(PortalGunWorldPortalShape shape) { + ACTIVE_DESTINATION_SHAPES.get().push(shape); + } + + public static void popDestinationShape() { + Deque shapes = ACTIVE_DESTINATION_SHAPES.get(); + if (!shapes.isEmpty()) { + shapes.pop(); + } + if (shapes.isEmpty()) { + ACTIVE_DESTINATION_SHAPES.remove(); + } + } + + public static PortalGunWorldPortalShape getDestinationShape() { + Deque shapes = ACTIVE_DESTINATION_SHAPES.get(); + return shapes.isEmpty() ? null : shapes.peek(); + } + + public static PortalGunWorldPortalShape getSourceShape() { + Deque shapes = ACTIVE_SOURCE_SHAPES.get(); + return shapes.isEmpty() ? null : shapes.peek(); + } + + public static PortalRenderContext getContext() { + Deque contexts = ACTIVE_CONTEXTS.get(); + return contexts.isEmpty() ? null : contexts.peek(); + } + + public static int getRenderLevel() { + return ACTIVE_CONTEXTS.get().size(); + } + + public static boolean renderAll() { + return RENDER_ALL_DEPTH.get() > 0; + } + + public static boolean shouldRenderBounds(AABB bounds) { + if (renderAll()) { + return true; + } + PortalRenderContext context = getContext(); + if (context == null) { + PortalGunWorldPortalShape destinationShape = getDestinationShape(); + PortalGunWorldPortalShape sourceShape = getSourceShape(); + return destinationShape == null || shouldRenderBounds(bounds, sourceShape, destinationShape, false); + } + return shouldRenderBounds(bounds, context.sourceShape(), context.destinationShape(), context.renderAll()); + } + + private static boolean shouldRenderBounds(AABB bounds, PortalGunWorldPortalShape sourceShape, PortalGunWorldPortalShape destinationShape, boolean renderAll) { + if (renderAll) { + return true; + } + if (!destinationShape.intersectsFront(bounds, 0.125D)) { + return false; + } + if (!destinationShape.intersectsPortalColumn(bounds, 1.5D, 1.5D, destinationShape.halfDepth() + 96.0D)) { + return false; + } + return sourceShape == null || !sourceShape.intersectsFront(bounds, -0.02D); + } + + public record PortalRenderContext( + PortalGunWorldPortalShape sourceShape, + PortalGunWorldPortalShape destinationShape, + Vec3 cameraPos, + Vec3 look, + Vec3 up, + Matrix4f viewMatrix, + Matrix4f projectionMatrix, + int renderLevel, + boolean renderAll + ) { + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunRollClientState.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunRollClientState.java new file mode 100644 index 00000000..84e38223 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunRollClientState.java @@ -0,0 +1,123 @@ +package com.craisinlord.antarchy.content.client; + +import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity; +import com.craisinlord.antarchy.content.portalgun.PortalGunTransformUtil; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import net.minecraft.client.Minecraft; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.phys.Vec3; + +public final class PortalGunRollClientState { + private static final int TELEPORT_COOLDOWN_TICKS = 40; + private static final float ROLL_DECAY = 0.85F; + private static final float ROLL_EPSILON = 0.05F; + private static final Map TELEPORT_COOLDOWNS = new HashMap<>(); + private static float previousRollDegrees; + private static float rollDegrees; + + private PortalGunRollClientState() { + } + + public static float getRollDegrees() { + return rollDegrees; + } + + public static float getRollDegrees(float partialTick) { + return previousRollDegrees + (rollDegrees - previousRollDegrees) * partialTick; + } + + public static boolean isEntityInsidePortal(Minecraft minecraft, Entity entity) { + if (minecraft.level == null || entity == null) { + return false; + } + for (Entity renderEntity : minecraft.level.entitiesForRendering()) { + if (renderEntity instanceof PortalGunPortalEntity portal && portal.isAlive() && portal.intersectsEntityBounds(entity)) { + return true; + } + } + return false; + } + + public static boolean isCameraInsidePortal(Minecraft minecraft) { + Entity cameraEntity = minecraft.getCameraEntity(); + return cameraEntity != null && isEntityInsidePortal(minecraft, cameraEntity); + } + + public static void clear() { + previousRollDegrees = 0.0F; + rollDegrees = 0.0F; + TELEPORT_COOLDOWNS.clear(); + } + + public static void tick(Minecraft minecraft) { + if (minecraft.level == null || minecraft.player == null) { + clear(); + return; + } + Entity cameraEntity = minecraft.getCameraEntity(); + if (cameraEntity == null) { + return; + } + previousRollDegrees = rollDegrees; + rollDegrees *= ROLL_DECAY; + if (Math.abs(rollDegrees) < ROLL_EPSILON) { + rollDegrees = 0.0F; + } + long gameTime = minecraft.level.getGameTime(); + TELEPORT_COOLDOWNS.entrySet().removeIf(entry -> entry.getValue() <= gameTime); + for (Entity entity : minecraft.level.entitiesForRendering()) { + if (!(entity instanceof PortalGunPortalEntity portal) || !portal.isAlive()) { + continue; + } + PortalGunPortalEntity linkedPortal = portal.getLinkedPortal(); + if (linkedPortal == null || !linkedPortal.isAlive()) { + continue; + } + if (!portal.shouldRenderFront(cameraEntity.position())) { + continue; + } + if (!canTeleport(cameraEntity, gameTime)) { + continue; + } + Vec3 crossingProbe = portal.resolveCrossingProbe(cameraEntity); + if (crossingProbe == null) { + continue; + } + applyPredictedTeleport(cameraEntity, portal, linkedPortal, crossingProbe, gameTime); + break; + } + } + + private static boolean canTeleport(Entity entity, long gameTime) { + if (!entity.isAlive() || entity instanceof PortalGunPortalEntity || entity.isPassenger() || entity.isVehicle()) { + return false; + } + long cooldownUntil = TELEPORT_COOLDOWNS.getOrDefault(entity.getUUID(), 0L); + return cooldownUntil <= gameTime; + } + + private static void applyPredictedTeleport(Entity entity, PortalGunPortalEntity sourcePortal, PortalGunPortalEntity destinationPortal, Vec3 currentProbe, long gameTime) { + Vec3 transformedLook = PortalGunTransformUtil.transformVector(sourcePortal, destinationPortal, entity.getLookAngle()).normalize(); + Vec3 transformedUp = PortalGunTransformUtil.transformVector(sourcePortal, destinationPortal, PortalGunTransformUtil.upVectorFromLookAndRoll(entity.getLookAngle(), rollDegrees)).normalize(); + Vec3 relativeProbe = currentProbe.subtract(sourcePortal.position()); + Vec3 transformedProbe = PortalGunTransformUtil.transformPosition(sourcePortal, destinationPortal, relativeProbe); + Vec3 transformedEntityOffset = PortalGunTransformUtil.transformVector(sourcePortal, destinationPortal, entity.position().subtract(currentProbe)); + Vec3 destinationNormal = destinationPortal.getNormalVec().normalize(); + double exitClearance = Math.max(0.35D, entity.getBbWidth() * 0.5D + 0.16D); + Vec3 exitProbe = destinationPortal.position().add(transformedProbe).add(destinationNormal.scale(exitClearance - transformedProbe.dot(destinationNormal))); + Vec3 exitPos = exitProbe.add(transformedEntityOffset); + Vec3 transformedMotion = PortalGunTransformUtil.transformVector(sourcePortal, destinationPortal, entity.getDeltaMovement()); + double outward = transformedMotion.dot(destinationNormal); + if (outward < 0.42D) { + transformedMotion = transformedMotion.add(destinationNormal.scale(0.42D - outward)); + } + rollDegrees = PortalGunTransformUtil.rollFromOrientation(transformedLook, transformedUp); + entity.teleportTo(exitPos.x, exitPos.y, exitPos.z); + entity.setDeltaMovement(transformedMotion); + entity.setYRot(PortalGunTransformUtil.yawFromLook(transformedLook)); + entity.setXRot(PortalGunTransformUtil.pitchFromLook(transformedLook)); + TELEPORT_COOLDOWNS.put(entity.getUUID(), gameTime + TELEPORT_COOLDOWN_TICKS); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/WormHookTetherClientState.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/WormHookTetherClientState.java new file mode 100644 index 00000000..17835eea --- /dev/null +++ b/common-1.20.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.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/HoverboardModel.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/HoverboardModel.java new file mode 100644 index 00000000..ad338afa --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/HoverboardModel.java @@ -0,0 +1,32 @@ +package com.craisinlord.antarchy.content.client.model; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.entity.HoverboardEntity; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.DyeColor; +import software.bernie.geckolib.model.GeoModel; + +public class HoverboardModel extends GeoModel { + private static final ResourceLocation MODEL = new ResourceLocation(Antarchy.MODID, "geo/hoverboard.geo.json"); + private static final ResourceLocation ANIMATION = new ResourceLocation(Antarchy.MODID, "animations/hoverboard.animation.json"); + private static final ResourceLocation BASE_TEXTURE = new ResourceLocation(Antarchy.MODID, "textures/entity/hoverboard/hoverboard.png"); + + @Override + public ResourceLocation getModelResource(HoverboardEntity animatable) { + return MODEL; + } + + @Override + public ResourceLocation getTextureResource(HoverboardEntity animatable) { + DyeColor color = animatable.getColor(); + if (color == null) { + return BASE_TEXTURE; + } + return new ResourceLocation(Antarchy.MODID, "textures/entity/hoverboard/hoverboard_" + color.getName() + ".png"); + } + + @Override + public ResourceLocation getAnimationResource(HoverboardEntity animatable) { + return ANIMATION; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/ManticoreModel.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/ManticoreModel.java new file mode 100644 index 00000000..88c1dc5b --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/ManticoreModel.java @@ -0,0 +1,23 @@ +package com.craisinlord.antarchy.content.client.model; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.entity.ManticoreEntity; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class ManticoreModel extends GeoModel { + @Override + public ResourceLocation getModelResource(ManticoreEntity animatable) { + return new ResourceLocation(Antarchy.MODID, "geo/manticore.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(ManticoreEntity animatable) { + return new ResourceLocation(Antarchy.MODID, "textures/entity/manticore.png"); + } + + @Override + public ResourceLocation getAnimationResource(ManticoreEntity animatable) { + return new ResourceLocation(Antarchy.MODID, "animations/manticore.animation.json"); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/PortalGunBlackHoleModel.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/PortalGunBlackHoleModel.java new file mode 100644 index 00000000..4ebc3947 --- /dev/null +++ b/common-1.20.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 = new ResourceLocation(Antarchy.MODID, "textures/vfx/portal_gun_black_hole.png"); + + @Override + public ResourceLocation getModelResource(PortalGunBlackHoleEntity animatable) { + return new ResourceLocation(Antarchy.MODID, "geo/portal_gun_portal.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(PortalGunBlackHoleEntity animatable) { + return TEXTURE; + } + + @Override + public ResourceLocation getAnimationResource(PortalGunBlackHoleEntity animatable) { + return new ResourceLocation(Antarchy.MODID, "animations/portal_gun_portal.animation.json"); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/PortalGunPortalModel.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/PortalGunPortalModel.java new file mode 100644 index 00000000..d5279b7a --- /dev/null +++ b/common-1.20.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 = new ResourceLocation(Antarchy.MODID, "textures/vfx/portal_gun_portal_blue.png"); + private static final ResourceLocation ORANGE_TEXTURE = new ResourceLocation(Antarchy.MODID, "textures/vfx/portal_gun_portal_orange.png"); + + @Override + public ResourceLocation getModelResource(PortalGunPortalEntity animatable) { + return new ResourceLocation(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 new ResourceLocation(Antarchy.MODID, "animations/portal_gun_portal.animation.json"); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/RoyalBlackHoleModel.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/RoyalBlackHoleModel.java new file mode 100644 index 00000000..2aa1babd --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/RoyalBlackHoleModel.java @@ -0,0 +1,23 @@ +package com.craisinlord.antarchy.content.client.model; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.entity.royal.RoyalBlackHoleEntity; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class RoyalBlackHoleModel extends GeoModel { + @Override + public ResourceLocation getModelResource(T animatable) { + return new ResourceLocation(Antarchy.MODID, "geo/black_hole.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(T animatable) { + return new ResourceLocation(Antarchy.MODID, "textures/entity/queen/black_hole.png"); + } + + @Override + public ResourceLocation getAnimationResource(T animatable) { + return new ResourceLocation(Antarchy.MODID, "animations/black_hole.animation.json"); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/RoyalBossModel.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/RoyalBossModel.java new file mode 100644 index 00000000..87852b28 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/RoyalBossModel.java @@ -0,0 +1,24 @@ +package com.craisinlord.antarchy.content.client.model; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.entity.royal.RoyalBossEntity; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class RoyalBossModel extends GeoModel { + @Override + public ResourceLocation getModelResource(RoyalBossEntity animatable) { + return new ResourceLocation(Antarchy.MODID, "geo/" + animatable.geoNameForRender() + ".geo.json"); + } + + @Override + public ResourceLocation getTextureResource(RoyalBossEntity animatable) { + String name = animatable.geoNameForRender(); + return new ResourceLocation(Antarchy.MODID, "textures/entity/" + name + "/" + name + ".png"); + } + + @Override + public ResourceLocation getAnimationResource(RoyalBossEntity animatable) { + return new ResourceLocation(Antarchy.MODID, "animations/" + animatable.geoNameForRender() + ".animation.json"); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/RoyalElementalProjectileModel.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/RoyalElementalProjectileModel.java new file mode 100644 index 00000000..bb327a57 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/RoyalElementalProjectileModel.java @@ -0,0 +1,26 @@ +package com.craisinlord.antarchy.content.client.model; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.entity.royal.RoyalElementalProjectileEntity; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class RoyalElementalProjectileModel extends GeoModel { + @Override + public ResourceLocation getModelResource(RoyalElementalProjectileEntity animatable) { + return new ResourceLocation(Antarchy.MODID, + "geo/" + (animatable.isIceball() ? "ice_ball" : "fire_ball") + ".geo.json"); + } + + @Override + public ResourceLocation getTextureResource(RoyalElementalProjectileEntity animatable) { + return new ResourceLocation(Antarchy.MODID, + "textures/entity/king/" + (animatable.isIceball() ? "ice_ball" : "fire_ball") + ".png"); + } + + @Override + public ResourceLocation getAnimationResource(RoyalElementalProjectileEntity animatable) { + return new ResourceLocation(Antarchy.MODID, + "animations/" + (animatable.isIceball() ? "ice_ball" : "fire_ball") + ".animation.json"); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/RoyalIceSpikeModel.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/RoyalIceSpikeModel.java new file mode 100644 index 00000000..68c46b88 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/RoyalIceSpikeModel.java @@ -0,0 +1,23 @@ +package com.craisinlord.antarchy.content.client.model; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.entity.royal.RoyalIceSpikeEntity; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class RoyalIceSpikeModel extends GeoModel { + @Override + public ResourceLocation getModelResource(RoyalIceSpikeEntity animatable) { + return new ResourceLocation(Antarchy.MODID, "geo/ice_spike.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(RoyalIceSpikeEntity animatable) { + return new ResourceLocation(Antarchy.MODID, "textures/entity/king/ice_spike.png"); + } + + @Override + public ResourceLocation getAnimationResource(RoyalIceSpikeEntity animatable) { + return new ResourceLocation(Antarchy.MODID, "animations/ice_spike.animation.json"); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/RoyalMountModel.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/RoyalMountModel.java new file mode 100644 index 00000000..0a952428 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/RoyalMountModel.java @@ -0,0 +1,23 @@ +package com.craisinlord.antarchy.content.client.model; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.entity.royal.RoyalMountEntity; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class RoyalMountModel extends GeoModel { + @Override + public ResourceLocation getModelResource(RoyalMountEntity animatable) { + return new ResourceLocation(Antarchy.MODID, "geo/" + animatable.geoNameForRender() + ".geo.json"); + } + + @Override + public ResourceLocation getTextureResource(RoyalMountEntity animatable) { + return new ResourceLocation(Antarchy.MODID, "textures/entity/" + animatable.geoNameForRender() + ".png"); + } + + @Override + public ResourceLocation getAnimationResource(RoyalMountEntity animatable) { + return new ResourceLocation(Antarchy.MODID, "animations/" + animatable.geoNameForRender() + ".animation.json"); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/VortexModel.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/VortexModel.java new file mode 100644 index 00000000..8ab0099f --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/VortexModel.java @@ -0,0 +1,23 @@ +package com.craisinlord.antarchy.content.client.model; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.entity.vortex.VortexEntity; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class VortexModel extends GeoModel { + @Override + public ResourceLocation getModelResource(VortexEntity animatable) { + return new ResourceLocation(Antarchy.MODID, "geo/vortex.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(VortexEntity animatable) { + return new ResourceLocation(Antarchy.MODID, "textures/entity/vortex.png"); + } + + @Override + public ResourceLocation getAnimationResource(VortexEntity animatable) { + return new ResourceLocation(Antarchy.MODID, "animations/vortex.animation.json"); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/WormModel.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/model/WormModel.java new file mode 100644 index 00000000..d1ab6d74 --- /dev/null +++ b/common-1.20.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 = new ResourceLocation(Antarchy.MODID, "geo/worm_large.geo.json"); + private static final ResourceLocation TEXTURE = new ResourceLocation(Antarchy.MODID, "textures/entity/worm/worm_large.png"); + private static final ResourceLocation ANIMATION = new ResourceLocation(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.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/HoverboardRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/HoverboardRenderer.java new file mode 100644 index 00000000..4c764495 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/HoverboardRenderer.java @@ -0,0 +1,13 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.model.HoverboardModel; +import com.craisinlord.antarchy.content.entity.HoverboardEntity; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import software.bernie.geckolib.renderer.GeoEntityRenderer; + +public class HoverboardRenderer extends GeoEntityRenderer { + public HoverboardRenderer(EntityRendererProvider.Context context) { + super(context, new HoverboardModel()); + this.shadowRadius = 0.5F; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/ManticoreRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/ManticoreRenderer.java new file mode 100644 index 00000000..ec88dc39 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/ManticoreRenderer.java @@ -0,0 +1,13 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.model.ManticoreModel; +import com.craisinlord.antarchy.content.entity.ManticoreEntity; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import software.bernie.geckolib.renderer.GeoEntityRenderer; + +public class ManticoreRenderer extends GeoEntityRenderer { + public ManticoreRenderer(EntityRendererProvider.Context context) { + super(context, new ManticoreModel()); + this.shadowRadius = 0.9F; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/ManticoreWingsLayer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/ManticoreWingsLayer.java new file mode 100644 index 00000000..77b286ad --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/ManticoreWingsLayer.java @@ -0,0 +1,48 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.item.ManticoreWingsItem; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ElytraModel; +import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.model.geom.ModelLayers; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.ItemRenderer; +import net.minecraft.client.renderer.entity.RenderLayerParent; +import net.minecraft.client.renderer.entity.layers.RenderLayer; +import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.ItemStack; + +public final class ManticoreWingsLayer extends RenderLayer> { + private static final ResourceLocation TEXTURE = new ResourceLocation("antarchy", "textures/models/armor/manticore_wings.png"); + private final ElytraModel model; + + public ManticoreWingsLayer(RenderLayerParent> renderer) { + super(renderer); + this.model = new ElytraModel<>(Minecraft.getInstance().getEntityModels().bakeLayer(ModelLayers.ELYTRA)); + } + + @Override + public void render(PoseStack poseStack, MultiBufferSource buffer, int packedLight, + net.minecraft.client.player.AbstractClientPlayer player, float limbSwing, + float limbSwingAmount, float partialTick, float ageInTicks, + float netHeadYaw, float headPitch) { + if (!ManticoreWingsItem.isWearingManticoreWings(player) || player.isInvisible()) { + return; + } + ItemStack chestStack = player.getItemBySlot(EquipmentSlot.CHEST); + poseStack.pushPose(); + this.getParentModel().copyPropertiesTo(this.model); + if (player.isCrouching()) { + poseStack.translate(0.0F, 0.0F, 0.125F); + } + this.model.setupAnim(player, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch); + VertexConsumer consumer = ItemRenderer.getFoilBufferDirect(buffer, RenderType.armorCutoutNoCull(TEXTURE), false, chestStack.hasFoil()); + this.model.renderToBuffer(poseStack, consumer, packedLight, OverlayTexture.NO_OVERLAY, 1.0F, 1.0F, 1.0F, 1.0F); + poseStack.popPose(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunBlackHoleRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunBlackHoleRenderer.java new file mode 100644 index 00000000..b46bf0e1 --- /dev/null +++ b/common-1.20.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.getGeoModel().getTextureResource(animatable)); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunPortalRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunPortalRenderer.java new file mode 100644 index 00000000..b5cc5c53 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunPortalRenderer.java @@ -0,0 +1,65 @@ +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.blaze3d.vertex.VertexConsumer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.LightTexture; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; +import org.joml.Matrix4f; +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) { + poseStack.pushPose(); + VertexConsumer consumer = bufferSource.getBuffer(RenderType.entityTranslucent(this.getGeoModel().getTextureResource(entity))); + Matrix4f pose = poseStack.last().pose(); + putPortalVertex(consumer, pose, entity, -0.5F, -1.0F, 0.0F, 1.0F, false); + putPortalVertex(consumer, pose, entity, -0.5F, 1.0F, 0.0F, 0.0F, false); + putPortalVertex(consumer, pose, entity, 0.5F, 1.0F, 1.0F, 0.0F, false); + putPortalVertex(consumer, pose, entity, 0.5F, -1.0F, 1.0F, 1.0F, false); + VertexConsumer edge = bufferSource.getBuffer(RenderType.entityTranslucent(this.getGeoModel().getTextureResource(entity))); + putPortalVertex(edge, pose, entity, -0.56F, -1.07F, 0.0F, 1.0F, true); + putPortalVertex(edge, pose, entity, -0.56F, 1.07F, 0.0F, 0.0F, true); + putPortalVertex(edge, pose, entity, 0.56F, 1.07F, 1.0F, 0.0F, true); + putPortalVertex(edge, pose, entity, 0.56F, -1.07F, 1.0F, 1.0F, true); + poseStack.popPose(); + } + + private static void putPortalVertex(VertexConsumer consumer, Matrix4f pose, PortalGunPortalEntity entity, float horizontal, float vertical, float u, float v, boolean channelTint) { + Vec3 position = entity.getWidthVec().normalize().scale(horizontal) + .add(entity.getUpVec().normalize().scale(vertical)) + .add(entity.getNormalVec().normalize().scale(0.03125D)); + int red = channelTint ? entity.getChannelRed() : 255; + int green = channelTint ? entity.getChannelGreen() : 255; + int blue = channelTint ? entity.getChannelBlue() : 255; + int alpha = channelTint ? 150 : 210; + consumer.vertex(pose, (float) position.x, (float) position.y, (float) position.z) + .color(red, green, blue, alpha) + .uv(u, v) + .overlayCoords(OverlayTexture.NO_OVERLAY) + .uv2(LightTexture.FULL_BRIGHT) + .normal((float) entity.getNormalVec().x, (float) entity.getNormalVec().y, (float) entity.getNormalVec().z) + .endVertex(); + } + + protected void applyRotations(PortalGunPortalEntity animatable, PoseStack poseStack, float ageInTicks, float rotationYaw, float partialTick, float nativeScale) { + } + + @Override + public @Nullable RenderType getRenderType(PortalGunPortalEntity animatable, ResourceLocation texture, @Nullable MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityTranslucent(this.getGeoModel().getTextureResource(animatable)); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunPortalViewRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunPortalViewRenderer.java new file mode 100644 index 00000000..dfff1188 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunPortalViewRenderer.java @@ -0,0 +1,18 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import net.minecraft.client.Camera; +import org.joml.Matrix4f; + +/** 1.20 hook for the optional recursive portal framebuffer path. */ +public final class PortalGunPortalViewRenderer { + private PortalGunPortalViewRenderer() { + } + + public static boolean isEnabled() { + return false; + } + + public static void render(Camera camera, Matrix4f poseMatrix, float tickCounter) { + // Disabled on 1.20 until its LevelRenderer camera contract is ported. + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunProjectileRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunProjectileRenderer.java new file mode 100644 index 00000000..a8379507 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/PortalGunProjectileRenderer.java @@ -0,0 +1,83 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.portalgun.PortalGunProjectileEntity; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.EntityRenderer; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import org.joml.Matrix4f; + +public class PortalGunProjectileRenderer extends EntityRenderer { + private static final ResourceLocation BLUE_TEXTURE = new ResourceLocation(Antarchy.MODID, "textures/vfx/portal_gun_portal_blue.png"); + private static final ResourceLocation ORANGE_TEXTURE = new ResourceLocation(Antarchy.MODID, "textures/vfx/portal_gun_portal_orange.png"); + + public PortalGunProjectileRenderer(EntityRendererProvider.Context context) { + super(context); + } + + @Override + public void render(PortalGunProjectileEntity entity, float entityYaw, float partialTick, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight) { + poseStack.pushPose(); + poseStack.mulPose(this.entityRenderDispatcher.cameraOrientation()); + float age = entity.tickCount + partialTick; + float syncedDistance = entity.getSyncedDistance() + partialTick; + float pulse = 0.8F + 0.2F * (float) Math.sin(age * 0.9F); + float travelPulse = 0.82F + 0.18F * (float) Math.sin(syncedDistance * 0.55F); + float trailStretch = 1.1F + (float) Math.min(entity.getSyncedVelocity().length() * 0.42D, 1.8D); + float baseScale = entity.getPortalSide() == com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity.PortalSide.BLUE ? 0.44F : 0.48F; + ResourceLocation texture = entity.getPortalSide() == com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity.PortalSide.BLUE ? BLUE_TEXTURE : ORANGE_TEXTURE; + float red = entity.getPortalSide() == com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity.PortalSide.BLUE ? 0.55F : 1.0F; + float green = entity.getPortalSide() == com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity.PortalSide.BLUE ? 0.82F : 0.56F; + float blue = entity.getPortalSide() == com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity.PortalSide.BLUE ? 1.0F : 0.18F; + + poseStack.scale(baseScale * trailStretch, baseScale * travelPulse, baseScale * travelPulse); + PoseStack.Pose pose = poseStack.last(); + Matrix4f matrix = pose.pose(); + VertexConsumer core = bufferSource.getBuffer(RenderType.entityTranslucent(texture)); + addQuad(core, pose, matrix, red, green, blue, 0.92F, packedLight, -0.9F, -0.5F, 0.9F, 0.5F); + VertexConsumer glow = bufferSource.getBuffer(RenderType.entityTranslucentEmissive(texture)); + addQuad(glow, pose, matrix, 1.0F, 1.0F, 1.0F, 0.8F * pulse, 0xF000F0, -1.15F, -0.7F, 1.15F, 0.7F); + + poseStack.mulPose(com.mojang.math.Axis.ZP.rotationDegrees(90.0F)); + pose = poseStack.last(); + matrix = pose.pose(); + core = bufferSource.getBuffer(RenderType.entityTranslucent(texture)); + addQuad(core, pose, matrix, red, green, blue, 0.74F, packedLight, -0.45F, -0.95F, 0.45F, 0.95F); + glow = bufferSource.getBuffer(RenderType.entityTranslucentEmissive(texture)); + addQuad(glow, pose, matrix, 1.0F, 1.0F, 1.0F, 0.52F * pulse, 0xF000F0, -0.62F, -1.15F, 0.62F, 1.15F); + poseStack.popPose(); + } + + @Override + protected int getBlockLightLevel(PortalGunProjectileEntity entity, BlockPos pos) { + return 15; + } + + @Override + public ResourceLocation getTextureLocation(PortalGunProjectileEntity entity) { + return entity.getPortalSide() == com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity.PortalSide.BLUE ? BLUE_TEXTURE : ORANGE_TEXTURE; + } + + private static void addQuad(VertexConsumer consumer, PoseStack.Pose pose, Matrix4f matrix, float red, float green, float blue, float alpha, int packedLight, float minX, float minY, float maxX, float maxY) { + addVertex(consumer, pose, matrix, minX, minY, 0.0F, 1.0F, red, green, blue, alpha, packedLight); + addVertex(consumer, pose, matrix, maxX, minY, 1.0F, 1.0F, red, green, blue, alpha, packedLight); + addVertex(consumer, pose, matrix, maxX, maxY, 1.0F, 0.0F, red, green, blue, alpha, packedLight); + addVertex(consumer, pose, matrix, minX, maxY, 0.0F, 0.0F, red, green, blue, alpha, packedLight); + } + + private static void addVertex(VertexConsumer consumer, PoseStack.Pose pose, Matrix4f matrix, float x, float y, float u, float v, float red, float green, float blue, float alpha, int packedLight) { + consumer.vertex(matrix, x, y, 0.0F) + .color((int) (red * 255.0F), (int) (green * 255.0F), (int) (blue * 255.0F), (int) (alpha * 255.0F)) + .uv(u, v) + .overlayCoords(OverlayTexture.NO_OVERLAY) + .uv2(packedLight) + .normal(pose.normal(), 0.0F, 0.0F, 1.0F) + .endVertex(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalAssailantAxeAfterimageLayer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalAssailantAxeAfterimageLayer.java new file mode 100644 index 00000000..fa734dd6 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalAssailantAxeAfterimageLayer.java @@ -0,0 +1,63 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.item.RoyalAssailantBattleAxeItem; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.math.Axis; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.player.AbstractClientPlayer; +import net.minecraft.client.renderer.LightTexture; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.LivingEntityRenderer; +import net.minecraft.client.renderer.entity.RenderLayerParent; +import net.minecraft.client.renderer.entity.layers.RenderLayer; +import net.minecraft.world.entity.HumanoidArm; +import net.minecraft.world.item.ItemDisplayContext; +import net.minecraft.world.item.ItemStack; + +public final class RoyalAssailantAxeAfterimageLayer extends RenderLayer> { + private static final int[] TINTS = {0x66FF3B4D, 0x4DFF263D, 0x33E8142F, 0x1FCC0D26}; + + public RoyalAssailantAxeAfterimageLayer(RenderLayerParent> renderer) { + super(renderer); + } + + @Override + public void render(PoseStack poseStack, MultiBufferSource buffer, int packedLight, AbstractClientPlayer player, + float limbSwing, float limbSwingAmount, float partialTick, float ageInTicks, + float netHeadYaw, float headPitch) { + if (player.isSpectator() || player.isInvisible() || player.getAttackAnim(partialTick) <= 0.01F) return; + ItemStack stack = player.getMainHandItem(); + HumanoidArm arm = player.getMainArm(); + if (!(stack.getItem() instanceof RoyalAssailantBattleAxeItem)) { + stack = player.getOffhandItem(); + arm = player.getMainArm() == HumanoidArm.RIGHT ? HumanoidArm.LEFT : HumanoidArm.RIGHT; + } + if (!(stack.getItem() instanceof RoyalAssailantBattleAxeItem)) return; + VertexConsumer vertexConsumer = buffer.getBuffer(RenderType.entityTranslucent(this.getTextureLocation(player))); + float swing = player.getAttackAnim(partialTick); + for (int i = TINTS.length - 1; i >= 0; i--) { + poseStack.pushPose(); + poseStack.translate(0.0D, 0.0D, (i + 1) * 0.08F); + poseStack.mulPose(Axis.YP.rotation((i + 1) * 0.12F * (swing < 0.5F ? -1.0F : 1.0F))); + int tint = TINTS[i]; + this.getParentModel().renderToBuffer(poseStack, vertexConsumer, LightTexture.FULL_BRIGHT, + LivingEntityRenderer.getOverlayCoords(player, 0.0F), + ((tint >> 16) & 0xFF) / 255.0F, ((tint >> 8) & 0xFF) / 255.0F, + (tint & 0xFF) / 255.0F, ((tint >>> 24) & 0xFF) / 255.0F); + poseStack.popPose(); + } + for (int i = TINTS.length - 1; i >= 0; i--) { + poseStack.pushPose(); + this.getParentModel().translateToHand(arm, poseStack); + poseStack.mulPose(Axis.YP.rotation((i + 1) * 0.12F * (swing < 0.5F ? -1.0F : 1.0F))); + Minecraft.getInstance().getItemRenderer().renderStatic(player, stack, + arm == HumanoidArm.RIGHT ? ItemDisplayContext.THIRD_PERSON_RIGHT_HAND : ItemDisplayContext.THIRD_PERSON_LEFT_HAND, + arm == HumanoidArm.LEFT, poseStack, buffer, player.level(), packedLight, + LivingEntityRenderer.getOverlayCoords(player, 0.0F), player.getId()); + poseStack.popPose(); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalAssailantBlackHoleRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalAssailantBlackHoleRenderer.java new file mode 100644 index 00000000..7e854dfe --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalAssailantBlackHoleRenderer.java @@ -0,0 +1,30 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.model.RoyalBlackHoleModel; +import com.craisinlord.antarchy.content.entity.royal.RoyalAssailantBlackHoleEntity; +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 final class RoyalAssailantBlackHoleRenderer extends GeoEntityRenderer { + public RoyalAssailantBlackHoleRenderer(EntityRendererProvider.Context context) { + super(context, new RoyalBlackHoleModel<>()); + this.shadowRadius = 0.0F; + } + + @Override + public void render(RoyalAssailantBlackHoleEntity entity, float entityYaw, float partialTick, + PoseStack poseStack, MultiBufferSource bufferSource, int packedLight) { + super.render(entity, entityYaw, partialTick, poseStack, bufferSource, 0xF000F0); + } + + @Override + public @Nullable RenderType getRenderType(RoyalAssailantBlackHoleEntity animatable, ResourceLocation texture, + @Nullable MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityTranslucent(this.getGeoModel().getTextureResource(animatable)); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalBlackHoleRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalBlackHoleRenderer.java new file mode 100644 index 00000000..2dbb6801 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalBlackHoleRenderer.java @@ -0,0 +1,30 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.model.RoyalBlackHoleModel; +import com.craisinlord.antarchy.content.entity.royal.RoyalBlackHoleEntity; +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 RoyalBlackHoleRenderer extends GeoEntityRenderer { + public RoyalBlackHoleRenderer(EntityRendererProvider.Context context) { + super(context, new RoyalBlackHoleModel<>()); + this.shadowRadius = 0.0F; + } + + @Override + public void render(RoyalBlackHoleEntity entity, float entityYaw, float partialTick, PoseStack poseStack, + MultiBufferSource bufferSource, int packedLight) { + super.render(entity, entityYaw, partialTick, poseStack, bufferSource, 0xF000F0); + } + + @Override + public @Nullable RenderType getRenderType(RoyalBlackHoleEntity animatable, ResourceLocation texture, + @Nullable MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityTranslucent(this.getGeoModel().getTextureResource(animatable)); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalBoltRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalBoltRenderer.java new file mode 100644 index 00000000..06764277 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalBoltRenderer.java @@ -0,0 +1,19 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.entity.royal.RoyalBoltEntity; +import net.minecraft.client.renderer.entity.EntityRenderer; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.resources.ResourceLocation; + +public class RoyalBoltRenderer extends EntityRenderer { + private static final ResourceLocation TEXTURE = new ResourceLocation("minecraft", "textures/particle/generic_0.png"); + + public RoyalBoltRenderer(EntityRendererProvider.Context context) { + super(context); + } + + @Override + public ResourceLocation getTextureLocation(RoyalBoltEntity entity) { + return TEXTURE; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalBossRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalBossRenderer.java new file mode 100644 index 00000000..eeeb3770 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalBossRenderer.java @@ -0,0 +1,176 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.model.RoyalBossModel; +import com.craisinlord.antarchy.content.entity.royal.RoyalBossEntity; +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import com.craisinlord.antarchy.content.entity.royal.beam.RoyalBeamElement; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +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 net.minecraft.util.Mth; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.renderer.GeoEntityRenderer; +import software.bernie.geckolib.core.object.Color; + +public class RoyalBossRenderer extends GeoEntityRenderer { + private static final ResourceLocation QUEEN_BEAM_OUTER = new ResourceLocation("antarchy", "textures/entity/queen/queen_beam_outer.png"); + private static final ResourceLocation QUEEN_BEAM_INNER = new ResourceLocation("antarchy", "textures/entity/queen/queen_beam_inner.png"); + private static final ResourceLocation QUEEN_BEAM_END = new ResourceLocation("antarchy", "textures/entity/queen/queen_beam_end_1.png"); + private static final ResourceLocation KING_FIRE_BEAM_OUTER = new ResourceLocation("antarchy", "textures/entity/king/fire_beam_outer.png"); + private static final ResourceLocation KING_FIRE_BEAM_INNER = new ResourceLocation("antarchy", "textures/entity/king/fire_beam_inner.png"); + private static final ResourceLocation KING_FIRE_BEAM_END = new ResourceLocation("antarchy", "textures/entity/king/fire_beam_end_1.png"); + private static final ResourceLocation KING_LIGHTNING_BEAM_OUTER = new ResourceLocation("antarchy", "textures/entity/king/lightning_beam_outer.png"); + private static final ResourceLocation KING_LIGHTNING_BEAM_INNER = new ResourceLocation("antarchy", "textures/entity/king/lightning_beam_inner.png"); + private static final ResourceLocation KING_LIGHTNING_BEAM_END = new ResourceLocation("antarchy", "textures/entity/king/lightning_beam_end_1.png"); + private static final ResourceLocation KING_ICE_BEAM_OUTER = new ResourceLocation("antarchy", "textures/entity/king/ice_beam_outer.png"); + private static final ResourceLocation KING_ICE_BEAM_INNER = new ResourceLocation("antarchy", "textures/entity/king/ice_beam_inner.png"); + private static final ResourceLocation KING_ICE_BEAM_END = new ResourceLocation("antarchy", "textures/entity/king/ice_beam_end_1.png"); + public RoyalBossRenderer(EntityRendererProvider.Context context) { + super(context, new RoyalBossModel()); + this.shadowRadius = 8.0F; + } + + @Override + public RenderType getRenderType(RoyalBossEntity animatable, ResourceLocation texture, @Nullable MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityCutoutNoCull(texture); + } + + @Override + public Color getRenderColor(RoyalBossEntity animatable, float partialTick, int packedLight) { + if (!animatable.isRoyalAccelerated()) { + return Color.ofRGBA(255, 255, 255, 255); + } + float pulse = 0.5F + 0.5F * (float) Math.sin((animatable.tickCount + partialTick) * 0.4F); + int green = 60 + Math.round(60.0F * pulse); + return Color.ofRGBA(255, green, green, 255); + } + + @Override + public void preRender(PoseStack poseStack, RoyalBossEntity animatable, BakedGeoModel model, @Nullable MultiBufferSource bufferSource, + @Nullable VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, + float red, float green, float blue, float alpha) { + super.preRender(poseStack, animatable, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha); + poseStack.scale(RoyalBossEntity.MODEL_RENDER_SCALE, RoyalBossEntity.MODEL_RENDER_SCALE, RoyalBossEntity.MODEL_RENDER_SCALE); + this.shadowRadius = 8.0F * RoyalBossEntity.MODEL_RENDER_SCALE; + } + + private static final float BEAM_OUTER_RADIUS = 0.55F; + private static final float BEAM_INNER_RADIUS = 0.32F; + private static final float BEAM_TILE_BLOCKS = 3.0F; + private static final float BEAM_SCROLL_SPEED = 0.32F; + + @Override + public void render(RoyalBossEntity entity, float entityYaw, float partialTick, PoseStack poseStack, + MultiBufferSource bufferSource, int packedLight) { + super.render(entity, entityYaw, partialTick, poseStack, bufferSource, packedLight); + Vec3 end = entity.getRoyalBeamEndPosition(); + if (!entity.isFiringRoyalBeam() || end == null) { + return; + } + double x = Mth.lerp(partialTick, entity.xo, entity.getX()); + double y = Mth.lerp(partialTick, entity.yo, entity.getY()); + double z = Mth.lerp(partialTick, entity.zo, entity.getZ()); + Vec3 start = entity.getRoyalBeamShootFrom(partialTick).subtract(x, y, z); + Vec3 finish = end.subtract(x, y, z); + Vec3 axis = finish.subtract(start); + double length = axis.length(); + if (length < 0.05D) { + return; + } + Vec3 dir = axis.scale(1.0D / length); + Vec3 side1 = dir.cross(new Vec3(0.0D, 1.0D, 0.0D)); + if (side1.lengthSqr() < 1.0E-4D) { + side1 = dir.cross(new Vec3(1.0D, 0.0D, 0.0D)); + } + side1 = side1.normalize(); + Vec3 side2 = dir.cross(side1).normalize(); + + ResourceLocation outer = QUEEN_BEAM_OUTER; + ResourceLocation inner = QUEEN_BEAM_INNER; + ResourceLocation endTexture = QUEEN_BEAM_END; + if (entity instanceof KingEntity) { + switch (entity.getRoyalBeamElement()) { + case FIRE -> { + outer = KING_FIRE_BEAM_OUTER; + inner = KING_FIRE_BEAM_INNER; + endTexture = KING_FIRE_BEAM_END; + } + case LIGHTNING -> { + outer = KING_LIGHTNING_BEAM_OUTER; + inner = KING_LIGHTNING_BEAM_INNER; + endTexture = KING_LIGHTNING_BEAM_END; + } + case ICE -> { + outer = KING_ICE_BEAM_OUTER; + inner = KING_ICE_BEAM_INNER; + endTexture = KING_ICE_BEAM_END; + } + case GENERIC -> { + } + } + } + + float time = entity.tickCount + partialTick; + float tiles = (float) (length / BEAM_TILE_BLOCKS); + float scroll = -time * BEAM_SCROLL_SPEED; + var pose = poseStack.last().pose(); + + VertexConsumer outerBuffer = bufferSource.getBuffer(RenderType.entityTranslucent(outer)); + drawBeamPlane(outerBuffer, pose, start, finish, side1.scale(BEAM_OUTER_RADIUS), scroll, scroll + tiles); + drawBeamPlane(outerBuffer, pose, start, finish, side2.scale(BEAM_OUTER_RADIUS), scroll, scroll + tiles); + + float innerScroll = -time * BEAM_SCROLL_SPEED * 1.6F; + VertexConsumer innerBuffer = bufferSource.getBuffer(RenderType.entityTranslucent(inner)); + drawBeamPlane(innerBuffer, pose, start, finish, side1.scale(BEAM_INNER_RADIUS), innerScroll, innerScroll + tiles); + drawBeamPlane(innerBuffer, pose, start, finish, side2.scale(BEAM_INNER_RADIUS), innerScroll, innerScroll + tiles); + + float impactSize = 1.1F + 0.35F * Mth.sin(time * 0.6F); + Vec3 camLeft = new Vec3(this.entityRenderDispatcher.camera.getLeftVector()); + Vec3 camUp = new Vec3(this.entityRenderDispatcher.camera.getUpVector()); + VertexConsumer endBuffer = bufferSource.getBuffer(RenderType.entityTranslucent(endTexture)); + drawBillboard(endBuffer, pose, finish, camLeft.scale(impactSize), camUp.scale(impactSize)); + } + + private static void drawBeamPlane(VertexConsumer vertices, org.joml.Matrix4f pose, Vec3 start, Vec3 end, Vec3 half, + float startV, float endV) { + emitQuad(vertices, pose, + start.subtract(half), start.add(half), end.add(half), end.subtract(half), + 0.0F, startV, 1.0F, endV); + emitQuad(vertices, pose, + start.add(half), start.subtract(half), end.subtract(half), end.add(half), + 0.0F, startV, 1.0F, endV); + } + + private static void drawBillboard(VertexConsumer vertices, org.joml.Matrix4f pose, Vec3 center, Vec3 left, Vec3 up) { + emitQuad(vertices, pose, + center.add(left).add(up), center.subtract(left).add(up), + center.subtract(left).subtract(up), center.add(left).subtract(up), + 0.0F, 0.0F, 1.0F, 1.0F); + emitQuad(vertices, pose, + center.subtract(left).add(up), center.add(left).add(up), + center.add(left).subtract(up), center.subtract(left).subtract(up), + 0.0F, 0.0F, 1.0F, 1.0F); + } + + private static void emitQuad(VertexConsumer vertices, org.joml.Matrix4f pose, + Vec3 a, Vec3 b, Vec3 c, Vec3 d, + float minU, float minV, float maxU, float maxV) { + vertex(vertices, pose, a, minU, minV); + vertex(vertices, pose, b, maxU, minV); + vertex(vertices, pose, c, maxU, maxV); + vertex(vertices, pose, d, minU, maxV); + } + + private static void vertex(VertexConsumer vertices, org.joml.Matrix4f pose, Vec3 pos, float u, float v) { + vertices.vertex(pose, (float) pos.x, (float) pos.y, (float) pos.z) + .color(255, 255, 255, 255).uv(u, v) + .overlayCoords(net.minecraft.client.renderer.texture.OverlayTexture.NO_OVERLAY) + .uv2(0x00F000F0) + .normal(0.0F, 1.0F, 0.0F).endVertex(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalElementalProjectileRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalElementalProjectileRenderer.java new file mode 100644 index 00000000..511fd61c --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalElementalProjectileRenderer.java @@ -0,0 +1,37 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.model.RoyalElementalProjectileModel; +import com.craisinlord.antarchy.content.entity.royal.RoyalElementalProjectileEntity; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.math.Axis; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.util.Mth; +import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.renderer.GeoEntityRenderer; + +public class RoyalElementalProjectileRenderer extends GeoEntityRenderer { + public RoyalElementalProjectileRenderer(EntityRendererProvider.Context context) { + super(context, new RoyalElementalProjectileModel()); + this.shadowRadius = 0.0F; + } + + @Override + public void preRender(PoseStack poseStack, RoyalElementalProjectileEntity animatable, BakedGeoModel model, + MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, + float partialTick, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { + super.preRender(poseStack, animatable, model, bufferSource, buffer, isReRender, partialTick, + packedLight, packedOverlay, red, green, blue, alpha); + float scale = animatable.isIceball() ? 0.75F : 0.36F; + poseStack.scale(scale, scale, scale); + } + + protected void applyRotations(RoyalElementalProjectileEntity entity, PoseStack poseStack, float ageInTicks, + float rotationYaw, float partialTick, float nativeScale) { + float yaw = Mth.rotLerp(partialTick, entity.yRotO, entity.getYRot()); + float pitch = Mth.lerp(partialTick, entity.xRotO, entity.getXRot()); + poseStack.mulPose(Axis.YP.rotationDegrees(180.0F - yaw)); + poseStack.mulPose(Axis.XP.rotationDegrees(-pitch)); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalIceSpikeRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalIceSpikeRenderer.java new file mode 100644 index 00000000..49033216 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalIceSpikeRenderer.java @@ -0,0 +1,14 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.model.RoyalIceSpikeModel; +import com.craisinlord.antarchy.content.entity.royal.RoyalIceSpikeEntity; +import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import software.bernie.geckolib.renderer.GeoEntityRenderer; + +public class RoyalIceSpikeRenderer extends GeoEntityRenderer { + public RoyalIceSpikeRenderer(EntityRendererProvider.Context context) { + super(context, new RoyalIceSpikeModel()); + this.shadowRadius = 0.0F; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalMountRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalMountRenderer.java new file mode 100644 index 00000000..e5d72bb3 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalMountRenderer.java @@ -0,0 +1,35 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.model.RoyalMountModel; +import com.craisinlord.antarchy.content.entity.royal.RoyalMountEntity; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +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.cache.object.BakedGeoModel; +import software.bernie.geckolib.renderer.GeoEntityRenderer; + +public class RoyalMountRenderer extends GeoEntityRenderer { + public RoyalMountRenderer(EntityRendererProvider.Context context) { + super(context, new RoyalMountModel()); + this.shadowRadius = 1.1F; + } + + @Override + public RenderType getRenderType(RoyalMountEntity animatable, ResourceLocation texture, @Nullable MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityCutoutNoCull(texture); + } + + @Override + public void preRender(PoseStack poseStack, RoyalMountEntity animatable, BakedGeoModel model, @Nullable MultiBufferSource bufferSource, + @Nullable VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, + float red, float green, float blue, float alpha) { + super.preRender(poseStack, animatable, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha); + float scale = animatable.getAgeScale(); + poseStack.scale(scale, scale, scale); + this.shadowRadius = 1.1F * scale; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TemporalContractionAfterimageLayer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TemporalContractionAfterimageLayer.java new file mode 100644 index 00000000..a5157b88 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TemporalContractionAfterimageLayer.java @@ -0,0 +1,60 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.ContractionAfterimages; +import com.craisinlord.antarchy.content.effect.RoyalEffectHooks; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import java.util.Deque; +import net.minecraft.client.model.EntityModel; +import net.minecraft.client.renderer.LightTexture; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.LivingEntityRenderer; +import net.minecraft.client.renderer.entity.RenderLayerParent; +import net.minecraft.client.renderer.entity.layers.RenderLayer; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.LivingEntity; +import org.joml.Matrix4f; +import org.joml.Vector3f; + +public final class TemporalContractionAfterimageLayer> extends RenderLayer { + private static final int RGB = 0x8FE6B4; + private static final float BASE_ALPHA = 0.42F; + + public TemporalContractionAfterimageLayer(RenderLayerParent renderer) { super(renderer); } + + @Override + public void render(PoseStack poseStack, MultiBufferSource buffer, int packedLight, T entity, + float limbSwing, float limbSwingAmount, float partialTick, float ageInTicks, + float netHeadYaw, float headPitch) { + if (entity.isSpectator() || entity.isInvisible() || !entity.hasEffect(RoyalEffectHooks.contractedHolder())) return; + Deque samples = ContractionAfterimages.samples(entity); + if (samples == null || samples.isEmpty()) return; + double curX = Mth.lerp(partialTick, entity.xo, entity.getX()); + double curY = Mth.lerp(partialTick, entity.yo, entity.getY()); + double curZ = Mth.lerp(partialTick, entity.zo, entity.getZ()); + int now = (int) (entity.level().getGameTime() & 0x7fffffffL); + Matrix4f inverse = new Matrix4f(poseStack.last().pose()).invert(); + M model = this.getParentModel(); + VertexConsumer consumer = buffer.getBuffer(RenderType.entityTranslucent(this.getTextureLocation(entity))); + int index = 0; + for (ContractionAfterimages.Sample sample : samples) { + if (index++ % 2 != 0) continue; + double dx = sample.x - curX, dy = sample.y - curY, dz = sample.z - curZ; + if (dx * dx + dy * dy + dz * dz < 0.0025D) continue; + float fade = ContractionAfterimages.fade(sample, now); + if (fade <= 0.02F) continue; + Vector3f local = inverse.transformDirection(new Vector3f((float) dx, (float) dy, (float) dz)); + int color = ((int) (BASE_ALPHA * fade * 255.0F) & 0xFF) << 24 | RGB; + model.setupAnim(entity, sample.limbPos, sample.limbSpeed, sample.ageInTicks, + sample.headYaw - sample.bodyYaw, sample.xRot); + poseStack.pushPose(); poseStack.translate(local.x, local.y, local.z); + model.renderToBuffer(poseStack, consumer, LightTexture.FULL_BRIGHT, + LivingEntityRenderer.getOverlayCoords(entity, 0.0F), + ((color >> 16) & 0xFF) / 255.0F, ((color >> 8) & 0xFF) / 255.0F, + (color & 0xFF) / 255.0F, ((color >>> 24) & 0xFF) / 255.0F); + poseStack.popPose(); + } + model.setupAnim(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TemporalContractionGeoLayer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TemporalContractionGeoLayer.java new file mode 100644 index 00000000..79d899e1 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TemporalContractionGeoLayer.java @@ -0,0 +1,56 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.ContractionAfterimages; +import com.craisinlord.antarchy.content.effect.RoyalEffectHooks; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import java.util.Deque; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import org.joml.Matrix4f; +import org.joml.Vector3f; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.core.animatable.GeoAnimatable; +import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.renderer.GeoRenderer; +import software.bernie.geckolib.renderer.layer.GeoRenderLayer; + +public final class TemporalContractionGeoLayer extends GeoRenderLayer { + public TemporalContractionGeoLayer(GeoRenderer renderer) { super(renderer); } + + @Override + public void render(PoseStack poseStack, T animatable, BakedGeoModel bakedModel, @Nullable RenderType renderType, + MultiBufferSource bufferSource, @Nullable VertexConsumer buffer, float partialTick, + int packedLight, int packedOverlay) { + if (!(animatable instanceof Entity entity) || !(entity instanceof LivingEntity living) + || living.isInvisible() || !living.hasEffect(RoyalEffectHooks.contractedHolder())) return; + Deque samples = ContractionAfterimages.samples(living); + if (samples == null || samples.isEmpty()) return; + double curX = Mth.lerp(partialTick, entity.xo, entity.getX()); + double curY = Mth.lerp(partialTick, entity.yo, entity.getY()); + double curZ = Mth.lerp(partialTick, entity.zo, entity.getZ()); + int now = (int) (entity.level().getGameTime() & 0x7fffffffL); + Matrix4f inverse = new Matrix4f(poseStack.last().pose()).invert(); + RenderType type = RenderType.entityTranslucent(this.getRenderer().getTextureLocation(animatable)); + VertexConsumer consumer = bufferSource.getBuffer(type); + int index = 0; + for (ContractionAfterimages.Sample sample : samples) { + if (index++ % 2 != 0) continue; + double dx = sample.x - curX, dy = sample.y - curY, dz = sample.z - curZ; + if (dx * dx + dy * dy + dz * dz < 0.0025D) continue; + float fade = ContractionAfterimages.fade(sample, now); + if (fade <= 0.02F) continue; + Vector3f local = inverse.transformDirection(new Vector3f((float) dx, (float) dy, (float) dz)); + int color = ((int) (0.42F * fade * 255.0F) & 0xFF) << 24 | 0x8FE6B4; + poseStack.pushPose(); poseStack.translate(local.x, local.y, local.z); + this.getRenderer().reRender(bakedModel, poseStack, bufferSource, animatable, type, consumer, + partialTick, 0xF000F0, packedOverlay, + ((color >> 16) & 0xFF) / 255.0F, ((color >> 8) & 0xFF) / 255.0F, + (color & 0xFF) / 255.0F, ((color >>> 24) & 0xFF) / 255.0F); + poseStack.popPose(); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/ThoraxisUndersideSkyRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/ThoraxisUndersideSkyRenderer.java new file mode 100644 index 00000000..ee473534 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/ThoraxisUndersideSkyRenderer.java @@ -0,0 +1,259 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisUndersideManager; +import com.mojang.blaze3d.platform.GlStateManager; +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.PoseStack; +import com.mojang.blaze3d.vertex.Tesselator; +import com.mojang.blaze3d.vertex.VertexBuffer; +import com.mojang.blaze3d.vertex.VertexFormat; +import com.mojang.blaze3d.vertex.VertexSorting; +import java.util.Random; +import net.minecraft.client.Camera; +import net.minecraft.client.Minecraft; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; +import com.mojang.math.Axis; +import net.minecraft.world.level.Level; +import org.joml.Matrix4f; + +public final class ThoraxisUndersideSkyRenderer { + public static final ResourceKey THORAXIS = ResourceKey.create( + Registries.DIMENSION, + new ResourceLocation(Antarchy.MODID, "thoraxis") + ); + private static final ResourceLocation SUN_TEXTURE = new ResourceLocation("minecraft", "textures/environment/sun.png"); + private static final ResourceLocation MOON_TEXTURE = new ResourceLocation("minecraft", "textures/environment/moon_phases.png"); + private static final float SKY_RADIUS = 100.0F; + private static final float BODY_SIZE = 32.0F; + private static final float SKY_RED = 0.015F; + private static final float SKY_GREEN = 0.0F; + private static final float SKY_BLUE = 0.035F; + + @org.jetbrains.annotations.Nullable + private static VertexBuffer redStarBuffer = null; + + private ThoraxisUndersideSkyRenderer() { + } + + public static boolean shouldRender(ClientLevel level, Camera camera) { + return level.dimension().equals(THORAXIS) && camera.getPosition().y < ThoraxisUndersideManager.GRAVITY_FLIP_Y; + } + + public static void render( + Minecraft minecraft, + PoseStack poseStack, + Matrix4f projectionMatrix, + float partialTick, + Camera camera, + boolean isFoggy, + Runnable setupFog, + VertexBuffer skyBuffer + ) { + setupFog.run(); + if (minecraft.options.hideLightningFlash().get() || minecraft.gameRenderer.getMainCamera() != camera) { + return; + } + + RenderSystem.depthMask(false); + RenderSystem.setShaderColor(SKY_RED, SKY_GREEN, SKY_BLUE, 1.0F); + skyBuffer.bind(); + skyBuffer.drawWithShader(poseStack.last().pose(), projectionMatrix, GameRenderer.getPositionShader()); + VertexBuffer.unbind(); + RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); + + float timeOfDay = 0.72F + partialTick * 0.0F; + renderCelestialBodies(poseStack.last().pose(), projectionMatrix, timeOfDay); + renderRedStars(poseStack.last().pose(), projectionMatrix); + + RenderSystem.depthMask(true); + } + + private static void renderRedStars(Matrix4f modelViewMatrix, Matrix4f projectionMatrix) { + if (redStarBuffer == null) { + redStarBuffer = buildRedStarBuffer(); + } + + RenderSystem.enableBlend(); + RenderSystem.defaultBlendFunc(); + RenderSystem.setShaderColor(0.95F, 0.95F, 0.95F, 0.95F); + redStarBuffer.bind(); + redStarBuffer.drawWithShader(modelViewMatrix, projectionMatrix, GameRenderer.getPositionColorShader()); + VertexBuffer.unbind(); + RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); + RenderSystem.disableBlend(); + } + + private static VertexBuffer buildRedStarBuffer() { + Random random = new Random(552031L); + BufferBuilder builder = Tesselator.getInstance().getBuilder(); + builder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); + + for (int i = 0; i < 1800; i++) { + double x = random.nextFloat() * 2.0F - 1.0F; + double y = random.nextFloat() * 2.0F - 1.0F; + double z = random.nextFloat() * 2.0F - 1.0F; + double size = 0.13F + random.nextFloat() * 0.12F; + double lenSq = x * x + y * y + z * z; + if (lenSq < 1.0D && lenSq > 0.01D) { + double len = 1.0D / Math.sqrt(lenSq); + x *= len; + y *= len; + z *= len; + double sx = x * 100.0D; + double sy = y * 100.0D; + double sz = z * 100.0D; + double yaw = Math.atan2(x, z); + double sinYaw = Math.sin(yaw); + double cosYaw = Math.cos(yaw); + double pitch = Math.atan2(Math.sqrt(x * x + z * z), y); + double sinPitch = Math.sin(pitch); + double cosPitch = Math.cos(pitch); + double rot = random.nextDouble() * Math.PI * 2.0D; + double sinRot = Math.sin(rot); + double cosRot = Math.cos(rot); + float red = 0.75F + random.nextFloat() * 0.25F; + float green = 0.02F + random.nextFloat() * 0.05F; + float blue = 0.04F + random.nextFloat() * 0.08F; + + for (int j = 0; j < 4; j++) { + double u = (j & 2) - 1; + double v = (j + 1 & 2) - 1; + double px = u * cosRot - v * sinRot; + double py = v * cosRot + u * sinRot; + double qx = px * sinPitch; + double qy = -px * cosPitch; + double rx = qy * sinYaw - py * cosYaw; + double ry = py * sinYaw + qy * cosYaw; + builder.vertex((float) (sx + rx * size), (float) (sy + qx * size), (float) (sz + ry * size)) + .color(red, green, blue, 1.0F).endVertex(); + } + } + } + + BufferBuilder.RenderedBuffer mesh = builder.end(); + VertexBuffer buffer = new VertexBuffer(VertexBuffer.Usage.STATIC); + buffer.bind(); + buffer.upload(mesh); + VertexBuffer.unbind(); + return buffer; + } + + private static void renderCelestialBodies(Matrix4f modelViewMatrix, Matrix4f projectionMatrix, float timeOfDay) { + float t = timeOfDay * 360.0F; + renderBodyGlow(modelViewMatrix, projectionMatrix, t, -10.0F, 0xFF1F18, 86.0F); + renderTexturedBody(modelViewMatrix, projectionMatrix, t, -10.0F, 42.0F, 0xFF1F18, SUN_TEXTURE, false, 0, t * 0.6F); + + float moonOrbit = t + 180.0F; + renderBodyGlow(modelViewMatrix, projectionMatrix, moonOrbit, 24.0F, 0x8F30FF, 76.0F); + renderTexturedBody(modelViewMatrix, projectionMatrix, moonOrbit, 24.0F, 26.0F, 0x8F30FF, MOON_TEXTURE, true, 0, -t * 0.35F); + } + + private static void renderBodyGlow(Matrix4f modelViewMatrix, Matrix4f projectionMatrix, float orbitDegrees, float yawDegrees, int rgb, float glowRadius) { + RenderSystem.enableBlend(); + RenderSystem.defaultBlendFunc(); + RenderSystem.disableCull(); + RenderSystem.setShader(GameRenderer::getPositionColorShader); + RenderSystem.backupProjectionMatrix(); + RenderSystem.setProjectionMatrix(projectionMatrix, VertexSorting.DISTANCE_TO_ORIGIN); + + PoseStack modelViewStack = RenderSystem.getModelViewStack(); + modelViewStack.pushPose(); + modelViewStack.mulPoseMatrix(modelViewMatrix); + modelViewStack.mulPose(Axis.XP.rotationDegrees(orbitDegrees)); + modelViewStack.mulPose(Axis.ZP.rotationDegrees(yawDegrees)); + RenderSystem.applyModelViewMatrix(); + + float red = ((rgb >> 16) & 0xFF) / 255.0F; + float green = ((rgb >> 8) & 0xFF) / 255.0F; + float blue = (rgb & 0xFF) / 255.0F; + BufferBuilder buffer = Tesselator.getInstance().getBuilder(); + buffer.begin(VertexFormat.Mode.TRIANGLE_FAN, DefaultVertexFormat.POSITION_COLOR); + buffer.vertex(0.0F, SKY_RADIUS, 0.0F).color(red, green, blue, 0.55F).endVertex(); + for (int i = 0; i <= 24; i++) { + float angle = i * Mth.TWO_PI / 24.0F; + buffer.vertex(Mth.sin(angle) * glowRadius, SKY_RADIUS, Mth.cos(angle) * glowRadius).color(red, green, blue, 0.0F).endVertex(); + } + BufferUploader.drawWithShader(buffer.end()); + + modelViewStack.popPose(); + RenderSystem.applyModelViewMatrix(); + RenderSystem.restoreProjectionMatrix(); + RenderSystem.enableCull(); + RenderSystem.disableBlend(); + } + + private static void renderTexturedBody( + Matrix4f modelViewMatrix, + Matrix4f projectionMatrix, + float orbitDegrees, + float yawDegrees, + float radius, + int rgb, + ResourceLocation texture, + boolean usePhaseSheet, + int phaseIndex, + float selfRotationDegrees + ) { + RenderSystem.enableBlend(); + RenderSystem.blendFuncSeparate( + GlStateManager.SourceFactor.ONE, + GlStateManager.DestFactor.ONE, + GlStateManager.SourceFactor.ONE, + GlStateManager.DestFactor.ZERO + ); + RenderSystem.disableCull(); + RenderSystem.setShaderColor(((rgb >> 16) & 0xFF) / 255.0F, ((rgb >> 8) & 0xFF) / 255.0F, (rgb & 0xFF) / 255.0F, 1.0F); + RenderSystem.setShader(GameRenderer::getPositionTexShader); + RenderSystem.setShaderTexture(0, texture); + RenderSystem.backupProjectionMatrix(); + RenderSystem.setProjectionMatrix(projectionMatrix, VertexSorting.DISTANCE_TO_ORIGIN); + + PoseStack modelViewStack = RenderSystem.getModelViewStack(); + modelViewStack.pushPose(); + modelViewStack.mulPoseMatrix(modelViewMatrix); + modelViewStack.mulPose(Axis.XP.rotationDegrees(orbitDegrees)); + modelViewStack.mulPose(Axis.ZP.rotationDegrees(yawDegrees)); + modelViewStack.mulPose(Axis.YP.rotationDegrees(selfRotationDegrees)); + RenderSystem.applyModelViewMatrix(); + + float halfSize = BODY_SIZE * 0.5F * (radius / 22.0F); + float minU = 0.0F; + float maxU = 1.0F; + float minV = 0.0F; + float maxV = 1.0F; + if (usePhaseSheet) { + int phaseX = phaseIndex % 4; + int phaseY = phaseIndex / 4; + minU = phaseX / 4.0F; + maxU = (phaseX + 1) / 4.0F; + minV = phaseY / 2.0F; + maxV = (phaseY + 1) / 2.0F; + } + + BufferBuilder buffer = Tesselator.getInstance().getBuilder(); + buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); + buffer.vertex(-halfSize, SKY_RADIUS, -halfSize).uv(minU, minV).endVertex(); + buffer.vertex(-halfSize, SKY_RADIUS, halfSize).uv(minU, maxV).endVertex(); + buffer.vertex(halfSize, SKY_RADIUS, halfSize).uv(maxU, maxV).endVertex(); + buffer.vertex(halfSize, SKY_RADIUS, -halfSize).uv(maxU, minV).endVertex(); + BufferUploader.drawWithShader(buffer.end()); + + modelViewStack.popPose(); + RenderSystem.applyModelViewMatrix(); + RenderSystem.restoreProjectionMatrix(); + RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); + RenderSystem.defaultBlendFunc(); + RenderSystem.enableCull(); + RenderSystem.disableBlend(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TimeDilationFieldRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TimeDilationFieldRenderer.java new file mode 100644 index 00000000..3a825108 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TimeDilationFieldRenderer.java @@ -0,0 +1,25 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.time.TimeDilationFieldEntity; +import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.entity.EntityRenderer; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.resources.ResourceLocation; + +public class TimeDilationFieldRenderer extends EntityRenderer { + public TimeDilationFieldRenderer(EntityRendererProvider.Context context) { + super(context); + this.shadowRadius = 0.0F; + } + + @Override + public void render(TimeDilationFieldEntity entity, float entityYaw, float partialTick, PoseStack poseStack, + MultiBufferSource bufferSource, int packedLight) { + } + + @Override + public ResourceLocation getTextureLocation(TimeDilationFieldEntity entity) { + return new ResourceLocation("minecraft", "textures/misc/unknown_pack.png"); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/VortexRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/VortexRenderer.java new file mode 100644 index 00000000..a59a3144 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/VortexRenderer.java @@ -0,0 +1,19 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.model.VortexModel; +import com.craisinlord.antarchy.content.entity.vortex.VortexEntity; +import software.bernie.geckolib.renderer.GeoEntityRenderer; +import net.minecraft.client.renderer.entity.EntityRendererProvider; + +public class VortexRenderer extends GeoEntityRenderer { + public VortexRenderer(EntityRendererProvider.Context context) { + super(context, new VortexModel()); + this.shadowRadius = 0.5F; + this.withScale(0.9F); + } + + @Override + protected float getDeathMaxRotation(VortexEntity animatable) { + return 0.0F; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/WindVortexRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/WindVortexRenderer.java new file mode 100644 index 00000000..a90d33a6 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/WindVortexRenderer.java @@ -0,0 +1,115 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.entity.vortex.WindVortexEntity; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.EntityRenderer; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; +import org.joml.Matrix4f; + +public class WindVortexRenderer extends EntityRenderer { + private static final int RINGS = 11; + private static final float BASE_RADIUS = 0.35F; + + public WindVortexRenderer(EntityRendererProvider.Context context) { + super(context); + this.shadowRadius = 0.0F; + } + + @Override + public void render(WindVortexEntity entity, float entityYaw, float partialTick, PoseStack poseStack, + MultiBufferSource bufferSource, int packedLight) { + VertexConsumer consumer = bufferSource.getBuffer(RenderType.lightning()); + Matrix4f pose = poseStack.last().pose(); + float height = entity.getVortexHeight(); + float topRadius = entity.getTopRadius(); + float age = entity.tickCount + partialTick; + float fadeIn = Mth.clamp(age / 8.0F, 0.0F, 1.0F); + float alphaMultiplier = fadeIn * entity.getFadeOutProgress(partialTick); + WindVortexEntity.Basis basis = entity.basis(); + boolean pull = entity.getMode() == WindVortexEntity.VortexMode.LENS_PULL; + boolean push = entity.getMode() == WindVortexEntity.VortexMode.LENS_PUSH; + float spinDirection = pull ? -1.0F : 1.0F; + + for (int ring = 0; ring < RINGS; ring++) { + float progress = (ring + 0.25F) / RINGS; + float axisDistance = progress * height; + float shapeProgress = pull ? 1.0F - progress : progress; + float radius = Mth.lerp(shapeProgress, BASE_RADIUS, topRadius); + float ringSpin = spinDirection * age * (0.13F + progress * 0.045F) + ring * 0.47F; + float alpha = alphaMultiplier; + float halfSide = radius * 0.92F; + float lineThickness = Math.max(0.045F, radius * 0.12F); + int red = push ? 70 : 64; + int green = push ? 220 : 255; + int blue = push ? 255 : 56; + drawSquareRing(consumer, pose, basis, halfSide, axisDistance, lineThickness, ringSpin, + alpha, red, green, blue); + } + + super.render(entity, entityYaw, partialTick, poseStack, bufferSource, packedLight); + } + + private static void drawSquareRing(VertexConsumer consumer, Matrix4f pose, WindVortexEntity.Basis basis, + float halfSide, float axisDistance, float lineThickness, float rotation, float alpha, + int red, int green, int blue) { + for (int side = 0; side < 4; side++) { + float sideAngle = rotation + side * (Mth.TWO_PI / 4.0F); + addSquareSide(consumer, pose, basis, halfSide, axisDistance, lineThickness, + sideAngle, alpha, red, green, blue); + } + } + + private static void addSquareSide(VertexConsumer consumer, Matrix4f pose, WindVortexEntity.Basis basis, + float halfSide, float axisDistance, float lineThickness, float sideAngle, + float alpha, int red, int green, int blue) { + org.joml.Vector3f start = squarePoint(basis, halfSide, axisDistance, sideAngle, -halfSide); + org.joml.Vector3f end = squarePoint(basis, halfSide, axisDistance, sideAngle, halfSide); + org.joml.Vector3f axisOffset = new org.joml.Vector3f( + (float) basis.axis.x, (float) basis.axis.y, (float) basis.axis.z).mul(lineThickness); + int a = Mth.clamp((int) (alpha * 255.0F), 0, 255); + addQuad(consumer, pose, start, end, axisOffset, red, green, blue, a); + } + + private static org.joml.Vector3f squarePoint(WindVortexEntity.Basis basis, float halfSide, + float axisDistance, float sideAngle, float along) { + float x = Mth.cos(sideAngle) * halfSide; + float z = Mth.sin(sideAngle) * halfSide; + float tangentX = -Mth.sin(sideAngle) * along; + float tangentZ = Mth.cos(sideAngle) * along; + return new org.joml.Vector3f( + (float) (basis.axis.x * axisDistance + basis.sideA.x * (x + tangentX) + basis.sideB.x * (z + tangentZ)), + (float) (basis.axis.y * axisDistance + basis.sideA.y * (x + tangentX) + basis.sideB.y * (z + tangentZ)), + (float) (basis.axis.z * axisDistance + basis.sideA.z * (x + tangentX) + basis.sideB.z * (z + tangentZ))); + } + + private static void addQuad(VertexConsumer consumer, Matrix4f pose, org.joml.Vector3f start, + org.joml.Vector3f end, org.joml.Vector3f offset, int red, int green, int blue, int alpha) { + addVertex(consumer, pose, start.x - offset.x, start.y - offset.y, start.z - offset.z, red, green, blue, alpha); + addVertex(consumer, pose, end.x - offset.x, end.y - offset.y, end.z - offset.z, red, green, blue, alpha); + addVertex(consumer, pose, end.x + offset.x, end.y + offset.y, end.z + offset.z, red, green, blue, alpha); + addVertex(consumer, pose, start.x + offset.x, start.y + offset.y, start.z + offset.z, red, green, blue, alpha); + + // The lightning render type can cull one winding from some camera + // angles. Emit the opposite winding as well so every ribbon is + // visible from both sides. + addVertex(consumer, pose, start.x + offset.x, start.y + offset.y, start.z + offset.z, red, green, blue, alpha); + addVertex(consumer, pose, end.x + offset.x, end.y + offset.y, end.z + offset.z, red, green, blue, alpha); + addVertex(consumer, pose, end.x - offset.x, end.y - offset.y, end.z - offset.z, red, green, blue, alpha); + addVertex(consumer, pose, start.x - offset.x, start.y - offset.y, start.z - offset.z, red, green, blue, alpha); + } + + private static void addVertex(VertexConsumer consumer, Matrix4f pose, float x, float y, float z, + int red, int green, int blue, int alpha) { + consumer.vertex(pose, x, y, z).color(red, green, blue, alpha).endVertex(); + } + + @Override + public ResourceLocation getTextureLocation(WindVortexEntity entity) { + return new ResourceLocation("minecraft", "textures/misc/unknown_pack.png"); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/WormRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/WormRenderer.java new file mode 100644 index 00000000..d92f43a7 --- /dev/null +++ b/common-1.20.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.20.1/src/main/java/com/craisinlord/antarchy/content/client/screen/RoyalJudgmentScreen.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/screen/RoyalJudgmentScreen.java new file mode 100644 index 00000000..605ac1df --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/screen/RoyalJudgmentScreen.java @@ -0,0 +1,32 @@ +package com.craisinlord.antarchy.content.client.screen; + +import com.craisinlord.antarchy.content.menu.RoyalJudgmentMenu; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Inventory; + +public final class RoyalJudgmentScreen extends AbstractContainerScreen { + private static final ResourceLocation INVENTORY_TEXTURE = + new ResourceLocation("minecraft", "textures/gui/container/inventory.png"); + + public RoyalJudgmentScreen(RoyalJudgmentMenu menu, Inventory inventory, Component title) { + super(menu, inventory, title); + this.imageWidth = 176; + this.imageHeight = 166; + this.inventoryLabelY = 84; + } + + @Override + protected void renderBg(GuiGraphics graphics, float partialTick, int mouseX, int mouseY) { + graphics.blit(INVENTORY_TEXTURE, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight); + int gold = 0xD8E6B84A; + graphics.fill(this.leftPos - 2, this.topPos - 2, this.leftPos + this.imageWidth + 2, this.topPos, gold); + graphics.fill(this.leftPos - 2, this.topPos + this.imageHeight, this.leftPos + this.imageWidth + 2, + this.topPos + this.imageHeight + 2, gold); + graphics.fill(this.leftPos - 2, this.topPos - 2, this.leftPos, this.topPos + this.imageHeight + 2, gold); + graphics.fill(this.leftPos + this.imageWidth, this.topPos - 2, this.leftPos + this.imageWidth + 2, + this.topPos + this.imageHeight + 2, gold); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/command/DimensionalTearCommand.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/command/DimensionalTearCommand.java new file mode 100644 index 00000000..a04c5d93 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/command/DimensionalTearCommand.java @@ -0,0 +1,77 @@ +package com.craisinlord.antarchy.content.command; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.entity.portal.DimensionalTearEntity; +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.DoubleArgumentType; +import com.mojang.brigadier.context.CommandContext; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.util.Mth; +import net.minecraft.world.phys.Vec3; + +public final class DimensionalTearCommand { + private static final double DEFAULT_GAP = 24.0D; + private static final double VERTICAL_OFFSET = 1.0D; + + private DimensionalTearCommand() { + } + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("dimensionaltear") + .requires(source -> source.hasPermission(2)) + .executes(context -> spawnPair(context, DEFAULT_GAP)) + .then(Commands.literal("single") + .executes(DimensionalTearCommand::spawnSingle)) + .then(Commands.argument("blocksAhead", DoubleArgumentType.doubleArg(2.0D, 512.0D)) + .executes(context -> spawnPair(context, DoubleArgumentType.getDouble(context, "blocksAhead")))) + ); + } + + private static int lifetime() { + return Math.max(1200, AntarchySettings.dimensionalTearLifetimeTicks()); + } + + private static Vec3 anchorPos(ServerPlayer player) { + Vec3 forward = player.getLookAngle().normalize(); + return player.position().add(forward.scale(4.0D)).add(0.0D, VERTICAL_OFFSET, 0.0D); + } + + private static int spawnSingle(CommandContext context) throws com.mojang.brigadier.exceptions.CommandSyntaxException { + ServerPlayer player = context.getSource().getPlayerOrException(); + ServerLevel level = context.getSource().getLevel(); + DimensionalTearEntity tear = DimensionalTearEntity.create(level, anchorPos(player), player.getYRot(), lifetime()); + level.addFreshEntity(tear); + context.getSource().sendSuccess(() -> Component.literal("Spawned an unlinked dimensional tear"), true); + return 1; + } + + private static int spawnPair(CommandContext context, double gap) throws com.mojang.brigadier.exceptions.CommandSyntaxException { + ServerPlayer player = context.getSource().getPlayerOrException(); + ServerLevel level = context.getSource().getLevel(); + + float yawA = player.getYRot(); + Vec3 posA = anchorPos(player); + Vec3 forward = Vec3.directionFromRotation(0.0F, yawA); + Vec3 posB = posA.add(forward.scale(gap)); + float yawB = Mth.wrapDegrees(yawA + 180.0F); + + DimensionalTearEntity tearA = DimensionalTearEntity.create(level, posA, yawA, lifetime()); + DimensionalTearEntity tearB = DimensionalTearEntity.create(level, posB, yawB, lifetime()); + tearA.linkTo(tearB); + tearB.linkTo(tearA); + level.addFreshEntity(tearA); + level.addFreshEntity(tearB); + + int spacing = Mth.floor(gap); + context.getSource().sendSuccess( + () -> Component.literal("Spawned a linked dimensional tear pair, " + spacing + " blocks apart"), + true + ); + return 1; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/command/RoyalCommand.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/command/RoyalCommand.java new file mode 100644 index 00000000..2c64b331 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/command/RoyalCommand.java @@ -0,0 +1,71 @@ +package com.craisinlord.antarchy.content.command; + +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import com.craisinlord.antarchy.content.entity.royal.RoyalPunishmentType; +import com.craisinlord.antarchy.content.entity.royal.decree.RoyalDecree; +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.phys.AABB; + +public final class RoyalCommand { + private RoyalCommand() { + } + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register(Commands.literal("royal") + .requires(source -> source.hasPermission(2)) + .then(Commands.literal("decree") + .then(Commands.argument("id", StringArgumentType.word()) + .executes(RoyalCommand::activateDecree))) + .then(Commands.literal("punishment") + .then(Commands.argument("id", StringArgumentType.word()) + .executes(RoyalCommand::triggerPunishment)))); + } + + private static int activateDecree(CommandContext context) throws CommandSyntaxException { + ServerPlayer player = context.getSource().getPlayerOrException(); + KingEntity king = nearestKing(player); + if (king == null) { + context.getSource().sendFailure(Component.literal("No King found nearby.")); + return 0; + } + String id = StringArgumentType.getString(context, "id"); + if (!king.debugActivateDecree(id, player)) { + context.getSource().sendFailure(Component.literal("Unknown decree: " + id)); + return 0; + } + context.getSource().sendSuccess(() -> Component.literal("Activated decree " + id), true); + return 1; + } + + private static int triggerPunishment(CommandContext context) throws CommandSyntaxException { + ServerPlayer player = context.getSource().getPlayerOrException(); + KingEntity king = nearestKing(player); + if (king == null) { + context.getSource().sendFailure(Component.literal("No King found nearby.")); + return 0; + } + String id = StringArgumentType.getString(context, "id"); + RoyalPunishmentType type = RoyalPunishmentType.fromId(id); + if (type == null || !king.debugTriggerPunishment(type, player)) { + context.getSource().sendFailure(Component.literal("Unknown or unavailable punishment: " + id)); + return 0; + } + context.getSource().sendSuccess(() -> Component.literal("Triggered punishment " + type.id()), true); + return 1; + } + + private static KingEntity nearestKing(ServerPlayer player) { + AABB area = player.getBoundingBox().inflate(128.0D); + return player.serverLevel().getEntitiesOfClass(KingEntity.class, area, LivingEntity::isAlive).stream() + .min((left, right) -> Double.compare(left.distanceToSqr(player), right.distanceToSqr(player))) + .orElse(null); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/dispenser/EyeOfTheStormDispenseBehavior.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/dispenser/EyeOfTheStormDispenseBehavior.java new file mode 100644 index 00000000..f9d41c1c --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/dispenser/EyeOfTheStormDispenseBehavior.java @@ -0,0 +1,37 @@ +package com.craisinlord.antarchy.content.dispenser; + +import com.craisinlord.antarchy.content.item.EyeOfTheStormItem; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.BlockSource; +import net.minecraft.core.dispenser.DefaultDispenseItemBehavior; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.DispenserBlock; +import net.minecraft.world.phys.Vec3; + +public class EyeOfTheStormDispenseBehavior extends DefaultDispenseItemBehavior { + @Override + protected ItemStack execute(BlockSource source, ItemStack stack) { + ServerLevel level = source.getLevel(); + Direction direction = source.getBlockState().getValue(DispenserBlock.FACING); + BlockPos pos = source.getPos().relative(direction); + Vec3 origin = new Vec3(pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D); + Vec3 aim = new Vec3(direction.getStepX(), direction.getStepY(), direction.getStepZ()); + + EyeOfTheStormItem.launchStormVortex(level, origin, aim, null); + + if (stack.isDamageableItem()) { + stack.setDamageValue(stack.getDamageValue() + 1); + if (stack.getDamageValue() >= stack.getMaxDamage()) { + stack.shrink(1); + } + } + return stack; + } + + @Override + protected void playSound(BlockSource source) { + source.getLevel().levelEvent(1002, source.getPos(), 0); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/dispenser/VortexChargeDispenseBehavior.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/dispenser/VortexChargeDispenseBehavior.java new file mode 100644 index 00000000..352aabd5 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/dispenser/VortexChargeDispenseBehavior.java @@ -0,0 +1,38 @@ +package com.craisinlord.antarchy.content.dispenser; + +import com.craisinlord.antarchy.content.entity.vortex.VortexChargeProjectileEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.BlockSource; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.DispenserBlock; +import net.minecraft.world.level.block.entity.DispenserBlockEntity; +import net.minecraft.core.dispenser.DefaultDispenseItemBehavior; + +public class VortexChargeDispenseBehavior extends DefaultDispenseItemBehavior { + @Override + protected ItemStack execute(BlockSource source, ItemStack stack) { + if (VortexChargeProjectileEntity.defaultItemSupplier == null) { + return super.execute(source, stack); + } + + ServerLevel level = source.getLevel(); + Direction direction = source.getBlockState().getValue(DispenserBlock.FACING); + BlockPos pos = source.getPos().relative(direction); + double x = pos.getX() + 0.5D; + double y = pos.getY() + 0.5D; + double z = pos.getZ() + 0.5D; + + VortexChargeProjectileEntity projectile = new VortexChargeProjectileEntity(level, x, y, z); + projectile.shoot(direction.getStepX(), direction.getStepY() + 0.1D, direction.getStepZ(), 1.5F, 1.0F); + level.addFreshEntity(projectile); + stack.shrink(1); + return stack; + } + + @Override + protected void playSound(BlockSource source) { + source.getLevel().levelEvent(1002, source.getPos(), 0); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/CommandedBehavior.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/CommandedBehavior.java new file mode 100644 index 00000000..8286d21a --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/CommandedBehavior.java @@ -0,0 +1,127 @@ +package com.craisinlord.antarchy.content.effect; + +import java.util.UUID; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Mob; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.ai.attributes.Attributes; + +public final class CommandedBehavior { + private CommandedBehavior() { + } + + public static void tick(Mob mob) { + if (!(mob instanceof CommandedEntityAccess access)) { + return; + } + UUID commanderUuid = access.antarchy$getCommanderUuid(); + if (commanderUuid == null || mob.level().getServer() == null) { + clear(mob); + return; + } + Entity commander = mob.level() instanceof ServerLevel level ? level.getEntity(commanderUuid) : null; + if (commander == null || commander.level() != mob.level() || !RoyalEffectEligibility.canApplyCommanded(mob)) { + mob.removeEffect(RoyalEffectHooks.commandedHolder()); + clear(mob); + return; + } + LivingEntity target = mob.getTarget(); + if (target != null && isProtectedAlly(mob, target)) { + mob.setTarget(null); + target = null; + } + if (target != null) { + tryPassiveCommandedAttack(mob, target); + } + if (mob.tickCount % 10 != 0 || target != null) { + return; + } + LivingEntity candidate = commander instanceof Mob commanderMob ? commanderMob.getTarget() : null; + if (!isValidTarget(mob, commander, candidate)) { + candidate = commander instanceof net.minecraft.world.entity.player.Player player ? player.getLastHurtByMob() : null; + } + if (!isValidTarget(mob, commander, candidate)) { + candidate = mob.getLastHurtByMob(); + } + if (!isValidTarget(mob, commander, candidate)) { + candidate = commander instanceof net.minecraft.world.entity.player.Player player ? player.getLastHurtMob() : null; + } + if (!isValidTarget(mob, commander, candidate)) { + candidate = mob.getLastHurtByMob(); + } + if (!isValidTarget(mob, commander, candidate)) { + candidate = mob.level().getEntitiesOfClass(LivingEntity.class, mob.getBoundingBox().inflate(16.0D), + entity -> isValidTarget(mob, commander, entity)).stream() + .min((a, b) -> { + int distance = Double.compare(mob.distanceToSqr(a), mob.distanceToSqr(b)); + return distance != 0 ? distance : Integer.compare(a.getId(), b.getId()); + }).orElse(null); + } + if (candidate != null) { + mob.setTarget(candidate); + access.antarchy$setCommandedTargetOwned(true); + } + } + + public static boolean isProtectedAlly(Mob mob, Entity entity) { + if (!(mob instanceof CommandedEntityAccess access) || entity == null) { + return false; + } + UUID commanderUuid = access.antarchy$getCommanderUuid(); + if (commanderUuid == null) { + return false; + } + if (entity.getUUID().equals(commanderUuid)) { + return true; + } + if (entity instanceof Mob other && other instanceof CommandedEntityAccess otherAccess) { + return commanderUuid.equals(otherAccess.antarchy$getCommanderUuid()); + } + if (entity instanceof LivingEntity living && living.isAlliedTo(mob)) { + return true; + } + if (entity instanceof LivingEntity living && commanderEntity(mob) instanceof LivingEntity livingCommander) { + return living.isAlliedTo(livingCommander); + } + return false; + } + + private static boolean isValidTarget(Mob mob, Entity commander, LivingEntity target) { + return target != null && target.isAlive() && target != mob && target != commander + && !isProtectedAlly(mob, target) && !target.isAlliedTo(commander); + } + + private static void tryPassiveCommandedAttack(Mob mob, LivingEntity target) { + if (mob.getAttribute(Attributes.ATTACK_DAMAGE) != null + && mob.getAttributeValue(Attributes.ATTACK_DAMAGE) > 0.0D) { + return; + } + mob.getNavigation().moveTo(target, 1.0D); + if (mob.tickCount % 20 != 0 || mob.distanceToSqr(target) > 4.0D) { + return; + } + if (target.hurt(mob.damageSources().mobAttack(mob), 1.0F)) { + mob.swing(net.minecraft.world.InteractionHand.MAIN_HAND); + } + } + + private static Entity commanderEntity(Mob mob) { + if (!(mob instanceof CommandedEntityAccess access) || mob.level().getServer() == null) { + return null; + } + UUID uuid = access.antarchy$getCommanderUuid(); + return uuid == null || !(mob.level() instanceof ServerLevel level) ? null : level.getEntity(uuid); + } + + public static void clear(Mob mob) { + if (!(mob instanceof CommandedEntityAccess access)) { + return; + } + if (access.antarchy$isCommandedTargetOwned()) { + mob.setTarget(null); + } + access.antarchy$setCommandedTargetOwned(false); + access.antarchy$setCommanderUuid(null); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/CommandedEntityAccess.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/CommandedEntityAccess.java new file mode 100644 index 00000000..6907148d --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/CommandedEntityAccess.java @@ -0,0 +1,10 @@ +package com.craisinlord.antarchy.content.effect; + +import java.util.UUID; + +public interface CommandedEntityAccess { + UUID antarchy$getCommanderUuid(); + void antarchy$setCommanderUuid(UUID uuid); + boolean antarchy$isCommandedTargetOwned(); + void antarchy$setCommandedTargetOwned(boolean owned); +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/CommandedMobEffect.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/CommandedMobEffect.java new file mode 100644 index 00000000..2b033926 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/CommandedMobEffect.java @@ -0,0 +1,24 @@ +package com.craisinlord.antarchy.content.effect; + +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectCategory; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Mob; + +public final class CommandedMobEffect extends MobEffect { + public CommandedMobEffect() { + super(MobEffectCategory.HARMFUL, 0xD4AF37); + } + + @Override + public void applyEffectTick(LivingEntity entity, int amplifier) { + if (!entity.level().isClientSide() && entity instanceof Mob mob) { + CommandedBehavior.tick(mob); + } + } + + @Override + public boolean isDurationEffectTick(int duration, int amplifier) { + return true; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/ContractedMobEffect.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/ContractedMobEffect.java new file mode 100644 index 00000000..4f2a8f67 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/ContractedMobEffect.java @@ -0,0 +1,28 @@ +package com.craisinlord.antarchy.content.effect; + +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectCategory; +import net.minecraft.world.entity.LivingEntity; + +/** Accelerates the affected entity's local time rate. */ +public final class ContractedMobEffect extends MobEffect { + public static final double RATE = 2.0D; + public static final double STRONG_RATE = 3.0D; + + public ContractedMobEffect() { + super(MobEffectCategory.BENEFICIAL, 0xD5A63A); + } + + @Override + public void applyEffectTick(LivingEntity entity, int amplifier) { + } + + @Override + public boolean isDurationEffectTick(int duration, int amplifier) { + return true; + } + + public static double rateForAmplifier(int amplifier) { + return amplifier > 0 ? STRONG_RATE : RATE; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/DilatedMobEffect.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/DilatedMobEffect.java new file mode 100644 index 00000000..57498f8b --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/DilatedMobEffect.java @@ -0,0 +1,27 @@ +package com.craisinlord.antarchy.content.effect; + +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectCategory; +import net.minecraft.world.entity.LivingEntity; + +public final class DilatedMobEffect extends MobEffect { + public static final double RATE = 0.35D; + public static final double STRONG_RATE = 0.2D; + + public DilatedMobEffect() { + super(MobEffectCategory.HARMFUL, 0x6C4AB6); + } + + @Override + public void applyEffectTick(LivingEntity entity, int amplifier) { + } + + @Override + public boolean isDurationEffectTick(int duration, int amplifier) { + return true; + } + + public static double rateForAmplifier(int amplifier) { + return amplifier > 0 ? STRONG_RATE : RATE; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/RoyalEffectEligibility.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/RoyalEffectEligibility.java new file mode 100644 index 00000000..b18c4422 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/RoyalEffectEligibility.java @@ -0,0 +1,58 @@ +package com.craisinlord.antarchy.content.effect; + +import com.craisinlord.antarchy.content.AntarchyTags; +import com.craisinlord.antarchy.content.item.RoyalAssailantArmorItem; +import com.craisinlord.antarchy.content.item.RoyalGuardianArmorItem; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.player.Player; +import com.craisinlord.antarchy.content.entity.royal.RoyalBossEntity; + +public final class RoyalEffectEligibility { + private RoyalEffectEligibility() { + } + + public static boolean isCommanded(MobEffectInstance instance) { + return RoyalEffectHooks.commandedHolder() != null && instance.getEffect() == RoyalEffectHooks.commandedHolder(); + } + + public static boolean isDilated(MobEffectInstance instance) { + return RoyalEffectHooks.dilatedHolder() != null && instance.getEffect() == RoyalEffectHooks.dilatedHolder(); + } + + public static boolean canApplyCommanded(LivingEntity entity) { + return entity instanceof Mob mob + && !(entity instanceof Player) + && !entity.getType().is(AntarchyTags.Entities.COMMANDED_BLACKLIST) + && !(mob.isNoAi()) + && !(entity.getItemBySlot(net.minecraft.world.entity.EquipmentSlot.HEAD).getItem() instanceof RoyalGuardianArmorItem) + && !(entity.getItemBySlot(net.minecraft.world.entity.EquipmentSlot.CHEST).getItem() instanceof RoyalGuardianArmorItem) + && !(entity.getItemBySlot(net.minecraft.world.entity.EquipmentSlot.LEGS).getItem() instanceof RoyalGuardianArmorItem) + && !(entity.getItemBySlot(net.minecraft.world.entity.EquipmentSlot.FEET).getItem() instanceof RoyalGuardianArmorItem); + } + + public static boolean canApplyDilated(LivingEntity entity) { + return !entity.getType().is(AntarchyTags.Entities.DILATED_BLACKLIST) + && !entity.getType().is(AntarchyTags.Entities.TIME_DILATION_IMMUNE) + && !(entity.getItemBySlot(net.minecraft.world.entity.EquipmentSlot.HEAD).getItem() instanceof RoyalAssailantArmorItem) + && !(entity.getItemBySlot(net.minecraft.world.entity.EquipmentSlot.CHEST).getItem() instanceof RoyalAssailantArmorItem) + && !(entity.getItemBySlot(net.minecraft.world.entity.EquipmentSlot.LEGS).getItem() instanceof RoyalAssailantArmorItem) + && !(entity.getItemBySlot(net.minecraft.world.entity.EquipmentSlot.FEET).getItem() instanceof RoyalAssailantArmorItem); + } + + public static boolean canApply(LivingEntity entity, MobEffectInstance instance) { + if (isCommanded(instance)) { + return canApplyCommanded(entity); + } + if (isDilated(instance)) { + return canApplyDilated(entity); + } + return true; + } + + public static boolean canUseCommandSource(Entity source) { + return source instanceof Player || source instanceof RoyalBossEntity; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/RoyalEffectHooks.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/RoyalEffectHooks.java new file mode 100644 index 00000000..451cf5cb --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/RoyalEffectHooks.java @@ -0,0 +1,32 @@ +package com.craisinlord.antarchy.content.effect; + +import com.craisinlord.antarchy.Antarchy; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.effect.MobEffect; + +public final class RoyalEffectHooks { + private static final ResourceKey COMMANDED_KEY = ResourceKey.create(Registries.MOB_EFFECT, + new ResourceLocation(Antarchy.MODID, "commanded")); + private static final ResourceKey DILATED_KEY = ResourceKey.create(Registries.MOB_EFFECT, + new ResourceLocation(Antarchy.MODID, "dilated")); + private static final ResourceKey CONTRACTED_KEY = ResourceKey.create(Registries.MOB_EFFECT, + new ResourceLocation(Antarchy.MODID, "contracted")); + + private RoyalEffectHooks() { + } + + public static MobEffect commandedHolder() { + return BuiltInRegistries.MOB_EFFECT.get(COMMANDED_KEY); + } + + public static MobEffect dilatedHolder() { + return BuiltInRegistries.MOB_EFFECT.get(DILATED_KEY); + } + + public static MobEffect contractedHolder() { + return BuiltInRegistries.MOB_EFFECT.get(CONTRACTED_KEY); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/TimeDilationEligibility.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/TimeDilationEligibility.java new file mode 100644 index 00000000..c36c9db3 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/effect/TimeDilationEligibility.java @@ -0,0 +1,22 @@ +package com.craisinlord.antarchy.content.effect; + +import com.craisinlord.antarchy.content.AntarchyTags; +import net.minecraft.world.entity.LivingEntity; + +/** + * Version-neutral eligibility rules for the Dilated effect. + * + * The 1.21 implementation also checks Royal armor. Those items do not exist + * in the 1.20 source set yet, so the shared 1.20 rule set intentionally + * retains the entity-tag checks here and can be extended when Royal content + * is ported. + */ +public final class TimeDilationEligibility { + private TimeDilationEligibility() { + } + + public static boolean canApply(LivingEntity entity) { + return !entity.getType().is(AntarchyTags.Entities.TIME_DILATION_IMMUNE) + && !entity.getType().is(AntarchyTags.Entities.DILATED_BLACKLIST); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/HoverboardEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/HoverboardEntity.java new file mode 100644 index 00000000..a34a71bd --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/HoverboardEntity.java @@ -0,0 +1,297 @@ +package com.craisinlord.antarchy.content.entity; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi; +import com.craisinlord.antarchy.content.gravity.AntarchyGravityDirection; +import com.craisinlord.antarchy.content.gravity.AntarchyGravityRotationUtil; +import com.craisinlord.antarchy.mixins.LivingEntityJumpingAccessor; +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.sounds.SoundEvents; +import net.minecraft.util.Mth; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +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.Mob; +import net.minecraft.world.entity.MoverType; +import net.minecraft.world.entity.PathfinderMob; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.animatable.GeoEntity; +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.AnimationState; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.core.animation.RawAnimation; +import software.bernie.geckolib.util.GeckoLibUtil; + +public class HoverboardEntity extends PathfinderMob implements GeoEntity { + private static final EntityDataAccessor COLOR = SynchedEntityData.defineId(HoverboardEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor TRAIL_ACTIVE = SynchedEntityData.defineId(HoverboardEntity.class, EntityDataSerializers.BOOLEAN); + + private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("idle"); + private static final RawAnimation MOVE_ANIM = RawAnimation.begin().thenLoop("move"); + + private static final double MAX_HOVER_HEIGHT = 5.0D; + private static final double ASCEND_SPEED = 0.2D; + private static final double SETTLE_DESCEND_SPEED = 0.08D; + private static final double FAST_DESCEND_SPEED = 0.9D; + private static final double FAST_DESCEND_RAMP = 0.2D; + private static final double DAMPING = 0.955D; + private static final double RIDER_Y_OFFSET = 0.65D; + + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + + public HoverboardEntity(EntityType entityType, Level level) { + super(entityType, level); + this.setNoGravity(true); + this.setPersistenceRequired(); + } + + public static AttributeSupplier.Builder createAttributes() { + return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 6.0D); + } + + @Override + public boolean hurt(DamageSource source, float amount) { + if (this.level().isClientSide || !this.isAlive()) { + return false; + } + if (this.isInvulnerableTo(source)) { + return false; + } + this.ejectPassengers(); + this.playSound(SoundEvents.WOOD_BREAK, 1.0F, 1.0F); + this.spawnAtLocation(this.getDropStack()); + this.discard(); + return true; + } + + @Override + protected void registerGoals() { + } + + @Override + protected void defineSynchedData() { + super.defineSynchedData(); + this.entityData.define(COLOR, -1); + this.entityData.define(TRAIL_ACTIVE, false); + } + + @Nullable + public DyeColor getColor() { + int id = this.entityData.get(COLOR); + return id < 0 ? null : DyeColor.byId(id); + } + + public void setColor(@Nullable DyeColor color) { + this.entityData.set(COLOR, color == null ? -1 : color.getId()); + } + + public boolean isTrailActive() { + return this.entityData.get(TRAIL_ACTIVE); + } + + private void setTrailActive(boolean active) { + this.entityData.set(TRAIL_ACTIVE, active); + } + + @Override + public void addAdditionalSaveData(CompoundTag tag) { + super.addAdditionalSaveData(tag); + if (this.getColor() != null) { + tag.putString("Color", this.getColor().getName()); + } + } + + @Override + public void readAdditionalSaveData(CompoundTag tag) { + super.readAdditionalSaveData(tag); + this.setColor(tag.contains("Color") ? DyeColor.byName(tag.getString("Color"), null) : null); + } + + @Override + protected InteractionResult mobInteract(Player player, InteractionHand hand) { + if (!this.isVehicle() && !player.isSecondaryUseActive()) { + if (!this.level().isClientSide) { + player.startRiding(this); + } + return InteractionResult.sidedSuccess(this.level().isClientSide); + } + return super.mobInteract(player, hand); + } + + @Override + @Nullable + public LivingEntity getControllingPassenger() { + Entity passenger = this.getFirstPassenger(); + return passenger instanceof Player player ? player : null; + } + + @Override + public boolean canAddPassenger(Entity passenger) { + return this.getPassengers().isEmpty(); + } + + @Override + protected void positionRider(Entity passenger, MoveFunction moveFunction) { + if (!this.hasPassenger(passenger)) { + return; + } + Vec3 riderOffset = AntarchyGravityRotationUtil.vecPlayerToWorld( + 0.0D, + RIDER_Y_OFFSET, + 0.0D, + AntarchyGravityApi.getGravityDirection(this) + ); + moveFunction.accept(passenger, this.getX() + riderOffset.x, this.getY() + riderOffset.y, this.getZ() + riderOffset.z); + } + + @Override + public void travel(Vec3 travelVector) { + if (this.getControllingPassenger() instanceof Player rider) { + this.setYRot(rider.getYRot()); + this.yRotO = this.getYRot(); + this.yBodyRot = this.getYRot(); + this.yHeadRot = this.getYRot(); + this.setXRot(0.0F); + + Vec3 look = Vec3.directionFromRotation(0.0F, this.getYRot()); + float forward = rider.zza; + this.setTrailActive(forward > 0.0F); + boolean holdingJump = ((LivingEntityJumpingAccessor) rider).antarchy$isJumping(); + double verticalMotion = this.resolveVerticalMotion(holdingJump); + double acceleration = AntarchySettings.hoverboardAcceleration(); + double maxSpeed = AntarchySettings.hoverboardMaxSpeed(); + + Vec3 currentHorizontal = new Vec3(this.getDeltaMovement().x, 0.0D, this.getDeltaMovement().z); + Vec3 horizontalMotion = currentHorizontal.scale(DAMPING).add(look.scale(forward * acceleration)); + + double horizontalSpeed = horizontalMotion.horizontalDistance(); + if (horizontalSpeed > maxSpeed) { + double scale = maxSpeed / horizontalSpeed; + horizontalMotion = new Vec3(horizontalMotion.x * scale, 0.0D, horizontalMotion.z * scale); + } + + this.setDeltaMovement(horizontalMotion.x, verticalMotion, horizontalMotion.z); + this.move(MoverType.SELF, this.getDeltaMovement()); + return; + } + + this.setTrailActive(false); + double verticalMotion = this.resolveVerticalMotion(false); + Vec3 horizontalMotion = new Vec3(this.getDeltaMovement().x, 0.0D, this.getDeltaMovement().z).scale(DAMPING); + this.setDeltaMovement(horizontalMotion.x, verticalMotion, horizontalMotion.z); + this.move(MoverType.SELF, this.getDeltaMovement()); + } + + private double resolveVerticalMotion(boolean holdingJump) { + AntarchyGravityDirection gravityDirection = AntarchyGravityApi.getGravityDirection(this); + double supportHeight = this.findSupportHeight(gravityDirection); + if (!gravityDirection.isInverted()) { + double maxY = supportHeight + MAX_HOVER_HEIGHT; + if (holdingJump) { + return this.getY() >= maxY ? 0.0D : ASCEND_SPEED; + } + if (this.getY() <= supportHeight) { + return 0.0D; + } + double heightAboveBand = this.getY() - maxY; + if (heightAboveBand > 0.0D) { + return -Mth.clamp(SETTLE_DESCEND_SPEED + heightAboveBand * FAST_DESCEND_RAMP, SETTLE_DESCEND_SPEED, FAST_DESCEND_SPEED); + } + return -SETTLE_DESCEND_SPEED; + } + + double minY = supportHeight - MAX_HOVER_HEIGHT; + if (holdingJump) { + return this.getY() <= minY ? 0.0D : -ASCEND_SPEED; + } + if (this.getY() >= supportHeight) { + return 0.0D; + } + double depthBelowBand = minY - this.getY(); + if (depthBelowBand > 0.0D) { + return Mth.clamp(SETTLE_DESCEND_SPEED + depthBelowBand * FAST_DESCEND_RAMP, SETTLE_DESCEND_SPEED, FAST_DESCEND_SPEED); + } + return SETTLE_DESCEND_SPEED; + } + + private double findSupportHeight(AntarchyGravityDirection gravityDirection) { + BlockPos.MutableBlockPos pos = new BlockPos.MutableBlockPos(Mth.floor(this.getX()), Mth.floor(this.getY()), Mth.floor(this.getZ())); + if (!gravityDirection.isInverted()) { + int minY = this.level().getMinBuildHeight(); + while (pos.getY() > minY && this.level().getBlockState(pos).isAir()) { + pos.move(Direction.DOWN); + } + return pos.getY() + 1.0D; + } + + int maxY = this.level().getMaxBuildHeight() - 1; + while (pos.getY() < maxY && this.level().getBlockState(pos).isAir()) { + pos.move(Direction.UP); + } + return this.level().getBlockState(pos).isAir() ? this.getY() : pos.getY(); + } + + @Override + public boolean causeFallDamage(float fallDistance, float multiplier, DamageSource source) { + return false; + } + + @Override + public boolean removeWhenFarAway(double distanceToClosestPlayer) { + return false; + } + + @Override + public void die(DamageSource damageSource) { + super.die(damageSource); + if (!this.level().isClientSide) { + this.spawnAtLocation(this.getDropStack()); + } + } + + public ItemStack getDropStack() { + String path = this.getColor() == null ? "hoverboard" : "hoverboard_" + this.getColor().getName(); + Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(Antarchy.MODID, path)); + return new ItemStack(item); + } + + @Override + public ItemStack getPickResult() { + return this.getDropStack(); + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "movement", 0, this::movementController)); + } + + private PlayState movementController(AnimationState state) { + return state.setAndContinue(this.getDeltaMovement().horizontalDistanceSqr() > 0.0025D ? MOVE_ANIM : IDLE_ANIM); + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/ManticoreEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/ManticoreEntity.java new file mode 100644 index 00000000..9a97a65b --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/ManticoreEntity.java @@ -0,0 +1,508 @@ +package com.craisinlord.antarchy.content.entity; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.entity.royal.QueenEntity; +import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi; +import com.craisinlord.antarchy.content.gravity.AntarchyGravityDirection; +import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisUndersideManager; +import java.util.List; +import java.util.UUID; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.Difficulty; +import net.minecraft.world.DifficultyInstance; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.MobSpawnType; +import net.minecraft.world.entity.SpawnGroupData; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.ai.control.FlyingMoveControl; +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.WaterAvoidingRandomStrollGoal; +import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal; +import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal; +import net.minecraft.world.entity.ai.navigation.FlyingPathNavigation; +import net.minecraft.world.entity.ai.navigation.PathNavigation; +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.ServerLevelAccessor; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.animatable.GeoEntity; +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.AnimationState; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.core.animation.RawAnimation; +import software.bernie.geckolib.util.GeckoLibUtil; + +public class ManticoreEntity extends Monster implements GeoEntity { + private static final String SUMMONER_KEY = "QueenSummoner"; + private static final String PLAYER_SUMMONER_KEY = "PlayerSummoner"; + private static final String PLAYER_SUMMON_LIFETIME_KEY = "PlayerSummonLifetime"; + private static final int LOST_SUMMONER_GRACE_TICKS = 200; + private static final int TAKEOFF_COOLDOWN_TICKS = 40; + private static final int STING_COOLDOWN_TICKS = 60; + private static final float STING_CHANCE = 0.35F; + private static final int SWARM_RETARGET_INTERVAL = 40; + + private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("idle"); + private static final RawAnimation WALK_ANIM = RawAnimation.begin().thenLoop("walk"); + private static final RawAnimation FLY_ANIM = RawAnimation.begin().thenLoop("fly"); + private static final RawAnimation BITE_ANIM = RawAnimation.begin().thenPlay("bite"); + private static final RawAnimation FLY_BITE_ANIM = RawAnimation.begin().thenPlay("fly_bite"); + private static final RawAnimation STING_ANIM = RawAnimation.begin().thenPlay("sting"); + private static final RawAnimation FLY_START_ANIM = RawAnimation.begin().thenPlay("fly_start"); + private static final RawAnimation FLY_LAND_ANIM = RawAnimation.begin().thenPlay("fly_land"); + + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + + @Nullable + private UUID summonerId; + @Nullable + private UUID playerSummonerId; + private int playerSummonLifetime; + private int playerSummonAge; + private int lostSummonerTicks; + private int takeoffCooldown; + private int stingCooldown; + private boolean wasFlyingLastTick; + + public ManticoreEntity(EntityType type, Level level) { + super(type, level); + this.moveControl = new FlyingMoveControl(this, 10, true); + this.xpReward = 12; + } + + @Override + public boolean fireImmune() { + return true; + } + + public static AttributeSupplier.Builder createAttributes() { + return Mob.createMobAttributes() + .add(Attributes.MAX_HEALTH, AntarchySettings.manticoreHealth()) + .add(Attributes.MOVEMENT_SPEED, 0.3D) + .add(Attributes.FLYING_SPEED, 0.6D) + .add(Attributes.ATTACK_DAMAGE, AntarchySettings.manticoreAttackDamage()) + .add(Attributes.FOLLOW_RANGE, 28.0D) + .add(Attributes.KNOCKBACK_RESISTANCE, 0.2D); + } + + public static boolean canSpawn(EntityType type, ServerLevelAccessor level, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { + if (spawnReason == MobSpawnType.SPAWN_EGG || spawnReason == MobSpawnType.SPAWNER + || spawnReason == MobSpawnType.COMMAND || spawnReason == MobSpawnType.MOB_SUMMONED) { + return true; + } + if (pos.getY() >= 0) { + return false; + } + BlockState below = level.getBlockState(pos.below()); + BlockState above = level.getBlockState(pos.above()); + boolean floorSupport = !below.is(Blocks.BEDROCK) && below.isFaceSturdy(level, pos.below(), Direction.UP); + boolean ceilingSupport = !above.is(Blocks.BEDROCK) && above.isFaceSturdy(level, pos.above(), Direction.DOWN); + return level.getDifficulty() != Difficulty.PEACEFUL + && (floorSupport || ceilingSupport) + && level.isEmptyBlock(pos) + && Monster.checkMonsterSpawnRules(type, level, spawnReason, pos, random); + } + + @Override + protected PathNavigation createNavigation(Level level) { + FlyingPathNavigation navigation = new FlyingPathNavigation(this, level); + navigation.setCanOpenDoors(false); + navigation.setCanFloat(true); + navigation.setCanPassDoors(true); + return navigation; + } + + @Override + protected void registerGoals() { + this.goalSelector.addGoal(0, new FloatGoal(this)); + this.goalSelector.addGoal(1, new ManticoreAttackGoal(this)); + this.goalSelector.addGoal(3, new WaterAvoidingRandomStrollGoal(this, 0.9D)); + this.goalSelector.addGoal(4, new LookAtPlayerGoal(this, Player.class, 10.0F)); + this.goalSelector.addGoal(5, new RandomLookAroundGoal(this)); + this.targetSelector.addGoal(1, new HurtByTargetGoal(this)); + this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::canTargetEntity)); + } + + @Override + public SpawnGroupData finalizeSpawn(ServerLevelAccessor level, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData spawnData, @org.jetbrains.annotations.Nullable net.minecraft.nbt.CompoundTag dataTag) { + ConfiguredMobSpawnUtil.applyConfiguredHealth(this, AntarchySettings.manticoreHealth()); + return super.finalizeSpawn(level, difficulty, spawnReason, spawnData, dataTag); + } + + public void markQueenSummoned(UUID queenId) { + this.summonerId = queenId; + this.playerSummonerId = null; + this.lostSummonerTicks = 0; + this.setPersistenceRequired(); + } + + public void markPlayerSummoned(UUID playerId, int lifetimeTicks) { + this.playerSummonerId = playerId; + this.summonerId = null; + this.playerSummonLifetime = lifetimeTicks; + this.playerSummonAge = 0; + this.lostSummonerTicks = 0; + this.setPersistenceRequired(); + } + + public boolean isSummonedBy(UUID queenId) { + return queenId.equals(this.summonerId); + } + + public boolean isQueenSummoned() { + return this.summonerId != null; + } + + public boolean isPlayerSummoned() { + return this.playerSummonerId != null; + } + + @Override + public boolean isAlliedTo(Entity entity) { + if (entity != null && this.playerSummonerId != null && entity.getUUID().equals(this.playerSummonerId)) { + return true; + } + return super.isAlliedTo(entity); + } + + public static int countSummonedBy(ServerLevel level, UUID queenId) { + int count = 0; + for (Entity entity : level.getAllEntities()) { + if (entity instanceof ManticoreEntity manticore && manticore.isAlive() && manticore.isSummonedBy(queenId)) { + count++; + } + } + return count; + } + + @Override + public boolean removeWhenFarAway(double distanceToClosestPlayer) { + return this.summonerId == null && super.removeWhenFarAway(distanceToClosestPlayer); + } + + @Override + public boolean requiresCustomPersistence() { + return this.summonerId != null || this.playerSummonerId != null || super.requiresCustomPersistence(); + } + + @Override + public void tick() { + super.tick(); + if (this.level().isClientSide) { + return; + } + + this.tickQueenSummonInversionRule(); + + boolean flying = !this.onGround(); + if (flying != this.wasFlyingLastTick) { + this.triggerAnim("controller", flying ? "fly_start" : "fly_land"); + this.wasFlyingLastTick = flying; + } + + if (this.takeoffCooldown > 0) { + this.takeoffCooldown--; + } + if (this.stingCooldown > 0) { + this.stingCooldown--; + } + + this.tickQueenSummonCleanup(); + + this.tickPlayerSummon(); + this.tickQueenSummonTarget(); + + LivingEntity target = this.getTarget(); + if (target != null && target.isAlive()) { + if (this.onGround() && this.takeoffCooldown <= 0 && this.distanceToSqr(target) > 6.0D) { + this.takeoff(); + } + if (!this.isPlayerSummoned() && !this.isQueenSummoned() + && this.tickCount % SWARM_RETARGET_INTERVAL == 0) { + this.spreadSwarmTarget(target); + } + } + } + + private void tickPlayerSummon() { + if (this.playerSummonerId == null || !(this.level() instanceof ServerLevel serverLevel)) { + return; + } + if (++this.playerSummonAge >= this.playerSummonLifetime) { + this.discard(); + return; + } + Entity entity = serverLevel.getEntity(this.playerSummonerId); + if (!(entity instanceof Player player) || !player.isAlive()) { + this.discard(); + return; + } + LivingEntity target = player.getLastHurtMob(); + if (target == null || !target.isAlive() || !this.canTargetEntity(target)) { + target = player.getLastHurtByMob(); + } + if (target != null && target.isAlive() && this.canTargetEntity(target)) { + this.setTarget(target); + } else if (this.getTarget() != null && !this.canTargetEntity(this.getTarget())) { + this.setTarget(null); + } + } + + private void tickQueenSummonTarget() { + if (this.summonerId == null || !(this.level() instanceof ServerLevel serverLevel)) { + return; + } + Entity entity = serverLevel.getEntity(this.summonerId); + if (!(entity instanceof QueenEntity queen) || !queen.isAlive()) { + return; + } + LivingEntity target = queen.getTarget(); + if (target != null && target.isAlive() && this.canTargetEntity(target)) { + this.setTarget(target); + } else { + this.setTarget(null); + } + } + + private boolean canTargetEntity(LivingEntity target) { + if (target == null || target == this || this.isAlliedTo(target) || target.isAlliedTo(this)) { + return false; + } + if (this.playerSummonerId != null) { + if (!(this.level() instanceof ServerLevel serverLevel)) { + return false; + } + Entity entity = serverLevel.getEntity(this.playerSummonerId); + if (!(entity instanceof Player player)) { + return false; + } + return target == player.getLastHurtMob() || target == player.getLastHurtByMob(); + } + return true; + } + + @Override + public void setTarget(@Nullable LivingEntity target) { + super.setTarget(target != null && !this.canTargetEntity(target) ? null : target); + } + + private void tickQueenSummonCleanup() { + if (this.summonerId == null || !(this.level() instanceof ServerLevel serverLevel)) { + return; + } + Entity summoner = serverLevel.getEntity(this.summonerId); + if (summoner instanceof QueenEntity queen && queen.isAlive()) { + this.lostSummonerTicks = 0; + return; + } + if (++this.lostSummonerTicks > LOST_SUMMONER_GRACE_TICKS) { + this.discard(); + } + } + + private void takeoff() { + this.takeoffCooldown = TAKEOFF_COOLDOWN_TICKS; + this.setDeltaMovement(this.getDeltaMovement().add(0.0D, 0.55D, 0.0D)); + this.hasImpulse = true; + LivingEntity target = this.getTarget(); + if (target != null) { + Vec3 above = target.position().add(oppositeGravity(this).scale(3.0D)); + this.getMoveControl().setWantedPosition(above.x, above.y, above.z, 1.2D); + } + } + + private void spreadSwarmTarget(LivingEntity currentTarget) { + List nearbyPlayers = this.level().getEntitiesOfClass( + Player.class, + this.getBoundingBox().inflate(this.getAttributeValue(Attributes.FOLLOW_RANGE)), + player -> player.isAlive() && this.canAttack(player)); + if (nearbyPlayers.size() < 2) { + return; + } + + List swarm = this.level().getEntitiesOfClass( + ManticoreEntity.class, + this.getBoundingBox().inflate(32.0D), + manticore -> manticore != this && manticore.isAlive()); + + Player bestPlayer = null; + int bestLoad = Integer.MAX_VALUE; + for (Player player : nearbyPlayers) { + int load = 0; + for (ManticoreEntity manticore : swarm) { + if (manticore.getTarget() == player) { + load++; + } + } + if (load < bestLoad) { + bestLoad = load; + bestPlayer = player; + } + } + + int currentLoad = 0; + for (ManticoreEntity manticore : swarm) { + if (manticore.getTarget() == currentTarget) { + currentLoad++; + } + } + if (bestPlayer != null && bestPlayer != currentTarget && currentLoad - bestLoad >= 2) { + this.setTarget(bestPlayer); + } + } + + private static Vec3 oppositeGravity(Entity entity) { + return AntarchyGravityApi.isGravityInverted(entity) ? new Vec3(0.0D, -1.0D, 0.0D) : new Vec3(0.0D, 1.0D, 0.0D); + } + + private void tickQueenSummonInversionRule() { + if (!this.isQueenSummoned() || this.canUseQueenSummonInversion()) { + return; + } + if (this.hasEffect(AntarchyObjects.INVERTED_EFFECT.get())) { + this.removeEffect(AntarchyObjects.INVERTED_EFFECT.get()); + } + if (AntarchyGravityApi.isGravityInverted(this) && AntarchyGravityApi.isGravityForced(this)) { + AntarchyGravityApi.setGravityDirection(this, AntarchyGravityDirection.DOWN, false); + } + this.setNoGravity(false); + } + + private boolean canUseQueenSummonInversion() { + return ThoraxisUndersideManager.isThoraxis(this.level()) + && this.getY() < ThoraxisUndersideManager.GRAVITY_FLIP_Y + 4; + } + + void performSting(LivingEntity enemy) { + this.swing(InteractionHand.MAIN_HAND); + if (enemy.hurt(this.damageSources().mobAttack(this), (float) this.getAttributeValue(Attributes.ATTACK_DAMAGE))) { + enemy.addEffect(new MobEffectInstance(MobEffects.POISON, AntarchySettings.manticoreStingPoisonTicks(), 0), this); + } + this.stingCooldown = STING_COOLDOWN_TICKS; + this.triggerAnim("controller", "sting"); + } + + boolean stingReady() { + return this.stingCooldown <= 0; + } + + @Override + public boolean doHurtTarget(Entity target) { + boolean hurt = super.doHurtTarget(target); + if (hurt) { + this.triggerAnim("controller", this.onGround() ? "bite" : "fly_bite"); + } + return hurt; + } + + @Override + public boolean causeFallDamage(float fallDistance, float multiplier, DamageSource source) { + return false; + } + + @Override + public boolean canBeAffected(MobEffectInstance effectInstance) { + if (this.isQueenSummoned() && effectInstance.getEffect() == AntarchyObjects.INVERTED_EFFECT.get()) { + return this.canUseQueenSummonInversion(); + } + return super.canBeAffected(effectInstance); + } + + @Override + public boolean isInWall() { + return false; + } + + @Override + public void addAdditionalSaveData(CompoundTag tag) { + super.addAdditionalSaveData(tag); + if (this.summonerId != null) { + tag.putUUID(SUMMONER_KEY, this.summonerId); + } + if (this.playerSummonerId != null) { + tag.putUUID(PLAYER_SUMMONER_KEY, this.playerSummonerId); + tag.putInt(PLAYER_SUMMON_LIFETIME_KEY, this.playerSummonLifetime); + } + } + + @Override + public void readAdditionalSaveData(CompoundTag tag) { + super.readAdditionalSaveData(tag); + this.summonerId = tag.hasUUID(SUMMONER_KEY) ? tag.getUUID(SUMMONER_KEY) : null; + this.playerSummonerId = tag.hasUUID(PLAYER_SUMMONER_KEY) ? tag.getUUID(PLAYER_SUMMONER_KEY) : null; + this.playerSummonLifetime = tag.getInt(PLAYER_SUMMON_LIFETIME_KEY); + this.playerSummonAge = 0; + this.lostSummonerTicks = 0; + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "controller", 3, this::locomotionPredicate) + .triggerableAnim("bite", BITE_ANIM) + .triggerableAnim("fly_bite", FLY_BITE_ANIM) + .triggerableAnim("sting", STING_ANIM) + .triggerableAnim("fly_start", FLY_START_ANIM) + .triggerableAnim("fly_land", FLY_LAND_ANIM)); + } + + private PlayState locomotionPredicate(AnimationState state) { + if (!this.onGround()) { + return state.setAndContinue(FLY_ANIM); + } + if (state.isMoving()) { + return state.setAndContinue(WALK_ANIM); + } + return state.setAndContinue(IDLE_ANIM); + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } + + private static class ManticoreAttackGoal extends MeleeAttackGoal { + private final ManticoreEntity manticore; + + ManticoreAttackGoal(ManticoreEntity manticore) { + super(manticore, 1.1D, true); + this.manticore = manticore; + } + + @Override + protected void checkAndPerformAttack(LivingEntity enemy, double distance) { + if (this.isTimeToAttack()) { + this.resetAttackCooldown(); + if (this.manticore.onGround() && this.manticore.stingReady() && this.manticore.getRandom().nextFloat() < STING_CHANCE) { + this.manticore.performSting(enemy); + return; + } + this.manticore.swing(InteractionHand.MAIN_HAND); + this.manticore.doHurtTarget(enemy); + return; + } + super.checkAndPerformAttack(enemy, distance); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/RoyalBoatEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/RoyalBoatEntity.java new file mode 100644 index 00000000..163141b8 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/RoyalBoatEntity.java @@ -0,0 +1,21 @@ +package com.craisinlord.antarchy.content.entity; + +import com.craisinlord.antarchy.Antarchy; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.vehicle.Boat; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.Level; + +public class RoyalBoatEntity extends Boat { + public RoyalBoatEntity(EntityType entityType, Level level) { + super(entityType, level); + this.setVariant(Type.OAK); + } + + @Override + public Item getDropItem() { + return BuiltInRegistries.ITEM.get(new ResourceLocation(Antarchy.MODID, "royal_boat")); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/RoyalChestBoatEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/RoyalChestBoatEntity.java new file mode 100644 index 00000000..4ab0d12b --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/RoyalChestBoatEntity.java @@ -0,0 +1,22 @@ +package com.craisinlord.antarchy.content.entity; + +import com.craisinlord.antarchy.Antarchy; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.vehicle.Boat; +import net.minecraft.world.entity.vehicle.ChestBoat; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.Level; + +public class RoyalChestBoatEntity extends ChestBoat { + public RoyalChestBoatEntity(EntityType entityType, Level level) { + super(entityType, level); + this.setVariant(Type.OAK); + } + + @Override + public Item getDropItem() { + return BuiltInRegistries.ITEM.get(new ResourceLocation(Antarchy.MODID, "royal_chest_boat")); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/TruffaloBoatEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/TruffaloBoatEntity.java new file mode 100644 index 00000000..2d0330b3 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/TruffaloBoatEntity.java @@ -0,0 +1,21 @@ +package com.craisinlord.antarchy.content.entity; + +import com.craisinlord.antarchy.Antarchy; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.vehicle.Boat; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.Level; + +public class TruffaloBoatEntity extends Boat { + public TruffaloBoatEntity(EntityType entityType, Level level) { + super(entityType, level); + this.setVariant(Type.OAK); + } + + @Override + public Item getDropItem() { + return BuiltInRegistries.ITEM.get(new ResourceLocation(Antarchy.MODID, "truffalo_boat")); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/TruffaloChestBoatEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/TruffaloChestBoatEntity.java new file mode 100644 index 00000000..5810c054 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/TruffaloChestBoatEntity.java @@ -0,0 +1,22 @@ +package com.craisinlord.antarchy.content.entity; + +import com.craisinlord.antarchy.Antarchy; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.vehicle.Boat; +import net.minecraft.world.entity.vehicle.ChestBoat; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.Level; + +public class TruffaloChestBoatEntity extends ChestBoat { + public TruffaloChestBoatEntity(EntityType entityType, Level level) { + super(entityType, level); + this.setVariant(Type.OAK); + } + + @Override + public Item getDropItem() { + return BuiltInRegistries.ITEM.get(new ResourceLocation(Antarchy.MODID, "truffalo_chest_boat")); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/WormEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/WormEntity.java new file mode 100644 index 00000000..7d680d09 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/WormEntity.java @@ -0,0 +1,283 @@ +package com.craisinlord.antarchy.content.entity; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.AntarchySoundEvents; +import java.util.Optional; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.syncher.EntityDataAccessor; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.network.syncher.SynchedEntityData; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.util.RandomSource; +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.MobSpawnType; +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.ServerLevelAccessor; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.MultifaceBlock; +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.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.AnimationState; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.core.animation.RawAnimation; +import software.bernie.geckolib.util.GeckoLibUtil; + +public class WormEntity extends Monster implements GeoEntity { + private static final ResourceKey WORMY_CAVES = ResourceKey.create( + Registries.BIOME, + new ResourceLocation(Antarchy.MODID, "wormy_caves") + ); + private static final ResourceLocation LOAM_ID = new ResourceLocation(Antarchy.MODID, "loam"); + private static final ResourceLocation MUCUS_ID = new ResourceLocation(Antarchy.MODID, "mucus"); + private static final int MUCUS_TRAIL_INTERVAL = 6; + private static final double MUCUS_TRAIL_MIN_DISTANCE_SQR = 0.36D; + 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; + private int mucusTrailCooldown; + private Vec3 lastMucusTrailPosition; + + 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); + } + + public static boolean canSpawn(EntityType entityType, ServerLevelAccessor level, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { + if ((spawnReason == MobSpawnType.NATURAL || spawnReason == MobSpawnType.CHUNK_GENERATION) + && !level.getBiome(pos).is(WORMY_CAVES)) { + return false; + } + + Optional loam = BuiltInRegistries.BLOCK.getOptional(LOAM_ID); + BlockState floor = level.getBlockState(pos.below()); + if (!floor.is(Blocks.MUD) && (loam.isEmpty() || !floor.is(loam.get()))) { + return false; + } + + return level.getBlockState(pos.above()).getCollisionShape(level, pos.above()).isEmpty() + && level.getBlockState(pos.above(2)).getCollisionShape(level, pos.above(2)).isEmpty() + && Monster.checkMonsterSpawnRules(entityType, level, spawnReason, pos, random); + } + + @Override + protected void defineSynchedData() { + super.defineSynchedData(); + this.entityData.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; + } + this.tickMucusTrail(); + if (this.attackAnimationTicks > 0) { + this.attackAnimationTicks--; + } + this.updateAnimationState(); + } + + private void tickMucusTrail() { + if (this.mucusTrailCooldown > 0) { + this.mucusTrailCooldown--; + } + + Vec3 velocity = this.getDeltaMovement(); + if (this.mucusTrailCooldown > 0 + || !this.isAlive() + || !this.onGround() + || this.isInWaterOrBubble() + || this.isPassenger() + || velocity.horizontalDistanceSqr() < 0.0025D) { + return; + } + + Vec3 currentPosition = this.position(); + if (this.lastMucusTrailPosition != null + && this.lastMucusTrailPosition.distanceToSqr(currentPosition) < MUCUS_TRAIL_MIN_DISTANCE_SQR) { + return; + } + + this.lastMucusTrailPosition = currentPosition; + this.mucusTrailCooldown = MUCUS_TRAIL_INTERVAL; + + Vec3 horizontalDirection = new Vec3(velocity.x, 0.0D, velocity.z).normalize(); + BlockPos trailPos = BlockPos.containing( + this.getX() - horizontalDirection.x * 0.45D, + this.getBoundingBox().minY + 0.01D, + this.getZ() - horizontalDirection.z * 0.45D + ); + boolean placed = this.placeFloorMucus(trailPos); + + if (placed && this.random.nextFloat() < 0.35F) { + Vec3 side = new Vec3(-horizontalDirection.z, 0.0D, horizontalDirection.x); + double sideOffset = this.random.nextBoolean() ? 0.55D : -0.55D; + this.placeFloorMucus(BlockPos.containing( + trailPos.getX() + 0.5D + side.x * sideOffset, + trailPos.getY(), + trailPos.getZ() + 0.5D + side.z * sideOffset + )); + } + + } + + private boolean placeFloorMucus(BlockPos pos) { + Optional mucus = BuiltInRegistries.BLOCK.getOptional(MUCUS_ID); + if (mucus.isEmpty() || !(mucus.get() instanceof MultifaceBlock mucusBlock)) { + return false; + } + + BlockState existing = this.level().getBlockState(pos); + var floorFace = MultifaceBlock.getFaceProperty(Direction.DOWN); + if (existing.is(mucusBlock)) { + if (existing.getValue(floorFace)) { + return true; + } + BlockState merged = existing.setValue(floorFace, true); + if (merged.canSurvive(this.level(), pos)) { + this.level().setBlock(pos, merged, Block.UPDATE_ALL); + return true; + } + return false; + } + + if (!existing.isAir()) { + return false; + } + + BlockPos supportPos = pos.below(); + BlockState support = this.level().getBlockState(supportPos); + if (!support.isFaceSturdy(this.level(), supportPos, Direction.UP)) { + return false; + } + + BlockState mucusState = mucusBlock.defaultBlockState().setValue(floorFace, true); + if (!mucusState.canSurvive(this.level(), pos)) { + return false; + } + + this.level().setBlock(pos, mucusState, Block.UPDATE_ALL); + return true; + } + + 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.20.1/src/main/java/com/craisinlord/antarchy/content/entity/WormHookProjectileEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/WormHookProjectileEntity.java new file mode 100644 index 00000000..1a37212a --- /dev/null +++ b/common-1.20.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.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/KingEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/KingEntity.java new file mode 100644 index 00000000..1bbcaaac --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/KingEntity.java @@ -0,0 +1,1007 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.AntarchySoundEvents; +import com.craisinlord.antarchy.content.effect.RoyalEffectEligibility; +import com.craisinlord.antarchy.content.effect.RoyalEffectHooks; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.network.chat.Component; +import net.minecraft.ChatFormatting; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.network.protocol.game.ClientboundClearTitlesPacket; +import net.minecraft.network.protocol.game.ClientboundSetSubtitleTextPacket; +import net.minecraft.network.protocol.game.ClientboundSetTitleTextPacket; +import net.minecraft.network.protocol.game.ClientboundSetTitlesAnimationPacket; +import net.minecraft.world.BossEvent; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LightningBolt; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.MobCategory; +import net.minecraft.world.entity.monster.Enemy; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.Pose; +import net.minecraft.world.entity.projectile.AbstractArrow; +import net.minecraft.world.entity.projectile.Arrow; +import net.minecraft.commands.arguments.EntityAnchorArgument; +import net.minecraft.world.entity.projectile.Projectile; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.item.ArmorItem; +import net.minecraft.world.item.ArmorMaterials; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; +import com.craisinlord.antarchy.content.entity.royal.beam.RoyalBeamSettings; +import com.craisinlord.antarchy.content.entity.royal.beam.RoyalBeamTerrainMode; +import com.craisinlord.antarchy.content.entity.royal.beam.RoyalBeamElement; +import com.craisinlord.antarchy.content.menu.RoyalJudgmentMenu; +import com.craisinlord.antarchy.content.menu.RoyalJudgmentState; +import com.craisinlord.antarchy.content.entity.royal.decree.CloseQuartersDecree; +import com.craisinlord.antarchy.content.entity.royal.decree.ComeNoCloserDecree; +import com.craisinlord.antarchy.content.entity.royal.decree.DoNotRunDecree; +import com.craisinlord.antarchy.content.entity.royal.decree.FightMeCowardDecree; +import com.craisinlord.antarchy.content.entity.royal.decree.HandsOffTheCrownDecree; +import com.craisinlord.antarchy.content.entity.royal.decree.KeepYourDistanceDecree; +import com.craisinlord.antarchy.content.entity.royal.decree.KneelDecree; +import com.craisinlord.antarchy.content.entity.royal.decree.NoRespiteDecree; +import com.craisinlord.antarchy.content.entity.royal.decree.NoRetreatDecree; +import com.craisinlord.antarchy.content.entity.royal.decree.RoyalDecree; +import com.craisinlord.antarchy.content.entity.royal.decree.ShowNoMercyDecree; +import com.craisinlord.antarchy.content.entity.royal.decree.SkyIsMineDecree; +import com.craisinlord.antarchy.content.entity.royal.decree.StandTallDecree; +import com.craisinlord.antarchy.content.entity.royal.decree.StandYourGroundDecree; +import com.craisinlord.antarchy.content.entity.royal.attack.RoyalAttackLane; +import java.util.EnumMap; +import java.util.List; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +public class KingEntity extends RoyalBossEntity { + public enum Behavior { + AIRBORNE, SPRINTING, RETREATING, HUGGING, RANGED, KEEPING_FAR + } + + private static final int STOMP_COOLDOWN_TICKS = 220; + private static final int STOMP_WINDUP_TICKS = 18; + private static final double STOMP_RADIUS = 15.0D; + private static final int WING_GUST_COOLDOWN_TICKS = 320; + private static final int WING_GUST_WINDUP_TICKS = 14; + private static final double WING_GUST_RADIUS = 22.0D; + private static final int CHAIN_LIGHTNING_INTERVAL = 12; + private static final int CHAIN_LIGHTNING_JUMPS = 4; + private static final double CHAIN_LIGHTNING_JUMP_RANGE = 9.0D; + private static final int ICE_FREEZE_PER_TICK = 7; + private static final int BEHAVIOR_SCORE_CAP = 12; + + @Nullable + private Vec3 patrolCenter; + private int patrolCooldownTicks; + private int decreeCooldownTicks; + private int activeDecreeTicks; + private int stompCooldownTicks; + private int wingGustCooldownTicks; + private int fireballCooldownTicks = 80; + private int iceballCooldownTicks = 120; + private int iceSpikeCooldownTicks = 160; + private boolean decreeRetreatPressure; + @Nullable + private ServerPlayer exileTarget; + private int exileTicks; + @Nullable + private ServerPlayer titheTarget; + private int titheTicks; + @Nullable + private ServerPlayer targetShotPlayer; + @Nullable + private ServerPlayer targetShotVictim; + private int targetShotTicks; + @Nullable + private ServerPlayer sealedTarget; + private int sealedTicks; + private long sealUntil; + private final Map judgmentCooldowns = new HashMap<>(); + private final Map lastPlayerDamageTime = new HashMap<>(); + private final Map iceBuildup = new HashMap<>(); + private final EnumMap behaviorScores = new EnumMap<>(Behavior.class); + @Nullable + private RoyalDecree activeDecree; + private static final List DECREES = List.of( + new SkyIsMineDecree(), new DoNotRunDecree(), new KneelDecree(), new CloseQuartersDecree(), + new ComeNoCloserDecree(), new FightMeCowardDecree(), new NoRespiteDecree(), + new StandTallDecree(), new StandYourGroundDecree(), + new HandsOffTheCrownDecree(), new ShowNoMercyDecree()); + + public KingEntity(EntityType entityType, Level level) { + super(entityType, level); + } + + public static AttributeSupplier.Builder createAttributes() { + return createBaseAttributes(AntarchySettings.kingHealth(), AntarchySettings.kingAttackDamage()); + } + + @Override + protected String geoName() { + return "king"; + } + + @Override + protected boolean isFlyingBoss() { + return true; + } + + @Override + protected BossEvent.BossBarColor bossBarColor() { + return BossEvent.BossBarColor.YELLOW; + } + + @Override + protected SoundEvent royalIdleSound() { + return AntarchySoundEvents.KING_IDLE.get(); + } + + @Override + protected SoundEvent royalHurtSound() { + return AntarchySoundEvents.KING_HURT.get(); + } + + @Override + protected SoundEvent royalDeathSound() { + return AntarchySoundEvents.KING_DEATH.get(); + } + + @Override + protected SoundEvent royalFlyLoopSound() { + return AntarchySoundEvents.KING_FLY_LOOP.get(); + } + + @Override + protected SoundEvent royalBiteSound() { + return AntarchySoundEvents.KING_BITE.get(); + } + + @Override + protected SoundEvent royalBeamShootSound() { return AntarchySoundEvents.KING_BEAM_SHOOT.get(); } + + @Override + protected SoundEvent royalBeamStartSound() { return AntarchySoundEvents.KING_BEAM_SHOOT.get(); } + + @Override + protected SoundEvent royalBeamStartSound(RoyalHead head) { + return head.slot() == RoyalHead.Slot.LEFT + ? AntarchySoundEvents.KING_FIREBALL_SHOOT.get() + : AntarchySoundEvents.KING_BEAM_SHOOT.get(); + } + + @Override + protected SoundEvent royalBeamLoopSound() { return AntarchySoundEvents.KING_BEAM_SHOOT.get(); } + + @Override + protected SoundEvent royalBeamEndSound() { return AntarchySoundEvents.KING_BEAM_SHOOT.get(); } + + @Override + protected RoyalBeamSettings royalBeamSettings() { + return new RoyalBeamSettings(AntarchySettings.kingBeamRange(), AntarchySettings.kingBeamTracking(), 7.5D, + AntarchySettings.kingBeamDurationTicks(), AntarchySettings.kingBeamTravelTicks(), AntarchySettings.kingBeamCooldownTicks(), 6.0F, 6.0F, + (float) AntarchySettings.kingBeamDamage(), 1.0F, 3, 100.0D, + (float) AntarchySettings.kingBeamTerrainRadius(), 4.0F, AntarchySettings.kingBeamTerrainCap(), + 1.0F, 0.08F, 15.0F, true, true); + } + + @Override + protected RoyalBeamTerrainMode royalBeamTerrainMode() { + return RoyalBeamTerrainMode.BUILD_ICE; + } + + @Override + protected RoyalBeamTerrainMode royalBeamTerrainMode(@Nullable RoyalHead head) { + return head != null && head.slot() == RoyalHead.Slot.RIGHT ? RoyalBeamTerrainMode.BUILD_ICE : RoyalBeamTerrainMode.NONE; + } + + @Override + protected RoyalBeamElement royalBeamElement(@Nullable RoyalHead head) { + if (head == null) { + return RoyalBeamElement.GENERIC; + } + return switch (head.slot()) { + case LEFT -> RoyalBeamElement.FIRE; + case CENTER -> RoyalBeamElement.LIGHTNING; + case RIGHT -> RoyalBeamElement.ICE; + }; + } + + @Override + protected void tickRoyalBeamEffects(RoyalHead head, Vec3 start, Vec3 end) { + if (!(this.level() instanceof ServerLevel level)) { + return; + } + var particle = switch (head.slot()) { + case LEFT -> null; + case CENTER -> ParticleTypes.ELECTRIC_SPARK; + case RIGHT -> ParticleTypes.SNOWFLAKE; + }; + Vec3 direction = end.subtract(start); + double distance = direction.length(); + if (particle != null && distance > 0.001D) { + direction = direction.scale(1.0D / distance); + for (double walked = 0.0D; walked <= distance; walked += 2.5D) { + Vec3 point = start.add(direction.scale(walked)); + level.sendParticles(particle, point.x, point.y, point.z, 2, 0.12D, 0.12D, 0.12D, 0.01D); + } + } + LivingEntity target = head.target(this.level()); + switch (head.slot()) { + case LEFT -> { + if (target != null && target.isAlive()) { + target.setRemainingFireTicks(Math.max(target.getRemainingFireTicks(), 40)); + } + } + case CENTER -> { + if (this.tickCount % CHAIN_LIGHTNING_INTERVAL == 0) { + this.chainLightning(level, end); + } + } + case RIGHT -> { + if (target != null && target.isAlive()) { + this.applyIceFreezePressure(target); + } + } + } + } + + private void chainLightning(ServerLevel level, Vec3 origin) { + java.util.Set struck = new java.util.HashSet<>(); + Vec3 from = origin; + float damage = (float) AntarchySettings.kingBeamDamage() * 0.6F; + for (int jump = 0; jump < CHAIN_LIGHTNING_JUMPS; jump++) { + LivingEntity next = null; + double bestScore = Double.MAX_VALUE; + for (LivingEntity candidate : level.getEntitiesOfClass(LivingEntity.class, + new AABB(from, from).inflate(CHAIN_LIGHTNING_JUMP_RANGE), + e -> e.isAlive() && !(e instanceof RoyalBossEntity) && e.getType() != this.getType())) { + if (struck.contains(candidate.getUUID())) { + continue; + } + double score = candidate.position().distanceToSqr(from) - (isConductive(candidate) ? 16.0D : 0.0D); + if (score < bestScore) { + bestScore = score; + next = candidate; + } + } + if (next == null) { + break; + } + struck.add(next.getUUID()); + LightningBolt bolt = EntityType.LIGHTNING_BOLT.create(level); + if (bolt != null) { + bolt.moveTo(next.getX(), next.getY(), next.getZ()); + bolt.setVisualOnly(true); + level.addFreshEntity(bolt); + } + next.hurt(this.damageSources().lightningBolt(), damage); + from = next.position().add(0.0D, next.getBbHeight() * 0.5D, 0.0D); + if (isConductive(next)) { + jump--; + } + } + } + + private static boolean isConductive(LivingEntity entity) { + for (ItemStack stack : entity.getArmorSlots()) { + if (stack.getItem() instanceof ArmorItem armor) { + var material = armor.getMaterial(); + if (material == ArmorMaterials.IRON || material == ArmorMaterials.NETHERITE || material == ArmorMaterials.CHAIN) { + return true; + } + } + } + return false; + } + + private void applyIceFreezePressure(LivingEntity target) { + int buildup = this.iceBuildup.merge(target.getUUID(), ICE_FREEZE_PER_TICK, Integer::sum); + target.setTicksFrozen(Math.min(target.getTicksRequiredToFreeze() + 60, target.getTicksFrozen() + ICE_FREEZE_PER_TICK * 2)); + if (buildup >= 60) { + target.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, 40, 3, false, true)); + this.iceBuildup.put(target.getUUID(), 20); + } + } + + @Override + public void tick() { + super.tick(); + if (this.level().isClientSide) { + return; + } + this.tickRoyalPunishment(); + if (this.iceBuildup.size() > 16) { + this.iceBuildup.clear(); + } + LivingEntity target = this.getTarget(); + if (target != null && !this.isDeadOrDying() && this.level() instanceof ServerLevel level) { + this.trackBehavior(target); + this.tickDecree(level, target); + this.tickKingWholeBody(level, target); + return; + } + + if (this.isDeadOrDying() || !(this.level() instanceof ServerLevel)) { + return; + } + this.decreeRetreatPressure = false; + if (this.patrolCenter == null || this.position().distanceToSqr(this.patrolCenter) > 64.0D * 64.0D) { + this.patrolCenter = this.position(); + } + if (this.patrolCooldownTicks-- <= 0) { + this.patrolCooldownTicks = 100 + this.random.nextInt(100); + this.playRoyalSound(AntarchySoundEvents.KING_WING_FLAP.get(), 0.9F + this.random.nextFloat() * 0.15F); + double angle = this.random.nextDouble() * Math.PI * 2.0D; + double radius = 12.0D + this.random.nextDouble() * 18.0D; + double px = this.patrolCenter.x + Math.cos(angle) * radius; + double pz = this.patrolCenter.z + Math.sin(angle) * radius; + double py = this.groundYBelow(px, pz) + FLYING_PREFERRED_HOVER + this.random.nextDouble() * 5.0D; + this.getMoveControl().setWantedPosition(px, py, pz, 1.0D); + } + } + + private void tickRoyalPunishment() { + if (this.exileTarget == null && this.titheTarget == null && this.targetShotPlayer == null && this.sealedTarget == null) { + return; + } + if (this.exileTarget != null) { + this.tickRoyalExile(); + } + if (this.titheTarget != null) { + this.tickRoyalTithe(); + } + if (this.targetShotPlayer != null) { + this.tickRoyalTargetShot(); + } + if (this.sealedTarget != null) { + this.tickRoyalSeal(); + } + } + + private void tickRoyalExile() { + if (this.exileTicks-- <= 0 || !this.exileTarget.isAlive() || this.exileTarget.level() != this.level() + || this.isDeadOrDying()) { + this.clearExile(); + return; + } + this.exileTarget.lookAt(EntityAnchorArgument.Anchor.EYES, this.getEyePosition()); + this.exileTarget.setPose(Pose.CROUCHING); + this.exileTarget.setShiftKeyDown(true); + if (this.exileTicks == 1) { + Vec3 away = this.exileTarget.position().subtract(this.position()).multiply(1.0D, 0.0D, 1.0D); + if (away.lengthSqr() < 1.0E-4D) { + away = this.getLookAngle().multiply(-1.0D, 0.0D, -1.0D); + } + away = away.normalize(); + this.exileTarget.setDeltaMovement(away.x * 2.6D, 1.35D, away.z * 2.6D); + this.exileTarget.hasImpulse = true; + this.triggerAnim("body_action", "wing_gust"); + this.playRoyalSound(AntarchySoundEvents.KING_WING_FLAP.get(), 0.82F); + } + } + + private void tickRoyalTithe() { + if (!this.titheTarget.isAlive() || this.titheTarget.level() != this.level() + || this.isDeadOrDying() || !(this.titheTarget.containerMenu instanceof RoyalJudgmentMenu)) { + this.clearTithe(); + return; + } + if (--this.titheTicks <= 0) { + for (int slot = 0; slot < this.titheTarget.getInventory().getContainerSize(); slot++) { + ItemStack stack = this.titheTarget.getInventory().getItem(slot); + if (stack.isEmpty() || !isRoyalTitheItem(stack)) continue; + ItemStack thrown = stack.split(1); + this.titheTarget.getInventory().setChanged(); + this.titheTarget.drop(thrown, true); + this.clearTithe(); + return; + } + this.clearTithe(); + } + } + + private void tickRoyalTargetShot() { + if (!this.targetShotPlayer.isAlive() || this.targetShotVictim == null || !this.targetShotVictim.isAlive() + || this.targetShotPlayer.level() != this.level() || this.isDeadOrDying() + || !(this.targetShotPlayer.containerMenu instanceof RoyalJudgmentMenu)) { + this.clearTargetShot(); + return; + } + this.targetShotPlayer.lookAt(EntityAnchorArgument.Anchor.EYES, this.targetShotVictim.getEyePosition()); + if (--this.targetShotTicks <= 0) { + ItemStack ranged = findRoyalRangedItem(this.targetShotPlayer); + if (!ranged.isEmpty()) { + Arrow arrow = new Arrow((ServerLevel) this.level(), this.targetShotPlayer.getX(), this.targetShotPlayer.getEyeY() - 0.1D, this.targetShotPlayer.getZ()); + arrow.setOwner(this.targetShotPlayer); + arrow.setPos(this.targetShotPlayer.getX(), this.targetShotPlayer.getEyeY() - 0.1D, this.targetShotPlayer.getZ()); + Vec3 direction = this.targetShotVictim.getEyePosition().subtract(arrow.position()).normalize(); + arrow.setDeltaMovement(direction.scale(3.0D)); + arrow.setBaseDamage(2.0D); + ((ServerLevel) this.level()).addFreshEntity(arrow); + this.targetShotPlayer.displayClientMessage(Component.literal("The King takes your shot."), true); + } + this.clearTargetShot(); + } + } + + private void tickRoyalSeal() { + if (!this.sealedTarget.isAlive() || this.sealedTarget.level() != this.level() || this.isDeadOrDying() + || !(this.sealedTarget.containerMenu instanceof RoyalJudgmentMenu) || --this.sealedTicks <= 0) { + this.clearSeal(); + } + } + + private void clearExile() { + if (this.exileTarget != null && this.exileTarget.isAlive()) { + this.exileTarget.setShiftKeyDown(false); + this.exileTarget.setPose(Pose.STANDING); + } + this.exileTarget = null; + this.exileTicks = 0; + } + + private void clearTithe() { + if (this.titheTarget != null && this.titheTarget.containerMenu instanceof RoyalJudgmentMenu) { + this.titheTarget.closeContainer(); + } + this.titheTarget = null; + this.titheTicks = 0; + } + + private void clearTargetShot() { + if (this.targetShotPlayer != null && this.targetShotPlayer.containerMenu instanceof RoyalJudgmentMenu) { + this.targetShotPlayer.closeContainer(); + } + this.targetShotPlayer = null; + this.targetShotVictim = null; + this.targetShotTicks = 0; + } + + private void clearSeal() { + if (this.sealedTarget != null) { + RoyalJudgmentState.clear(this.sealedTarget.getUUID()); + if (this.sealedTarget.containerMenu instanceof RoyalJudgmentMenu) { + this.sealedTarget.closeContainer(); + } + } + this.sealedTarget = null; + this.sealedTicks = 0; + } + + private void startTithe(ServerPlayer target) { + this.clearTithe(); + this.titheTarget = target; + this.titheTicks = 20; + target.openMenu(new MenuProvider() { + @Override + public Component getDisplayName() { + return Component.translatable("menu.antarchy.royal_judgment"); + } + + @Override + public AbstractContainerMenu createMenu(int containerId, net.minecraft.world.entity.player.Inventory inventory, + Player player) { + return new RoyalJudgmentMenu(containerId, inventory); + } + }); + } + + private void startTargetShot(ServerPlayer target, ServerPlayer victim) { + this.clearTargetShot(); + this.targetShotPlayer = target; + this.targetShotVictim = victim; + this.targetShotTicks = 20; + target.openMenu(new MenuProvider() { + @Override + public Component getDisplayName() { + return Component.translatable("menu.antarchy.royal_judgment"); + } + + @Override + public AbstractContainerMenu createMenu(int containerId, net.minecraft.world.entity.player.Inventory inventory, + Player player) { + return new RoyalJudgmentMenu(containerId, inventory); + } + }); + } + + private void startSeal(ServerPlayer target) { + this.clearSeal(); + java.util.Set slots = new java.util.HashSet<>(); + for (int slot = 9; slot < 18; slot++) slots.add(slot); + RoyalJudgmentState.seal(target.getUUID(), slots); + this.sealedTarget = target; + this.sealedTicks = 100; + target.openMenu(new MenuProvider() { + @Override + public Component getDisplayName() { + return Component.translatable("menu.antarchy.royal_judgment"); + } + + @Override + public AbstractContainerMenu createMenu(int containerId, net.minecraft.world.entity.player.Inventory inventory, + Player player) { + return new RoyalJudgmentMenu(containerId, inventory); + } + }); + } + + public boolean debugActivateDecree(String id, ServerPlayer target) { + for (RoyalDecree decree : DECREES) { + String decreeId = decree.translationKey().substring(decree.translationKey().lastIndexOf('.') + 1); + if (decreeId.equalsIgnoreCase(id.replace('-', '_'))) { + this.endDecree(this.getTarget()); + this.activeDecree = decree; + this.activeDecreeTicks = 300; + this.decreeCooldownTicks = 0; + this.sendDecreeTitle(target); + return true; + } + } + return false; + } + + public boolean debugTriggerPunishment(RoyalPunishmentType type, ServerPlayer target) { + if (!(this.level() instanceof ServerLevel level) || !target.isAlive() || target.level() != level) { + return false; + } + switch (type) { + case ROYAL_EXILE -> { + this.clearExile(); + this.exileTarget = target; + this.exileTicks = 25; + return true; + } + case ROYAL_TITHE -> { + this.startTithe(target); + return true; + } + case KINGS_TARGET -> { + ServerPlayer victim = level.players().stream() + .filter(candidate -> candidate != target && candidate.isAlive() && candidate.distanceToSqr(target) <= 4096.0D) + .min((left, right) -> Double.compare(left.distanceToSqr(target), right.distanceToSqr(target))) + .orElse(null); + if (victim == null) return false; + ItemStack ranged = findRoyalRangedItem(target); + if (ranged.isEmpty()) return false; + target.displayClientMessage(Component.literal("The King chooses your target."), true); + this.startTargetShot(target, victim); + return true; + } + case KINGS_SEAL -> { + this.sealUntil = level.getGameTime() + 100L; + target.displayClientMessage(Component.literal("The King seals your inventory."), true); + level.sendParticles(ParticleTypes.ENCHANT, target.getX(), target.getY() + 1.0D, target.getZ(), + 30, 0.6D, 1.0D, 0.6D, 0.1D); + this.startSeal(target); + return true; + } + } + return false; + } + + private static boolean isRoyalTitheItem(ItemStack stack) { + return stack.is(net.minecraft.world.item.Items.ARROW) + || stack.is(net.minecraft.world.item.Items.BREAD) + || stack.is(net.minecraft.world.item.Items.COBBLESTONE) + || stack.is(net.minecraft.world.item.Items.POTION); + } + + private static ItemStack findRoyalRangedItem(ServerPlayer player) { + for (ItemStack stack : player.getInventory().items) { + if (stack.getItem() instanceof net.minecraft.world.item.BowItem + || stack.getItem() instanceof net.minecraft.world.item.CrossbowItem) { + return stack; + } + } + return ItemStack.EMPTY; + } + + private void trackBehavior(LivingEntity target) { + double distance = target.distanceTo(this); + this.bumpBehavior(Behavior.AIRBORNE, !target.onGround() && !target.isPassenger() ? 1 : -1); + this.bumpBehavior(Behavior.SPRINTING, target.isSprinting() ? 1 : -1); + this.bumpBehavior(Behavior.HUGGING, distance <= 10.0D ? 1 : -1); + this.bumpBehavior(Behavior.KEEPING_FAR, distance >= 22.0D ? 1 : -1); + if (this.patrolCenter != null) { + this.bumpBehavior(Behavior.RETREATING, distance > 20.0D && target.getDeltaMovement().horizontalDistanceSqr() > 0.02D + && target.position().subtract(this.position()).dot(target.getDeltaMovement()) > 0.0D ? 1 : -1); + } + } + + private void bumpBehavior(Behavior behavior, int delta) { + int updated = Math.max(0, Math.min(BEHAVIOR_SCORE_CAP, this.behaviorScores.getOrDefault(behavior, 0) + delta)); + this.behaviorScores.put(behavior, updated); + } + + public int behaviorScore(Behavior behavior) { + return this.behaviorScores.getOrDefault(behavior, 0); + } + + public void setDecreeRetreatPressure(boolean value) { + this.decreeRetreatPressure = value; + } + + private void tickKingWholeBody(ServerLevel level, LivingEntity target) { + boolean skyIsMine = this.activeDecree instanceof SkyIsMineDecree; + boolean forceFar = this.decreeRetreatPressure + || this.activeDecree instanceof ComeNoCloserDecree + || this.activeDecree instanceof KeepYourDistanceDecree; + + { + double distance = target.distanceTo(this); + if (this.attackScheduler.ready("stomp", RoyalAttackLane.BODY) + && (distance <= STOMP_RADIUS || skyIsMine) + && this.beginRoyalAttack("stomp", RoyalAttackLane.BODY, + skyIsMine ? STOMP_COOLDOWN_TICKS / 2 : STOMP_COOLDOWN_TICKS, + STOMP_WINDUP_TICKS, 1, 18, new com.craisinlord.antarchy.content.entity.royal.attack.RoyalAttackScheduler.Action() { + @Override public void onStart() { + KingEntity.this.triggerAnim("body_action", "stomp"); + KingEntity.this.playRoyalSound(AntarchySoundEvents.KING_ROAR.get(), 0.7F); + } + @Override public void onActive(int elapsedTicks) { + KingEntity.this.performStomp(level, target); + } + })) { + if (skyIsMine) { + this.getMoveControl().setWantedPosition(this.getX(), target.getY(), this.getZ(), 1.2D); + } + } else if (this.attackScheduler.ready("wing_gust", RoyalAttackLane.BODY) + && distance <= WING_GUST_RADIUS && (forceFar || this.random.nextInt(3) == 0) + && this.beginRoyalAttack("wing_gust", RoyalAttackLane.BODY, WING_GUST_COOLDOWN_TICKS, + WING_GUST_WINDUP_TICKS, 1, 16, new com.craisinlord.antarchy.content.entity.royal.attack.RoyalAttackScheduler.Action() { + @Override public void onStart() { + KingEntity.this.triggerAnim("body_action", "wing_gust"); + KingEntity.this.playRoyalSound(AntarchySoundEvents.KING_WING_FLAP.get(), 0.85F); + } + @Override public void onActive(int elapsedTicks) { + KingEntity.this.performWingGust(level, target); + } + })) { + } else if (this.attackScheduler.ready("royal_muster", RoyalAttackLane.BODY) + && !this.findRoyalMusterTargets(level).isEmpty() + && (forceFar || this.random.nextInt(4) == 0) + && this.beginRoyalAttack("royal_muster", RoyalAttackLane.BODY, + AntarchySettings.kingRoyalMusterCooldownTicks(), + AntarchySettings.kingRoyalMusterWindupTicks(), 1, 20, + new com.craisinlord.antarchy.content.entity.royal.attack.RoyalAttackScheduler.Action() { + @Override public void onStart() { + KingEntity.this.triggerAnim("body_action", "minion_spawn"); + KingEntity.this.playRoyalSound(AntarchySoundEvents.KING_DECREE_CAST.get(), 0.72F); + level.sendParticles(ParticleTypes.ENCHANT, + KingEntity.this.getX(), KingEntity.this.getY() + 2.0D, KingEntity.this.getZ(), + 36, 5.0D, 2.0D, 5.0D, 0.12D); + } + @Override public void onActive(int elapsedTicks) { + KingEntity.this.performRoyalMuster(level); + } + @Override public void onComplete() { + KingEntity.this.playRoyalSound(AntarchySoundEvents.KING_ROAR.get(), 0.62F); + } + })) { + } + } + + if (forceFar && target.distanceTo(this) < 18.0D) { + Vec3 away = this.position().subtract(target.position()).normalize().scale(24.0D); + double ax = this.getX() + away.x; + double az = this.getZ() + away.z; + double ay = this.groundYBelow(ax, az) + FLYING_PREFERRED_HOVER + 6.0D; + this.getMoveControl().setWantedPosition(ax, ay, az, 1.3D); + } + + this.tickKingElementalProjectiles(level, target); + } + + private List findRoyalMusterTargets(ServerLevel level) { + double radius = AntarchySettings.kingRoyalMusterRadius(); + return level.getEntitiesOfClass(Mob.class, this.getBoundingBox().inflate(radius), mob -> + mob.isAlive() && mob != this + && (mob.getType().getCategory() == MobCategory.MONSTER || mob instanceof Enemy) + && !(mob instanceof RoyalBossEntity) + && RoyalEffectEligibility.canApplyCommanded(mob)); + } + + private void performRoyalMuster(ServerLevel level) { + var commanded = RoyalEffectHooks.commandedHolder(); + if (commanded == null) { + return; + } + int applied = 0; + for (Mob mob : this.findRoyalMusterTargets(level)) { + if (applied >= AntarchySettings.kingRoyalMusterCap()) { + break; + } + if (mob.addEffect(new MobEffectInstance(commanded, AntarchySettings.kingRoyalMusterDurationTicks()), this)) { + applied++; + level.sendParticles(ParticleTypes.HAPPY_VILLAGER, + mob.getX(), mob.getY() + mob.getBbHeight() + 0.3D, mob.getZ(), + 5, 0.3D, 0.2D, 0.3D, 0.02D); + } + } + if (applied > 0) { + this.playRoyalSound(AntarchySoundEvents.KING_DECREE_CAST.get(), 0.95F); + } + } + + private void tickKingElementalProjectiles(ServerLevel level, LivingEntity target) { + if (this.fireballCooldownTicks > 0) this.fireballCooldownTicks--; + if (this.iceballCooldownTicks > 0) this.iceballCooldownTicks--; + if (this.iceSpikeCooldownTicks > 0) this.iceSpikeCooldownTicks--; + + double distance = this.distanceTo(target); + String[] candidates = {"fireball", "iceball", "ice_spikes"}; + String selected = this.attackScheduler.chooseWeighted(candidates, id -> { + boolean ready = switch (id) { + case "fireball" -> distance >= 14.0D && distance <= 48.0D && this.fireballCooldownTicks <= 0 + && this.royalHead(RoyalHead.Slot.LEFT).readyToAttack(); + case "iceball" -> distance >= 10.0D && distance <= 42.0D && this.iceballCooldownTicks <= 0 + && this.royalHead(RoyalHead.Slot.RIGHT).readyToAttack(); + default -> distance <= 36.0D && this.iceSpikeCooldownTicks <= 0 + && this.royalHead(RoyalHead.Slot.RIGHT).readyToAttack(); + }; + if (!ready) return 0; + return switch (id) { + case "fireball" -> this.behaviorScore(Behavior.KEEPING_FAR) + 4; + case "iceball" -> this.behaviorScore(Behavior.RETREATING) + 4; + default -> this.behaviorScore(Behavior.HUGGING) + 3; + }; + }, this.random); + if (selected == null) return; + if ("fireball".equals(selected)) { + if (!this.beginRoyalAttack("fireball", RoyalAttackLane.LEFT_HEAD, + AntarchySettings.kingFireballCooldownTicks(), 14, 1, 5, + new com.craisinlord.antarchy.content.entity.royal.attack.RoyalAttackScheduler.Action() { + @Override public void onStart() { + KingEntity.this.triggerAnim(RoyalHead.Slot.LEFT.controllerName(), "shoot"); + } + @Override public void onActive(int elapsedTicks) { + Vec3 origin = KingEntity.this.headAnchor(KingEntity.this.royalHead(RoyalHead.Slot.LEFT)); + Vec3 predicted = target.position().add(target.getDeltaMovement().scale(10.0D)); + Vec3 direction = predicted.add(0.0D, target.getBbHeight() * 0.5D, 0.0D).subtract(origin).normalize(); + RoyalElementalProjectileEntity fireball = RoyalElementalProjectileEntity.create(level, KingEntity.this, + RoyalBeamElement.FIRE, origin, direction); + level.addFreshEntity(fireball); + KingEntity.this.playRoyalSound(AntarchySoundEvents.KING_FIREBALL_SHOOT.get(), 0.9F); + } + })) return; + this.fireballCooldownTicks = AntarchySettings.kingFireballCooldownTicks(); + } else if ("iceball".equals(selected)) { + if (!this.beginRoyalAttack("iceball", RoyalAttackLane.RIGHT_HEAD, + AntarchySettings.kingIceballCooldownTicks(), 16, 1, 5, + new com.craisinlord.antarchy.content.entity.royal.attack.RoyalAttackScheduler.Action() { + @Override public void onStart() { + KingEntity.this.triggerAnim(RoyalHead.Slot.RIGHT.controllerName(), "shoot"); + } + @Override public void onActive(int elapsedTicks) { + Vec3 origin = KingEntity.this.headAnchor(KingEntity.this.royalHead(RoyalHead.Slot.RIGHT)); + Vec3 direction = target.getEyePosition().subtract(origin).normalize(); + RoyalElementalProjectileEntity iceball = RoyalElementalProjectileEntity.create(level, KingEntity.this, + RoyalBeamElement.ICE, origin, direction); + level.addFreshEntity(iceball); + KingEntity.this.playRoyalSound(AntarchySoundEvents.KING_BEAM_SHOOT.get(), 1.2F); + } + })) return; + this.iceballCooldownTicks = AntarchySettings.kingIceballCooldownTicks(); + } else { + if (!this.beginRoyalAttack("ice_spikes", RoyalAttackLane.RIGHT_HEAD, + AntarchySettings.kingIceSpikeCooldownTicks(), 20, 1, 5, + new com.craisinlord.antarchy.content.entity.royal.attack.RoyalAttackScheduler.Action() { + @Override public void onStart() { + KingEntity.this.triggerAnim(RoyalHead.Slot.RIGHT.controllerName(), "shoot"); + } + @Override public void onActive(int elapsedTicks) { + KingEntity.this.raiseIceSpikes(level, target); + KingEntity.this.playRoyalSound(AntarchySoundEvents.KING_BEAM_SHOOT.get(), 0.8F); + } + })) return; + this.iceSpikeCooldownTicks = AntarchySettings.kingIceSpikeCooldownTicks(); + } + } + + private void raiseIceSpikes(ServerLevel level, LivingEntity target) { + Vec3 start = this.position(); + Vec3 end = target.position(); + Vec3 line = end.subtract(start).multiply(1.0D, 0.0D, 1.0D); + if (line.lengthSqr() < 1.0E-4D) return; + line = line.normalize(); + Vec3 side = new Vec3(-line.z, 0.0D, line.x); + for (int i = 1; i <= 5; i++) { + double distance = i * 4.0D; + for (int lane = -1; lane <= 1; lane++) { + Vec3 point = start.add(line.scale(distance)).add(side.scale(lane * (i % 2 == 0 ? 2.0D : 0.0D))); + double y = this.groundYBelow(point.x, point.z) + 0.1D; + RoyalIceSpikeEntity spike = RoyalIceSpikeEntity.create(level, new Vec3(point.x, y, point.z)); + level.addFreshEntity(spike); + } + } + } + + private void performStomp(ServerLevel level, LivingEntity target) { + DamageSource source = this.damageSources().mobAttack(this); + float base = (float) this.getAttributeValue(Attributes.ATTACK_DAMAGE) * 1.4F; + for (LivingEntity living : level.getEntitiesOfClass(LivingEntity.class, + this.getBoundingBox().inflate(STOMP_RADIUS), + e -> e.isAlive() && e instanceof Player)) { + double distance = Math.max(1.0D, living.distanceTo(this)); + float falloff = (float) Math.max(0.2D, 1.0D - distance / (STOMP_RADIUS + 6.0D)); + living.hurt(source, base * falloff); + Vec3 push = living.position().subtract(this.position()).normalize().scale(2.4D * falloff); + living.setDeltaMovement(living.getDeltaMovement().add(push.x, 0.85D, push.z)); + living.hasImpulse = true; + } + RoyalBlockDestruction.destroySphere(level, this, + new Vec3(this.getX(), this.getY(), this.getZ()), STOMP_RADIUS * 0.5D, 96, 80.0D, 0.15F); + level.sendParticles(ParticleTypes.EXPLOSION_EMITTER, this.getX(), this.getY(), this.getZ(), 6, 4.0D, 0.5D, 4.0D, 0.0D); + this.playRoyalSound(AntarchySoundEvents.KING_STOMP.get(), 0.8F); + } + + private void performWingGust(ServerLevel level, LivingEntity target) { + Vec3 flat = this.getForward().multiply(1.0D, 0.0D, 1.0D); + Vec3 forward = flat.lengthSqr() < 1.0E-4D + ? target.position().subtract(this.position()).multiply(1.0D, 0.0D, 1.0D).normalize() + : flat.normalize(); + for (LivingEntity living : level.getEntitiesOfClass(LivingEntity.class, + this.getBoundingBox().inflate(WING_GUST_RADIUS), + e -> e.isAlive() && e instanceof Player)) { + Vec3 toTarget = living.position().subtract(this.position()).multiply(1.0D, 0.0D, 1.0D); + if (toTarget.lengthSqr() < 1.0E-4D || forward.dot(toTarget.normalize()) < 0.1D) { + continue; + } + Vec3 push = toTarget.normalize().scale(3.2D); + living.setDeltaMovement(living.getDeltaMovement().add(push.x, 0.5D, push.z)); + living.hasImpulse = true; + living.hurt(this.damageSources().mobAttack(this), 6.0F); + } + level.sendParticles(ParticleTypes.SWEEP_ATTACK, this.getX() + forward.x * 6.0D, this.getY() + 4.0D, this.getZ() + forward.z * 6.0D, 12, 4.0D, 2.0D, 4.0D, 0.0D); + } + + private void tickDecree(ServerLevel level, LivingEntity target) { + if (this.activeDecree == null) { + if (this.decreeCooldownTicks-- > 0) { + return; + } + if (!this.beginRoyalAttack("decree", RoyalAttackLane.DECREE, + AntarchySettings.royalDecreeCooldownTicks(), 300)) { + return; + } + this.activeDecreeTicks = 300; + this.activeDecree = this.pickDecree(target); + this.decreeRetreatPressure = false; + this.playRoyalSound(AntarchySoundEvents.KING_DECREE_CAST.get(), 0.9F + this.random.nextFloat() * 0.15F); + this.playRoyalSound(AntarchySoundEvents.KING_ROAR.get(), 0.8F + this.random.nextFloat() * 0.12F); + if (target instanceof ServerPlayer player) this.sendDecreeTitle(player); + } + int countdown = this.activeDecree.countdownTicks(target); + if (countdown > 0 && countdown <= 100 && this.tickCount % 20 == 0) { + level.playSound(null, target.blockPosition(), SoundEvents.BELL_BLOCK, SoundSource.HOSTILE, 0.8F, 1.0F + countdown / 500.0F); + } + this.activeDecree.apply(level, this, target); + if (this.activeDecree != null + && this.activeDecree.evaluate(level, this, target) == RoyalDecree.Evaluation.VIOLATED) { + this.failActiveDecree(target); + return; + } + if (this.activeDecree != null && --this.activeDecreeTicks <= 0) { + this.endDecree(target); + } + } + + private RoyalDecree pickDecree(LivingEntity target) { + int totalWeight = 0; + int[] weights = new int[DECREES.size()]; + for (int i = 0; i < DECREES.size(); i++) { + weights[i] = Math.max(1, DECREES.get(i).contextWeight(this, target)); + totalWeight += weights[i]; + } + int roll = this.random.nextInt(totalWeight); + for (int i = 0; i < DECREES.size(); i++) { + roll -= weights[i]; + if (roll < 0) { + return DECREES.get(i); + } + } + return DECREES.get(this.random.nextInt(DECREES.size())); + } + + private void sendDecreeTitle(ServerPlayer player) { + if (this.activeDecree == null) return; + player.connection.send(new ClientboundSetTitlesAnimationPacket(5, 300, 10)); + player.connection.send(new ClientboundSetTitleTextPacket(Component.translatable(this.activeDecree.translationKey()) + .withStyle(style -> style.withColor(ChatFormatting.GOLD).withBold(true)))); + player.connection.send(new ClientboundSetSubtitleTextPacket(Component.translatable(this.activeDecree.instructionKey()) + .withStyle(style -> style.withColor(ChatFormatting.WHITE)))); + } + + private void endDecree(@Nullable LivingEntity target) { + if (target instanceof ServerPlayer player) { + player.connection.send(new ClientboundClearTitlesPacket(false)); + } + if (this.activeDecree != null) { + this.activeDecree.onEnded(); + } + this.activeDecree = null; + this.activeDecreeTicks = 0; + this.decreeRetreatPressure = false; + this.decreeCooldownTicks = AntarchySettings.royalDecreeCooldownTicks(); + } + + public void clearActiveDecree() { + this.clearActiveDecree(null); + } + + public void clearActiveDecree(@Nullable LivingEntity target) { + this.endDecree(target); + } + + /** Resolves a decree violation once, using the existing bounded judgment while the new judgment system is pending. */ + public void failActiveDecree(@Nullable LivingEntity target) { + if (this.activeDecree == null || target == null || !target.isAlive()) { + return; + } + if (target instanceof ServerPlayer player) { + this.debugTriggerPunishment(RoyalPunishmentType.ROYAL_EXILE, player); + } else { + this.invokeJudgment(target); + } + this.endDecree(target); + } + + public boolean blocksHealing() { + return this.activeDecree instanceof NoRespiteDecree; + } + + public long ticksSincePlayerDamage(LivingEntity target) { + long last = this.lastPlayerDamageTime.getOrDefault(target.getUUID(), 0L); + return this.level().getGameTime() - last; + } + + public void invokeJudgment(LivingEntity target) { + if (target == null || !target.isAlive()) return; + long now = this.level().getGameTime(); + if (this.judgmentCooldowns.getOrDefault(target.getUUID(), 0L) <= now) { + this.judgmentCooldowns.put(target.getUUID(), now + 20L); + target.hurt(this.damageSources().magic(), 6.0F); + } + } + + @Override + public boolean hurt(DamageSource source, float amount) { + if (!this.level().isClientSide && source.getEntity() instanceof LivingEntity attacker) { + this.lastPlayerDamageTime.put(attacker.getUUID(), this.level().getGameTime()); + boolean projectile = source.getDirectEntity() instanceof Projectile; + this.bumpBehavior(projectile ? Behavior.RANGED : Behavior.HUGGING, 2); + if (this.activeDecree instanceof CloseQuartersDecree && projectile) { + this.failActiveDecree(attacker); + } else if (this.activeDecree instanceof ComeNoCloserDecree && !projectile) { + this.failActiveDecree(attacker); + } else if (this.activeDecree instanceof HandsOffTheCrownDecree) { + this.failActiveDecree(attacker); + } + } + return super.hurt(source, amount); + } + + public static boolean blocksHealingAround(LivingEntity target) { + if (target.level().isClientSide) return false; + return target.level().getEntitiesOfClass(KingEntity.class, target.getBoundingBox().inflate(128.0D), + king -> king.isAlive() && king.blocksHealing()).stream().findFirst().isPresent(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/PrinceEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/PrinceEntity.java new file mode 100644 index 00000000..6464b270 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/PrinceEntity.java @@ -0,0 +1,68 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.AntarchySoundEvents; +import com.craisinlord.antarchy.content.entity.royal.beam.RoyalBeamElement; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.level.Level; + +public class PrinceEntity extends RoyalMountEntity { + public PrinceEntity(EntityType entityType, Level level) { + super(entityType, level); + } + + public static AttributeSupplier.Builder createAttributes() { + return RoyalMountEntity.createBaseAttributes( + AntarchySettings.princeHealth(), AntarchySettings.princeAttackDamage(), + AntarchySettings.princeMovementSpeed(), AntarchySettings.princeFlyingSpeed(), + AntarchySettings.princeArmor(), AntarchySettings.princeKnockbackResistance(), + AntarchySettings.princeFollowRange()); + } + + @Override + protected RoyalBeamElement boltElement(int lateralIndex) { + return switch (lateralIndex) { + case -1 -> RoyalBeamElement.FIRE; + case 1 -> RoyalBeamElement.ICE; + default -> RoyalBeamElement.LIGHTNING; + }; + } + + @Override + protected String geoName() { + return "prince"; + } + + @Override + protected EntityType boltType() { + return AntarchyObjects.ROYAL_BOLT.get(); + } + + @Override + protected SoundEvent idleSound() { + return AntarchySoundEvents.PRINCE_IDLE.get(); + } + + @Override + protected SoundEvent biteSound() { + return AntarchySoundEvents.PRINCE_BITE.get(); + } + + @Override + protected SoundEvent shootSound() { + return AntarchySoundEvents.PRINCE_SHOOT.get(); + } + + @Override + protected SoundEvent flySound() { + return AntarchySoundEvents.PRINCE_FLY.get(); + } + + @Override + protected SoundEvent stepSound() { + return AntarchySoundEvents.PRINCE_STEP.get(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/PrincessEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/PrincessEntity.java new file mode 100644 index 00000000..af6e829d --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/PrincessEntity.java @@ -0,0 +1,68 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.AntarchySoundEvents; +import com.craisinlord.antarchy.content.entity.royal.beam.RoyalBeamElement; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.level.Level; + +public class PrincessEntity extends RoyalMountEntity { + public PrincessEntity(EntityType entityType, Level level) { + super(entityType, level); + } + + public static AttributeSupplier.Builder createAttributes() { + return RoyalMountEntity.createBaseAttributes( + AntarchySettings.princessHealth(), AntarchySettings.princessAttackDamage(), + AntarchySettings.princessMovementSpeed(), AntarchySettings.princessFlyingSpeed(), + AntarchySettings.princessArmor(), AntarchySettings.princessKnockbackResistance(), + AntarchySettings.princessFollowRange()); + } + + @Override + protected RoyalBeamElement boltElement(int lateralIndex) { + return switch (lateralIndex) { + case -1 -> RoyalBeamElement.FIRE; + case 1 -> RoyalBeamElement.ICE; + default -> RoyalBeamElement.LIGHTNING; + }; + } + + @Override + protected String geoName() { + return "princess"; + } + + @Override + protected EntityType boltType() { + return AntarchyObjects.ROYAL_BOLT.get(); + } + + @Override + protected SoundEvent idleSound() { + return AntarchySoundEvents.PRINCESS_IDLE.get(); + } + + @Override + protected SoundEvent biteSound() { + return AntarchySoundEvents.PRINCESS_BITE.get(); + } + + @Override + protected SoundEvent shootSound() { + return AntarchySoundEvents.PRINCESS_SHOOT.get(); + } + + @Override + protected SoundEvent flySound() { + return AntarchySoundEvents.PRINCESS_FLY.get(); + } + + @Override + protected SoundEvent stepSound() { + return AntarchySoundEvents.PRINCESS_STEP.get(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/QueenEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/QueenEntity.java new file mode 100644 index 00000000..6ec3e60d --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/QueenEntity.java @@ -0,0 +1,542 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchySoundEvents; +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.AntarchyTags; +import com.craisinlord.antarchy.content.entity.ManticoreEntity; +import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import net.minecraft.core.BlockPos; +import net.minecraft.core.particles.DustParticleOptions; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.BossEvent; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.ai.attributes.AttributeInstance; +import net.minecraft.world.entity.ai.attributes.AttributeModifier; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.MobSpawnType; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; +import com.craisinlord.antarchy.content.entity.royal.beam.RoyalBeamSettings; +import com.craisinlord.antarchy.content.entity.royal.beam.RoyalBeamTerrainMode; +import com.craisinlord.antarchy.content.entity.royal.attack.RoyalAttackLane; +import com.craisinlord.antarchy.content.entity.royal.attack.RoyalEffectController; +import com.craisinlord.antarchy.content.entity.portal.DimensionalTearEntity; +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.player.Player; + +public class QueenEntity extends RoyalBossEntity { + private static final String SUMMON_COOLDOWN_KEY = "ManticoreSummonCooldownTicks"; + private static final int FAILED_SUMMON_RETRY_TICKS = 20; + private static final int POSITION_ATTEMPTS_PER_MANTICORE = 8; + + private static final ResourceLocation ACCEL_SPEED_ID = new ResourceLocation("antarchy", "queen_royal_acceleration_speed"); + private static final ResourceLocation ACCEL_FLY_ID = new ResourceLocation("antarchy", "queen_royal_acceleration_fly"); + private static final DustParticleOptions ACCEL_DUST = new DustParticleOptions(new org.joml.Vector3f(1.0F, 0.15F, 0.15F), 2.0F); + + private static final int GRAVITY_STOMP_COOLDOWN = 180; + private static final int TIME_FIELD_COOLDOWN = 260; + private static final int MOMENTUM_LOCK_COOLDOWN = 420; + private static final int MOMENTUM_LOCK_DURATION = 90; + private static final double MOMENTUM_LOCK_RADIUS = 26.0D; + private static final int CRUSHING_GRAVITY_COOLDOWN = 360; + private static final int CRUSHING_GRAVITY_DURATION = 120; + private static final double CRUSHING_GRAVITY_RADIUS = 18.0D; + private static final double CRUSHING_GRAVITY_STRENGTH = 0.12D; + private static final int ACCELERATION_COOLDOWN = 500; + private static final int ACCELERATION_DURATION = 140; + private static final int BLACK_HOLE_COOLDOWN = 340; + + private int manticoreSummonCooldownTicks; + private int gravityStompCooldownTicks; + private int timeFieldCooldownTicks; + private int momentumLockCooldownTicks; + private int crushingGravityCooldownTicks; + private int accelerationCooldownTicks; + private int blackHoleCooldownTicks; + private int idleWanderCooldownTicks; + private int finalTimeControlTicks; + private final RoyalEffectController royalEffects = new RoyalEffectController(); + private final Map frozenVelocities = new HashMap<>(); + + public QueenEntity(EntityType entityType, Level level) { + super(entityType, level); + } + + public static AttributeSupplier.Builder createAttributes() { + return createBaseAttributes(AntarchySettings.queenHealth(), AntarchySettings.queenAttackDamage()); + } + + @Override + protected String geoName() { + return "queen"; + } + + @Override + protected boolean isFlyingBoss() { + return true; + } + + @Override + protected SoundEvent royalFlyLoopSound() { + return AntarchySoundEvents.QUEEN_FLY_LOOP.get(); + } + + @Override + protected BossEvent.BossBarColor bossBarColor() { + return BossEvent.BossBarColor.PURPLE; + } + + @Override + protected SoundEvent royalIdleSound() { + return AntarchySoundEvents.QUEEN_IDLE.get(); + } + + @Override + protected SoundEvent royalHurtSound() { + return AntarchySoundEvents.QUEEN_HURT.get(); + } + + @Override + protected SoundEvent royalDeathSound() { + return AntarchySoundEvents.QUEEN_DEATH.get(); + } + + @Override + protected SoundEvent royalBiteSound() { + return AntarchySoundEvents.QUEEN_BITE.get(); + } + + @Override + protected SoundEvent royalBeamShootSound() { return AntarchySoundEvents.QUEEN_BEAM_SHOOT.get(); } + + @Override + protected SoundEvent royalBeamStartSound() { return AntarchySoundEvents.QUEEN_BEAM_START.get(); } + + @Override + protected SoundEvent royalBeamLoopSound() { return AntarchySoundEvents.QUEEN_BEAM_LOOP.get(); } + + @Override + protected SoundEvent royalBeamEndSound() { return AntarchySoundEvents.QUEEN_BEAM_END.get(); } + + @Override + protected RoyalBeamSettings royalBeamSettings() { + return new RoyalBeamSettings(AntarchySettings.queenBeamRange(), AntarchySettings.queenBeamTracking(), 7.5D, + AntarchySettings.queenBeamDurationTicks(), AntarchySettings.queenBeamTravelTicks(), AntarchySettings.queenBeamCooldownTicks(), 6.0F, 6.0F, + (float) AntarchySettings.queenBeamDamage(), 1.0F, 3, 100.0D, + (float) AntarchySettings.queenBeamTerrainRadius(), 4.0F, AntarchySettings.queenBeamTerrainCap(), + 1.0F, 0.08F, 15.0F, true, true); + } + + @Override + protected RoyalBeamTerrainMode royalBeamTerrainMode() { + return RoyalBeamTerrainMode.DESTROY; + } + + public static boolean isFieldImmune(Entity entity) { + return entity instanceof RoyalBossEntity + || entity.getType().is(AntarchyTags.Entities.TIME_DILATION_IMMUNE); + } + + @Override + public void tick() { + super.tick(); + if (this.level().isClientSide || this.isDeadOrDying()) { + return; + } + LivingEntity target = this.getTarget(); + if (target == null || !target.isAlive() || !this.canAttack(target)) { + this.tickIdleWander(); + } + this.tickManticoreSummon(); + this.tickQueenAbilities(); + this.tickFinalTimeControl(); + this.royalEffects.tick(); + } + + private void tickIdleWander() { + if (this.idleWanderCooldownTicks-- > 0) { + return; + } + this.idleWanderCooldownTicks = 80 + this.random.nextInt(80); + double angle = this.random.nextDouble() * Mth.TWO_PI; + double radius = 6.0D + this.random.nextDouble() * 14.0D; + double wx = this.getX() + Math.cos(angle) * radius; + double wz = this.getZ() + Math.sin(angle) * radius; + this.getMoveControl().setWantedPosition(wx, this.groundYBelow(wx, wz), wz, 0.7D); + } + + private int cooldown(int base) { + return this.royalEffects.active("acceleration") ? Math.max(20, base / 2) : base; + } + + private void tickManticoreSummon() { + if (this.manticoreSummonCooldownTicks > 0) { + this.manticoreSummonCooldownTicks--; + return; + } + if (!(this.level() instanceof ServerLevel serverLevel)) { + return; + } + LivingEntity target = this.getTarget(); + if (target == null || !target.isAlive() || !this.canAttack(target)) { + return; + } + + int currentCount = ManticoreEntity.countSummonedBy(serverLevel, this.getUUID()); + int cap = AntarchySettings.queenManticoreCap(); + if (currentCount >= cap) { + this.manticoreSummonCooldownTicks = FAILED_SUMMON_RETRY_TICKS; + return; + } + + int summonCount = Math.min(AntarchySettings.queenManticoreSummonCount(), cap - currentCount); + int spawned = this.spawnManticoreTears(serverLevel, target, summonCount); + + this.manticoreSummonCooldownTicks = spawned > 0 + ? this.cooldown(Math.max(20, AntarchySettings.queenManticoreSummonCooldownTicks())) + : FAILED_SUMMON_RETRY_TICKS; + if (spawned > 0) { + this.triggerAnim("body_action", "minion_spawn"); + this.playRoyalSound(AntarchySoundEvents.QUEEN_ROAR.get(), 0.8F + this.random.nextFloat() * 0.12F); + serverLevel.sendParticles(ParticleTypes.PORTAL, this.getX(), this.getY() + 2.0D, this.getZ(), + 36, 3.0D, 2.0D, 3.0D, 0.15D); + } + } + + private int spawnManticoreTears(ServerLevel level, LivingEntity target, int count) { + int pairs = Math.max(1, Math.min(3, (count + 1) / 2)); + int created = 0; + for (int i = 0; i < pairs; i++) { + double angle = this.random.nextDouble() * Mth.TWO_PI; + double distance = Math.max(8.0D, AntarchySettings.queenManticoreSummonRange() * 0.65D); + Vec3 firstPos = this.position().add(Math.cos(angle) * distance, 1.0D, Math.sin(angle) * distance); + Vec3 secondPos = this.position().add(Math.cos(angle + Math.PI) * distance, 1.0D, Math.sin(angle + Math.PI) * distance); + DimensionalTearEntity first = DimensionalTearEntity.createQueenManticoreTear(level, firstPos, + (float) Math.toDegrees(angle), 240, this.getUUID(), Math.min(3, count)); + DimensionalTearEntity second = DimensionalTearEntity.createQueenManticoreTear(level, secondPos, + (float) Math.toDegrees(angle + Math.PI), 240, this.getUUID(), Math.min(3, count)); + first.linkTo(second); + second.linkTo(first); + level.addFreshEntity(first); + level.addFreshEntity(second); + created++; + } + return created; + } + + private void tickQueenAbilities() { + if (this.gravityStompCooldownTicks > 0) this.gravityStompCooldownTicks--; + if (this.timeFieldCooldownTicks > 0) this.timeFieldCooldownTicks--; + if (this.momentumLockCooldownTicks > 0) this.momentumLockCooldownTicks--; + if (this.crushingGravityCooldownTicks > 0) this.crushingGravityCooldownTicks--; + if (this.accelerationCooldownTicks > 0) this.accelerationCooldownTicks--; + if (this.blackHoleCooldownTicks > 0) this.blackHoleCooldownTicks--; + + if (!(this.level() instanceof ServerLevel level)) { + return; + } + LivingEntity target = this.getTarget(); + if (target == null || !target.isAlive()) { + return; + } + + Phase phase = this.phase(); + boolean majorBusy = this.royalEffects.active("momentum_lock") || this.royalEffects.active("crushing_gravity"); + boolean allowOverlap = phase != Phase.ONE; + String[] candidates = phase == Phase.ONE + ? new String[] {"gravity_stomp", "time_field", "black_hole"} + : new String[] {"gravity_stomp", "time_field", "black_hole", "momentum_lock", "crushing_gravity", "acceleration"}; + String selected = this.attackScheduler.chooseWeighted(candidates, id -> { + if (!this.queenAttackReady(id, phase, majorBusy, allowOverlap)) return 0; + return switch (id) { + case "black_hole", "crushing_gravity" -> phase == Phase.THREE ? 5 : 3; + case "momentum_lock", "acceleration" -> phase == Phase.THREE ? 4 : 2; + default -> 4; + }; + }, this.random); + if (selected == null) return; + int cooldown = switch (selected) { + case "gravity_stomp" -> GRAVITY_STOMP_COOLDOWN; + case "time_field" -> TIME_FIELD_COOLDOWN; + case "black_hole" -> BLACK_HOLE_COOLDOWN; + case "momentum_lock" -> MOMENTUM_LOCK_COOLDOWN; + case "crushing_gravity" -> CRUSHING_GRAVITY_COOLDOWN; + default -> ACCELERATION_COOLDOWN; + }; + if (!this.beginRoyalAttack(selected, RoyalAttackLane.HAZARD, this.cooldown(cooldown), + 10, 1, 14, new com.craisinlord.antarchy.content.entity.royal.attack.RoyalAttackScheduler.Action() { + @Override public void onStart() { + if ("gravity_stomp".equals(selected)) { + QueenEntity.this.triggerAnim("body_action", "stomp"); + } else { + QueenEntity.this.triggerAnim("body_action", "wing_gust"); + } + } + @Override public void onActive(int elapsedTicks) { + QueenEntity.this.performSelectedQueenAttack(selected, phase, cooldown, level, target); + } + })) return; + } + + private void performSelectedQueenAttack(String selected, Phase phase, int cooldown, + ServerLevel level, LivingEntity target) { + switch (selected) { + case "gravity_stomp" -> { this.gravityStompCooldownTicks = cooldown; this.performGravityStomp(level, target); } + case "time_field" -> { + this.timeFieldCooldownTicks = cooldown; + double fieldRate = phase == Phase.THREE ? 0.1D : 0.4D; + TimeDilationApi.createField(level, target.position(), 12.0D, fieldRate, 140 + phase.ordinal() * 40); + } + case "black_hole" -> { this.blackHoleCooldownTicks = cooldown; this.castBlackHole(level, target); } + case "momentum_lock" -> { this.momentumLockCooldownTicks = cooldown; this.startMomentumLock(level); } + case "crushing_gravity" -> { + this.crushingGravityCooldownTicks = cooldown; + this.royalEffects.start("crushing_gravity", CRUSHING_GRAVITY_DURATION, + () -> {}, this::tickCrushingGravity, () -> {}); + this.playRoyalSound(AntarchySoundEvents.QUEEN_ROAR.get(), 0.6F); + } + case "acceleration" -> { this.accelerationCooldownTicks = cooldown; this.startRoyalAcceleration(); } + } + } + + private boolean queenAttackReady(String id, Phase phase, boolean majorBusy, boolean allowOverlap) { + if (!allowOverlap && majorBusy) return false; + return switch (id) { + case "gravity_stomp" -> this.gravityStompCooldownTicks <= 0; + case "time_field" -> this.timeFieldCooldownTicks <= 0; + case "black_hole" -> this.blackHoleCooldownTicks <= 0; + case "momentum_lock" -> !this.royalEffects.active("momentum_lock") && this.momentumLockCooldownTicks <= 0; + case "crushing_gravity" -> phase != Phase.ONE && !this.royalEffects.active("crushing_gravity") && this.crushingGravityCooldownTicks <= 0; + case "acceleration" -> phase == Phase.THREE && !this.royalEffects.active("acceleration") && this.accelerationCooldownTicks <= 0; + default -> false; + }; + } + + private void tickFinalTimeControl() { + if (this.phase() != Phase.THREE || !(this.level() instanceof ServerLevel level)) { + return; + } + if (!this.royalEffects.active("acceleration") && this.accelerationCooldownTicks <= 0) { + this.startRoyalAcceleration(); + } + if (this.finalTimeControlTicks-- <= 0) { + this.finalTimeControlTicks = AntarchySettings.queenFinalTimeFieldCooldownTicks(); + LivingEntity target = this.getTarget(); + if (target != null && target.isAlive()) { + TimeDilationApi.createField(level, target.position(), AntarchySettings.queenFinalTimeFieldRadius(), + AntarchySettings.queenFinalTimeFieldRate(), AntarchySettings.queenFinalTimeFieldDurationTicks()); + } + } + } + + private void performGravityStomp(ServerLevel level, LivingEntity target) { + this.triggerAnim("body_action", "stomp"); + this.playRoyalSound(AntarchySoundEvents.QUEEN_ROAR.get(), 0.7F); + DamageSource source = this.damageSources().mobAttack(this); + for (LivingEntity living : level.getEntitiesOfClass(LivingEntity.class, + this.getBoundingBox().inflate(18.0D), entity -> entity instanceof Player && entity.isAlive())) { + double distance = Math.max(1.0D, living.distanceTo(this)); + living.hurt(source, (float) (12.0D * Math.max(0.25D, 1.0D - distance / 24.0D))); + Vec3 push = living.position().subtract(this.position()).normalize().scale(1.3D); + living.setDeltaMovement(living.getDeltaMovement().add(push.x, 0.65D, push.z)); + living.hasImpulse = true; + } + level.sendParticles(ParticleTypes.SONIC_BOOM, this.getX(), this.getY() + 1.0D, this.getZ(), 4, 2.0D, 0.5D, 2.0D, 0.0D); + } + + private void castBlackHole(ServerLevel level, LivingEntity target) { + Vec3 anchor = target.position().add( + (this.random.nextDouble() - 0.5D) * 4.0D, + 2.0D + this.random.nextDouble() * 2.0D, + (this.random.nextDouble() - 0.5D) * 4.0D); + RoyalBlackHoleEntity hole = RoyalBlackHoleEntity.create(level, anchor, this.getUUID()); + level.addFreshEntity(hole); + this.triggerAnim("body_action", "wing_gust"); + this.playRoyalSound(AntarchySoundEvents.QUEEN_ROAR.get(), 1.0F); + level.sendParticles(ParticleTypes.REVERSE_PORTAL, anchor.x, anchor.y, anchor.z, 60, 1.0D, 1.0D, 1.0D, 0.4D); + } + + private void startMomentumLock(ServerLevel level) { + this.momentumLockCooldownTicks = MOMENTUM_LOCK_COOLDOWN; + this.royalEffects.start("momentum_lock", MOMENTUM_LOCK_DURATION, () -> { + this.frozenVelocities.clear(); + for (Entity entity : level.getEntitiesOfClass(Entity.class, + this.getBoundingBox().inflate(MOMENTUM_LOCK_RADIUS))) { + if (entity == this || isFieldImmune(entity) || entity instanceof Player player && player.isCreative()) { + continue; + } + this.frozenVelocities.put(entity.getUUID(), entity.getDeltaMovement()); + } + }, this::tickMomentumLockEffect, () -> { + for (Map.Entry entry : this.frozenVelocities.entrySet()) { + Entity entity = level.getEntity(entry.getKey()); + if (entity != null && entity.isAlive()) { + entity.setDeltaMovement(entry.getValue()); + entity.hasImpulse = true; + } + } + this.frozenVelocities.clear(); + }); + this.triggerAnim("body_action", "wing_gust"); + this.playRoyalSound(AntarchySoundEvents.QUEEN_ROAR.get(), 0.5F); + } + + private void tickMomentumLockEffect() { + if (!(this.level() instanceof ServerLevel level)) { + return; + } + for (Map.Entry entry : this.frozenVelocities.entrySet()) { + Entity entity = level.getEntity(entry.getKey()); + if (entity == null || !entity.isAlive()) { + continue; + } + entity.setDeltaMovement(Vec3.ZERO); + entity.fallDistance = 0.0F; + entity.hasImpulse = true; + if (this.tickCount % 6 == 0) { + level.sendParticles(ParticleTypes.END_ROD, entity.getX(), entity.getY() + entity.getBbHeight() * 0.5D, entity.getZ(), + 2, 0.2D, 0.2D, 0.2D, 0.0D); + } + } + } + + private void tickCrushingGravity() { + if (!this.royalEffects.active("crushing_gravity")) { + return; + } + if (!(this.level() instanceof ServerLevel level)) { + return; + } + for (Entity entity : level.getEntitiesOfClass(Entity.class, + this.getBoundingBox().inflate(CRUSHING_GRAVITY_RADIUS))) { + if (entity == this || isFieldImmune(entity) || entity instanceof Player player && player.isCreative()) { + continue; + } + double downSign = AntarchyGravityApi.isGravityInverted(entity) ? 1.0D : -1.0D; + entity.setDeltaMovement(entity.getDeltaMovement().add(0.0D, downSign * CRUSHING_GRAVITY_STRENGTH, 0.0D)); + entity.hasImpulse = true; + } + if (this.tickCount % 8 == 0) { + level.sendParticles(ACCEL_DUST, this.getX(), this.getY() + 1.0D, this.getZ(), 20, + CRUSHING_GRAVITY_RADIUS * 0.5D, 1.0D, CRUSHING_GRAVITY_RADIUS * 0.5D, 0.0D); + } + } + + private void startRoyalAcceleration() { + this.accelerationCooldownTicks = ACCELERATION_COOLDOWN; + this.royalEffects.start("acceleration", ACCELERATION_DURATION, () -> { + this.setRoyalAccelerated(true); + this.playRoyalSound(AntarchySoundEvents.QUEEN_ROAR.get(), 1.4F); + applyAccelModifier(this.getAttribute(Attributes.MOVEMENT_SPEED), ACCEL_SPEED_ID); + applyAccelModifier(this.getAttribute(Attributes.FLYING_SPEED), ACCEL_FLY_ID); + }, this::tickRoyalAccelerationEffect, () -> { + this.setRoyalAccelerated(false); + removeAccelModifier(this.getAttribute(Attributes.MOVEMENT_SPEED), ACCEL_SPEED_ID); + removeAccelModifier(this.getAttribute(Attributes.FLYING_SPEED), ACCEL_FLY_ID); + }); + } + + private static void applyAccelModifier(AttributeInstance attribute, ResourceLocation id) { + UUID uuid = UUID.nameUUIDFromBytes(id.toString().getBytes(java.nio.charset.StandardCharsets.UTF_8)); + if (attribute == null || attribute.getModifier(uuid) != null) { + return; + } + attribute.addTransientModifier(new AttributeModifier(uuid, id.toString(), 0.9D, AttributeModifier.Operation.MULTIPLY_BASE)); + } + + private static void removeAccelModifier(AttributeInstance attribute, ResourceLocation id) { + if (attribute != null) { + attribute.removeModifier(UUID.nameUUIDFromBytes(id.toString().getBytes(java.nio.charset.StandardCharsets.UTF_8))); + } + } + + private void tickRoyalAccelerationEffect() { + if (!this.isRoyalAccelerated()) { + return; + } + if (this.level() instanceof ServerLevel level && this.tickCount % 2 == 0) { + level.sendParticles(ACCEL_DUST, + this.getX() + (this.random.nextDouble() - 0.5D) * this.getBbWidth(), + this.getY() + this.random.nextDouble() * this.getBbHeight(), + this.getZ() + (this.random.nextDouble() - 0.5D) * this.getBbWidth(), + 6, 0.4D, 0.6D, 0.4D, 0.02D); + } + } + + @Override + public void die(DamageSource damageSource) { + if (!this.level().isClientSide && this.level() instanceof ServerLevel level) { + DimensionalTearEntity.discardQueenOwnedTears(level, this.getUUID()); + } + this.royalEffects.clear(); + this.frozenVelocities.clear(); + removeAccelModifier(this.getAttribute(Attributes.MOVEMENT_SPEED), ACCEL_SPEED_ID); + removeAccelModifier(this.getAttribute(Attributes.FLYING_SPEED), ACCEL_FLY_ID); + super.die(damageSource); + } + + private boolean spawnManticore(ServerLevel serverLevel, LivingEntity target) { + double minimumDistance = Math.max(4.0D, this.getBbWidth() * 0.55D); + double maximumDistance = Math.max(minimumDistance + 1.0D, AntarchySettings.queenManticoreSummonRange()); + for (int attempt = 0; attempt < POSITION_ATTEMPTS_PER_MANTICORE; attempt++) { + double angle = this.random.nextDouble() * Mth.TWO_PI; + double distance = Mth.lerp(this.random.nextDouble(), minimumDistance, maximumDistance); + double x = this.getX() + Math.cos(angle) * distance; + double y = this.getY() + (this.random.nextDouble() - 0.5D) * 2.0D; + double z = this.getZ() + Math.sin(angle) * distance; + ManticoreEntity manticore = AntarchyObjects.MANTICORE.get().create(serverLevel); + if (manticore == null) { + return false; + } + manticore.moveTo(x, y, z, this.random.nextFloat() * 360.0F, 0.0F); + BlockPos spawnPos = manticore.blockPosition(); + if (!serverLevel.noCollision(manticore) + || !serverLevel.isEmptyBlock(spawnPos) + || !ManticoreEntity.canSpawn(AntarchyObjects.MANTICORE.get(), serverLevel, MobSpawnType.MOB_SUMMONED, spawnPos, this.random)) { + manticore.discard(); + continue; + } + manticore.finalizeSpawn(serverLevel, serverLevel.getCurrentDifficultyAt(spawnPos), MobSpawnType.MOB_SUMMONED, null, null); + manticore.markQueenSummoned(this.getUUID()); + manticore.setTarget(target); + serverLevel.addFreshEntity(manticore); + return true; + } + return false; + } + + @Override + public void addAdditionalSaveData(CompoundTag tag) { + super.addAdditionalSaveData(tag); + tag.putInt(SUMMON_COOLDOWN_KEY, this.manticoreSummonCooldownTicks); + tag.putInt("GravityStompCooldownTicks", this.gravityStompCooldownTicks); + tag.putInt("TimeFieldCooldownTicks", this.timeFieldCooldownTicks); + tag.putInt("AccelerationCooldownTicks", this.accelerationCooldownTicks); + tag.putInt("BlackHoleCooldownTicks", this.blackHoleCooldownTicks); + } + + @Override + public void readAdditionalSaveData(CompoundTag tag) { + super.readAdditionalSaveData(tag); + this.manticoreSummonCooldownTicks = Math.max(0, tag.getInt(SUMMON_COOLDOWN_KEY)); + this.gravityStompCooldownTicks = Math.max(0, tag.getInt("GravityStompCooldownTicks")); + this.timeFieldCooldownTicks = Math.max(0, tag.getInt("TimeFieldCooldownTicks")); + this.momentumLockCooldownTicks = Math.max(0, tag.getInt("MomentumLockCooldownTicks")); + this.crushingGravityCooldownTicks = Math.max(0, tag.getInt("CrushingGravityCooldownTicks")); + this.accelerationCooldownTicks = Math.max(0, tag.getInt("AccelerationCooldownTicks")); + this.blackHoleCooldownTicks = Math.max(0, tag.getInt("BlackHoleCooldownTicks")); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalAssailantBlackHoleEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalAssailantBlackHoleEntity.java new file mode 100644 index 00000000..87751345 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalAssailantBlackHoleEntity.java @@ -0,0 +1,51 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchyObjects; +import java.util.UUID; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; + +public final class RoyalAssailantBlackHoleEntity extends RoyalBlackHoleEntity { + public RoyalAssailantBlackHoleEntity(EntityType entityType, Level level) { + super(entityType, level); + } + + public static RoyalAssailantBlackHoleEntity create(ServerLevel level, Vec3 center, @Nullable UUID ownerId) { + RoyalAssailantBlackHoleEntity hole = new RoyalAssailantBlackHoleEntity( + AntarchyObjects.ROYAL_ASSAILANT_BLACK_HOLE.get(), level); + hole.setPos(center.x, center.y, center.z); + hole.setRadius(AntarchySettings.queenBlackHoleRadius()); + hole.setActiveTicks(AntarchySettings.queenBlackHoleActiveTicks()); + hole.setOwnerId(ownerId); + return hole; + } + + @Override + protected boolean risesWhileActive() { + return true; + } + + @Override + protected double timeDilationRadius() { + return Math.max(2.0D, this.radius() * 0.55D); + } + + @Override + protected boolean hasVisibleTimeDilationField() { + return false; + } + + @Override + protected int collapseDurationTicks() { + return 12; + } + + @Override + protected boolean pullsTerrainBlocks() { + return false; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBlackHoleEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBlackHoleEntity.java new file mode 100644 index 00000000..cf207c3d --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBlackHoleEntity.java @@ -0,0 +1,268 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import com.craisinlord.antarchy.config.AntarchySettings; +import java.util.UUID; +import net.minecraft.core.particles.ParticleTypes; +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.server.level.ServerLevel; +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.GameRules; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.animatable.GeoEntity; +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.AnimationState; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.core.animation.RawAnimation; +import software.bernie.geckolib.util.GeckoLibUtil; + +public class RoyalBlackHoleEntity extends Entity implements GeoEntity { + private static final EntityDataAccessor RADIUS = + SynchedEntityData.defineId(RoyalBlackHoleEntity.class, EntityDataSerializers.FLOAT); + private static final EntityDataAccessor COLLAPSING = + SynchedEntityData.defineId(RoyalBlackHoleEntity.class, EntityDataSerializers.BOOLEAN); + + private static final String OWNER_KEY = "OwnerUuid"; + private static final String AGE_KEY = "Age"; + private static final String ACTIVE_KEY = "ActiveTicks"; + + private static final double DEFAULT_RADIUS = 14.0D; + private static final int DEFAULT_ACTIVE_TICKS = 120; + private static final int COLLAPSE_TICKS = 12; + + @Nullable + private UUID ownerId; + private int age; + private int activeTicks = DEFAULT_ACTIVE_TICKS; + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + + public RoyalBlackHoleEntity(EntityType entityType, Level level) { + super(entityType, level); + this.noPhysics = true; + this.noCulling = true; + } + + public static RoyalBlackHoleEntity create(ServerLevel level, Vec3 center, double radius, int activeTicks, @Nullable UUID ownerId) { + RoyalBlackHoleEntity hole = new RoyalBlackHoleEntity(AntarchyObjects.ROYAL_BLACK_HOLE.get(), level); + hole.setPos(center.x, center.y, center.z); + hole.setRadius(radius > 0.0D ? radius : AntarchySettings.queenBlackHoleRadius()); + hole.activeTicks = activeTicks > 0 ? Math.max(20, activeTicks) : AntarchySettings.queenBlackHoleActiveTicks(); + hole.ownerId = ownerId; + return hole; + } + + public static RoyalBlackHoleEntity create(ServerLevel level, Vec3 center, @Nullable UUID ownerId) { + return create(level, center, AntarchySettings.queenBlackHoleRadius(), AntarchySettings.queenBlackHoleActiveTicks(), ownerId); + } + + protected void setActiveTicks(int activeTicks) { + this.activeTicks = activeTicks > 0 ? Math.max(20, activeTicks) : DEFAULT_ACTIVE_TICKS; + } + + protected void setOwnerId(@Nullable UUID ownerId) { + this.ownerId = ownerId; + } + + protected boolean risesWhileActive() { + return false; + } + + protected double timeDilationRadius() { + return Math.max(2.0D, this.radius() * 0.55D); + } + + protected boolean hasVisibleTimeDilationField() { + return true; + } + + protected int collapseDurationTicks() { + return COLLAPSE_TICKS; + } + + protected boolean pullsTerrainBlocks() { + return true; + } + + @Override + protected void defineSynchedData() { + this.entityData.define(RADIUS, (float) DEFAULT_RADIUS); + this.entityData.define(COLLAPSING, false); + } + + public void setRadius(double radius) { + this.entityData.set(RADIUS, (float) Math.max(1.0D, radius)); + } + + public double radius() { + return this.entityData.get(RADIUS); + } + + public boolean isCollapsing() { + return this.entityData.get(COLLAPSING); + } + + @Override + public void tick() { + super.tick(); + if (this.level().isClientSide) { + this.spawnClientParticles(); + return; + } + this.age++; + if (!this.isCollapsing()) { + if (this.risesWhileActive()) { + this.setPos(this.getX(), this.getY() + 0.035D, this.getZ()); + } + this.applyPull(); + if (this.age % 10 == 0 && this.level() instanceof ServerLevel level) { + if (this.hasVisibleTimeDilationField()) { + TimeDilationApi.createField(level, this.position(), this.timeDilationRadius(), 0.18D, 14, this.ownerId); + } + if (this.pullsTerrainBlocks() && this.age % 20 == 0 && level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) { + RoyalBlockDestruction.destroySphere(level, this, this.position(), Math.min(2.0D, this.radius() * 0.2D), 8, 30.0D, 0.0F); + } + } + if (this.age >= this.activeTicks) { + this.entityData.set(COLLAPSING, true); + this.age = 0; + } + return; + } + if (this.age >= this.collapseDurationTicks()) { + this.collapse(); + this.discard(); + } + } + + private void applyPull() { + Vec3 center = this.position(); + double radius = this.radius(); + for (Entity entity : this.level().getEntitiesOfClass(Entity.class, new AABB(center, center).inflate(radius))) { + if (entity == this || this.isImmune(entity)) { + continue; + } + Vec3 toCenter = center.subtract(entity.position()); + double distance = toCenter.length(); + if (distance < 0.5D || distance > radius) { + continue; + } + double strength = AntarchySettings.queenBlackHolePullStrength() * (1.0D - distance / radius); + Vec3 pull = toCenter.scale(strength / distance); + entity.setDeltaMovement(entity.getDeltaMovement().scale(0.86D).add(pull)); + entity.hasImpulse = true; + entity.fallDistance = 0.0F; + } + } + + private void collapse() { + if (!(this.level() instanceof ServerLevel level)) { + return; + } + Vec3 center = this.position(); + double radius = this.radius(); + DamageSource source = this.ownerEntity() != null + ? this.damageSources().mobAttack(this.ownerEntity()) + : this.damageSources().magic(); + for (LivingEntity living : level.getEntitiesOfClass(LivingEntity.class, new AABB(center, center).inflate(radius))) { + if (this.isImmune(living)) { + continue; + } + double distance = Math.max(1.0D, living.position().distanceTo(center)); + float falloff = (float) Math.max(0.25D, 1.0D - distance / radius); + living.hurt(source, 26.0F * falloff); + Vec3 launch = living.position().subtract(center).normalize().scale(2.6D * falloff); + living.setDeltaMovement(launch.x, 1.1D * falloff + 0.4D, launch.z); + living.hasImpulse = true; + } + if (level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) { + RoyalBlockDestruction.destroySphere(level, this, center, radius * 0.4D, 160, 60.0D, 0.1F); + } + level.sendParticles(ParticleTypes.EXPLOSION_EMITTER, center.x, center.y, center.z, 8, 3.0D, 3.0D, 3.0D, 0.0D); + level.sendParticles(ParticleTypes.REVERSE_PORTAL, center.x, center.y, center.z, 120, 4.0D, 4.0D, 4.0D, 0.6D); + } + + private boolean isImmune(Entity entity) { + if (entity instanceof RoyalBossEntity) { + return true; + } + if (this.ownerId != null && this.ownerId.equals(entity.getUUID())) { + return true; + } + return entity.getType().is(com.craisinlord.antarchy.content.AntarchyTags.Entities.TIME_DILATION_IMMUNE); + } + + @Nullable + private LivingEntity ownerEntity() { + if (this.ownerId == null || !(this.level() instanceof ServerLevel level)) { + return null; + } + return level.getEntity(this.ownerId) instanceof LivingEntity living ? living : null; + } + + private void spawnClientParticles() { + Vec3 center = this.position(); + for (int i = 0; i < 6; i++) { + double angle = this.random.nextDouble() * Math.PI * 2.0D; + double r = this.radius() * (0.3D + this.random.nextDouble() * 0.7D); + double px = center.x + Math.cos(angle) * r; + double pz = center.z + Math.sin(angle) * r; + double py = center.y + (this.random.nextDouble() - 0.5D) * 3.0D; + this.level().addParticle(ParticleTypes.PORTAL, px, py, pz, + (center.x - px) * 0.18D, (center.y - py) * 0.18D, (center.z - pz) * 0.18D); + } + } + + @Override + public boolean isPickable() { + return false; + } + + @Override + public boolean isIgnoringBlockTriggers() { + return true; + } + + @Override + protected void readAdditionalSaveData(CompoundTag tag) { + this.setRadius(tag.getDouble("Radius")); + this.age = tag.getInt(AGE_KEY); + this.activeTicks = tag.contains(ACTIVE_KEY) ? tag.getInt(ACTIVE_KEY) : DEFAULT_ACTIVE_TICKS; + this.ownerId = tag.hasUUID(OWNER_KEY) ? tag.getUUID(OWNER_KEY) : null; + } + + @Override + protected void addAdditionalSaveData(CompoundTag tag) { + tag.putDouble("Radius", this.radius()); + tag.putInt(AGE_KEY, this.age); + tag.putInt(ACTIVE_KEY, this.activeTicks); + if (this.ownerId != null) { + tag.putUUID(OWNER_KEY, this.ownerId); + } + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "black_hole_controller", 0, this::blackHoleController)); + } + + private PlayState blackHoleController(AnimationState state) { + return state.setAndContinue(RawAnimation.begin().thenLoop("animation")); + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBlockDestruction.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBlockDestruction.java new file mode 100644 index 00000000..bd69e3aa --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBlockDestruction.java @@ -0,0 +1,69 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.GameRules; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.Vec3; + +public final class RoyalBlockDestruction { + private RoyalBlockDestruction() { + } + + public static int destroySphere( + ServerLevel level, + Entity source, + Vec3 center, + double radius, + int maxBlocks, + double maxResistance, + float dropChance + ) { + if (maxBlocks <= 0 || radius <= 0.0D || !level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) { + return 0; + } + + int minX = net.minecraft.util.Mth.floor(center.x - radius); + int minY = net.minecraft.util.Mth.floor(center.y - radius); + int minZ = net.minecraft.util.Mth.floor(center.z - radius); + int maxX = net.minecraft.util.Mth.floor(center.x + radius); + int maxY = net.minecraft.util.Mth.floor(center.y + radius); + int maxZ = net.minecraft.util.Mth.floor(center.z + radius); + double radiusSqr = radius * radius; + + int destroyed = 0; + for (BlockPos cursor : BlockPos.betweenClosed(minX, minY, minZ, maxX, maxY, maxZ)) { + if (destroyed >= maxBlocks) { + break; + } + if (cursor.distToCenterSqr(center.x, center.y, center.z) > radiusSqr + || cursor.getY() < level.getMinBuildHeight() + || cursor.getY() >= level.getMaxBuildHeight() + || !level.getWorldBorder().isWithinBounds(cursor)) { + continue; + } + + BlockPos pos = cursor.immutable(); + BlockState existing = level.getBlockState(pos); + if (existing.isAir() + || level.getBlockEntity(pos) != null + || existing.getDestroySpeed(level, pos) < 0.0F + || existing.getBlock().getExplosionResistance() > maxResistance + || existing.getCollisionShape(level, pos).isEmpty()) { + continue; + } + + if (level.random.nextFloat() <= dropChance) { + level.destroyBlock(pos, true, source); + } else { + level.levelEvent(2001, pos, Block.getId(existing)); + level.setBlockAndUpdate(pos, Blocks.AIR.defaultBlockState()); + } + destroyed++; + } + return destroyed; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBoltEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBoltEntity.java new file mode 100644 index 00000000..b2803a51 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBoltEntity.java @@ -0,0 +1,137 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.entity.royal.beam.RoyalBeamElement; +import net.minecraft.core.particles.ParticleOptions; +import net.minecraft.core.particles.ParticleTypes; +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.server.level.ServerLevel; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LightningBolt; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.projectile.AbstractHurtingProjectile; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.EntityHitResult; +import net.minecraft.world.phys.HitResult; + +public class RoyalBoltEntity extends AbstractHurtingProjectile { + private static final EntityDataAccessor ELEMENT = + SynchedEntityData.defineId(RoyalBoltEntity.class, EntityDataSerializers.INT); + + public RoyalBoltEntity(EntityType entityType, Level level) { + super(entityType, level); + } + + @Override + protected void defineSynchedData() { + super.defineSynchedData(); + this.entityData.define(ELEMENT, RoyalBeamElement.GENERIC.ordinal()); + } + + public void setElement(RoyalBeamElement element) { + this.entityData.set(ELEMENT, element.ordinal()); + } + + public RoyalBeamElement getElement() { + RoyalBeamElement[] values = RoyalBeamElement.values(); + return values[Math.floorMod(this.entityData.get(ELEMENT), values.length)]; + } + + @Override + public void addAdditionalSaveData(CompoundTag tag) { + super.addAdditionalSaveData(tag); + tag.putInt("Element", this.entityData.get(ELEMENT)); + } + + @Override + public void readAdditionalSaveData(CompoundTag tag) { + super.readAdditionalSaveData(tag); + if (tag.contains("Element")) { + this.entityData.set(ELEMENT, tag.getInt("Element")); + } + } + + protected double getDefaultGravity() { + return 0.02D; + } + + @Override + protected float getInertia() { + return 0.97F; + } + + @Override + protected boolean shouldBurn() { + return false; + } + + @Override + protected ParticleOptions getTrailParticle() { + return switch (this.getElement()) { + case FIRE -> ParticleTypes.FLAME; + case LIGHTNING -> ParticleTypes.ELECTRIC_SPARK; + case ICE -> ParticleTypes.SNOWFLAKE; + case GENERIC -> ParticleTypes.WITCH; + }; + } + + @Override + protected void onHitEntity(EntityHitResult result) { + super.onHitEntity(result); + if (this.level().isClientSide) { + return; + } + Entity target = result.getEntity(); + Entity owner = this.getOwner(); + if (target == owner || (owner != null && target == owner.getVehicle())) { + return; + } + float damage = (float) AntarchySettings.royalBoltDamage(); + target.hurt(this.damageSources().mobProjectile(this, owner instanceof LivingEntity le ? le : null), damage); + if (target instanceof LivingEntity living) { + living.knockback(0.35D, this.getX() - target.getX(), this.getZ() - target.getZ()); + switch (this.getElement()) { + case FIRE -> living.setRemainingFireTicks(Math.max(living.getRemainingFireTicks(), 80)); + case ICE -> { + living.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, 100, 1)); + living.setTicksFrozen(Math.min(living.getTicksRequiredToFreeze() + 40, living.getTicksFrozen() + 140)); + } + case LIGHTNING -> { + if (this.level() instanceof ServerLevel serverLevel) { + LightningBolt bolt = EntityType.LIGHTNING_BOLT.create(serverLevel); + if (bolt != null) { + bolt.moveTo(target.getX(), target.getY(), target.getZ()); + bolt.setVisualOnly(true); + if (owner instanceof net.minecraft.server.level.ServerPlayer serverPlayer) { + bolt.setCause(serverPlayer); + } + serverLevel.addFreshEntity(bolt); + } + } + } + case GENERIC -> { + } + } + } + } + + @Override + protected void onHit(HitResult result) { + super.onHit(result); + if (!this.level().isClientSide) { + this.level().broadcastEntityEvent(this, (byte) 3); + this.discard(); + } + } + + @Override + public boolean isPickable() { + return false; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBossEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBossEntity.java new file mode 100644 index 00000000..3a4be78e --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBossEntity.java @@ -0,0 +1,918 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner; +import com.craisinlord.antarchy.content.entity.multipart.MultipartLayout; +import com.craisinlord.antarchy.content.entity.multipart.MultipartPartDefinition; +import com.craisinlord.antarchy.content.entity.royal.beam.RoyalBeamController; +import com.craisinlord.antarchy.content.entity.royal.beam.RoyalBeamSettings; +import com.craisinlord.antarchy.content.entity.royal.beam.RoyalBeamTerrainMode; +import com.craisinlord.antarchy.content.entity.royal.beam.RoyalBeamElement; +import com.craisinlord.antarchy.content.entity.royal.attack.RoyalAttackLane; +import com.craisinlord.antarchy.content.entity.royal.attack.RoyalAttackScheduler; +import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi; +import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisUndersideManager; +import java.util.List; +import net.minecraft.network.chat.Component; +import net.minecraft.network.syncher.EntityDataAccessor; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.network.syncher.SynchedEntityData; +import net.minecraft.server.level.ServerBossEvent; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.util.Mth; +import net.minecraft.world.BossEvent; +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.Mob; +import net.minecraft.world.entity.MoverType; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.ai.control.FlyingMoveControl; +import net.minecraft.world.entity.ai.goal.FloatGoal; +import net.minecraft.world.entity.ai.goal.LookAtPlayerGoal; +import net.minecraft.world.entity.ai.goal.RandomLookAroundGoal; +import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal; +import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal; +import net.minecraft.world.entity.ai.navigation.FlyingPathNavigation; +import net.minecraft.world.entity.ai.navigation.PathNavigation; +import net.minecraft.world.entity.monster.Monster; +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 org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.animatable.GeoEntity; +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.AnimationState; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.core.animation.RawAnimation; +import software.bernie.geckolib.util.GeckoLibUtil; + +public abstract class RoyalBossEntity extends Monster implements GeoEntity, MultipartEntityOwner { + public static final float MODEL_RENDER_SCALE = 2.0F; + public static final float GAMEPLAY_WIDTH = 30.0F; + public static final float GAMEPLAY_HEIGHT = 15.0F; + + public enum Phase { + ONE(1, 1.00F), + TWO(2, 0.72F), + THREE(3, 0.48F); + + private final int maxConcurrentHeadAttacks; + private final float cooldownScale; + + Phase(int maxConcurrentHeadAttacks, float cooldownScale) { + this.maxConcurrentHeadAttacks = maxConcurrentHeadAttacks; + this.cooldownScale = cooldownScale; + } + + public int maxConcurrentHeadAttacks() { + return this.maxConcurrentHeadAttacks; + } + + public float cooldownScale() { + return this.cooldownScale; + } + } + + private static final float PHASE_TWO_THRESHOLD = 0.70F; + private static final float PHASE_THREE_THRESHOLD = 0.35F; + + private static final int BITE_DURATION_TICKS = 16; + private static final int BITE_HIT_TICK = 6; + private static final int DEATH_TICKS = 60; + private static final double CRUSH_RADIUS = 3.5D; + private static final int CRUSH_MAX_BLOCKS = 24; + private static final double CRUSH_MAX_RESISTANCE = 60.0D; + private static final float CRUSH_DROP_CHANCE = 0.1F; + private static final int OBSTRUCTION_CLEAR_INTERVAL_TICKS = 5; + private static final double OBSTRUCTION_CLEAR_RADIUS = 3.5D; + private static final int OBSTRUCTION_CLEAR_MAX_BLOCKS = 24; + private static final double OBSTRUCTION_CLEAR_MAX_RESISTANCE = 60.0D; + private static final float OBSTRUCTION_CLEAR_DROP_CHANCE = 0.1F; + // Keep visual muzzle points separate from the centered multipart hitboxes. + private static final double BEAM_MUZZLE_FORWARD = 25.0D; + private static final double BEAM_MUZZLE_Y = 13.0D; + private static final double BEAM_MUZZLE_LATERAL = 2.75D; + + protected static final double FLYING_MIN_HOVER = 2.5D; + protected static final double FLYING_PREFERRED_HOVER = 6.0D; + protected static final double FLYING_MAX_HOVER_ABOVE_GROUND = 24.0D; + + private static final EntityDataAccessor FIRING = + SynchedEntityData.defineId(RoyalBossEntity.class, EntityDataSerializers.BOOLEAN); + private static final EntityDataAccessor HAS_BEAM_END = + SynchedEntityData.defineId(RoyalBossEntity.class, EntityDataSerializers.BOOLEAN); + private static final EntityDataAccessor ACCELERATED = + SynchedEntityData.defineId(RoyalBossEntity.class, EntityDataSerializers.BOOLEAN); + private static final EntityDataAccessor BEAM_ELEMENT = + SynchedEntityData.defineId(RoyalBossEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor BEAM_END_X = + SynchedEntityData.defineId(RoyalBossEntity.class, EntityDataSerializers.FLOAT); + private static final EntityDataAccessor BEAM_END_Y = + SynchedEntityData.defineId(RoyalBossEntity.class, EntityDataSerializers.FLOAT); + private static final EntityDataAccessor BEAM_END_Z = + SynchedEntityData.defineId(RoyalBossEntity.class, EntityDataSerializers.FLOAT); + + private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("idle"); + private static final RawAnimation WALK_ANIM = RawAnimation.begin().thenLoop("walk"); + private static final RawAnimation FLY_ANIM = RawAnimation.begin().thenLoop("fly"); + private static final RawAnimation DEATH_ANIM = RawAnimation.begin().thenPlayAndHold("death"); + + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + protected final RoyalBeamController beamController = new RoyalBeamController(this); + protected final RoyalAttackScheduler attackScheduler = new RoyalAttackScheduler(); + private final ServerBossEvent bossEvent; + private final RoyalHead[] heads = { + new RoyalHead(RoyalHead.Slot.LEFT), + new RoyalHead(RoyalHead.Slot.CENTER), + new RoyalHead(RoyalHead.Slot.RIGHT) + }; + private int beamCooldownTicks; + @Nullable + private RoyalHead activeBeamHead; + private int beamLoopSoundTicks; + private int beamHeadCursor; + private boolean beamStarted; + + @Nullable + private Entity[] multipartParts; + + protected RoyalBossEntity(EntityType entityType, Level level) { + super(entityType, level); + this.xpReward = 500; + if (this.isFlyingBoss()) { + this.moveControl = new FlyingMoveControl(this, 20, true); + } + this.bossEvent = new com.craisinlord.antarchy.content.boss.EntityLinkedServerBossEvent( + this.getUUID(), + Component.translatable(entityType.getDescriptionId()), + this.bossBarColor(), + BossEvent.BossBarOverlay.PROGRESS); + } + + protected abstract BossEvent.BossBarColor bossBarColor(); + + protected abstract SoundEvent royalIdleSound(); + + protected abstract SoundEvent royalHurtSound(); + + protected abstract SoundEvent royalDeathSound(); + + @Nullable + protected SoundEvent royalFlyLoopSound() { + return null; + } + + protected abstract SoundEvent royalBiteSound(); + + protected abstract SoundEvent royalBeamShootSound(); + + protected abstract SoundEvent royalBeamStartSound(); + + protected abstract SoundEvent royalBeamLoopSound(); + + protected abstract SoundEvent royalBeamEndSound(); + + protected abstract RoyalBeamSettings royalBeamSettings(); + + protected abstract RoyalBeamTerrainMode royalBeamTerrainMode(); + + protected RoyalBeamElement royalBeamElement(@Nullable RoyalHead head) { + return RoyalBeamElement.GENERIC; + } + + protected SoundEvent royalBeamStartSound(RoyalHead head) { + return this.royalBeamStartSound(); + } + + protected void tickRoyalBeamEffects(RoyalHead head, Vec3 start, Vec3 end) { + } + + protected RoyalBeamTerrainMode royalBeamTerrainMode(@Nullable RoyalHead head) { + return this.royalBeamTerrainMode(); + } + + public static AttributeSupplier.Builder createBaseAttributes(double health, double attackDamage) { + return Mob.createMobAttributes() + .add(Attributes.MAX_HEALTH, health) + .add(Attributes.ATTACK_DAMAGE, attackDamage) + .add(Attributes.ARMOR, AntarchySettings.royalBossArmor()) + .add(Attributes.FOLLOW_RANGE, AntarchySettings.royalBossFollowRange()) + .add(Attributes.MOVEMENT_SPEED, AntarchySettings.royalBossMovementSpeed()) + .add(Attributes.FLYING_SPEED, AntarchySettings.royalBossMovementSpeed()) + .add(Attributes.KNOCKBACK_RESISTANCE, AntarchySettings.royalBossKnockbackResistance()); + } + + protected abstract String geoName(); + + protected abstract boolean isFlyingBoss(); + + public String geoNameForRender() { + return this.geoName(); + } + + @Override + public MultipartLayout antarchy$getMultipartLayout() { + return RoyalBossMultipartLayout.INSTANCE; + } + + @Override + @Nullable + public Entity[] antarchy$getMultipartParts() { + return this.multipartParts; + } + + @Override + public void antarchy$setMultipartParts(@Nullable Entity[] parts) { + this.multipartParts = parts; + } + + @Override + protected PathNavigation createNavigation(Level level) { + if (this.isFlyingBoss()) { + FlyingPathNavigation navigation = new FlyingPathNavigation(this, level); + navigation.setCanOpenDoors(false); + navigation.setCanFloat(true); + return navigation; + } + return super.createNavigation(level); + } + + @Override + protected void registerGoals() { + this.goalSelector.addGoal(0, new FloatGoal(this)); + this.goalSelector.addGoal(7, new LookAtPlayerGoal(this, Player.class, 48.0F)); + this.goalSelector.addGoal(8, new RandomLookAroundGoal(this)); + this.targetSelector.addGoal(1, new HurtByTargetGoal(this)); + this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); + } + + @Override + protected void defineSynchedData() { + super.defineSynchedData(); + this.entityData.define(FIRING, false); + this.entityData.define(HAS_BEAM_END, false); + this.entityData.define(ACCELERATED, false); + this.entityData.define(BEAM_ELEMENT, RoyalBeamElement.GENERIC.ordinal()); + this.entityData.define(BEAM_END_X, 0.0F); + this.entityData.define(BEAM_END_Y, 0.0F); + this.entityData.define(BEAM_END_Z, 0.0F); + } + + @Override + public boolean removeWhenFarAway(double distanceToClosestPlayer) { + return false; + } + + @Override + public void checkDespawn() { + } + + @Override + protected SoundEvent getAmbientSound() { + return this.royalIdleSound(); + } + + @Override + protected SoundEvent getHurtSound(DamageSource damageSource) { + return this.royalHurtSound(); + } + + @Override + protected SoundEvent getDeathSound() { + return this.royalDeathSound(); + } + + @Override + protected float getSoundVolume() { + return (float) AntarchySettings.royalBossSoundVolume(); + } + + protected void playRoyalSound(SoundEvent sound, float pitch) { + this.playSound(sound, (float) AntarchySettings.royalBossSoundVolume(), pitch); + } + + @Override + public void travel(Vec3 travelVector) { + if (this.isFlyingBoss() && this.isEffectiveAi()) { + this.moveRelative(this.getSpeed(), travelVector); + this.move(MoverType.SELF, this.getDeltaMovement()); + this.setDeltaMovement(this.getDeltaMovement().scale(0.91D)); + return; + } + super.travel(travelVector); + } + + @Override + public void tick() { + super.tick(); + if (!this.level().isClientSide + && !this.isDeadOrDying() + && this.tickCount % OBSTRUCTION_CLEAR_INTERVAL_TICKS == 0 + && this.isInWall()) { + RoyalBlockDestruction.destroySphere( + (ServerLevel) this.level(), + this, + this.position().add(0.0D, this.getBbHeight() * 0.5D, 0.0D), + OBSTRUCTION_CLEAR_RADIUS, + OBSTRUCTION_CLEAR_MAX_BLOCKS, + OBSTRUCTION_CLEAR_MAX_RESISTANCE, + OBSTRUCTION_CLEAR_DROP_CHANCE); + } + if (this.isFlyingBoss()) { + this.setNoGravity(!AntarchyGravityApi.isGravityInverted(this)); + } + if (this.level().isClientSide) { + return; + } + if (this.isFlyingBoss() && !this.isDeadOrDying()) { + this.tickFlyingAltitude(); + } + + this.bossEvent.setProgress(this.getHealth() / this.getMaxHealth()); + this.attackScheduler.tick(); + + if (this.isFlyingBoss() && this.tickCount % 40 == 0 && this.royalFlyLoopSound() != null) { + this.playRoyalSound(this.royalFlyLoopSound(), 0.92F + this.random.nextFloat() * 0.12F); + } + + if (this.isDeadOrDying()) { + return; + } + + LivingEntity primaryTarget = this.getTarget(); + if (primaryTarget == null || !primaryTarget.isAlive() || !this.canAttack(primaryTarget)) { + for (RoyalHead head : this.heads) { + head.setTarget(null); + } + return; + } + + this.getLookControl().setLookAt(primaryTarget, 30.0F, 30.0F); + this.assignHeadTargets(primaryTarget); + this.tickRoyalBeam(primaryTarget); + this.steerTowardTarget(primaryTarget); + this.tickBodyCrush(); + + Phase phase = this.phase(); + int activeHeadAttacks = 0; + for (RoyalHead head : this.heads) { + if (this.attackScheduler.laneBusy(this.headLane(head))) { + activeHeadAttacks++; + } + } + + for (RoyalHead head : this.heads) { + if (activeHeadAttacks >= phase.maxConcurrentHeadAttacks()) { + break; + } + if (!head.readyToAttack() || this.attackScheduler.laneBusy(this.headLane(head))) { + continue; + } + LivingEntity headTarget = head.target(this.level()); + if (headTarget != null && this.headWithinBiteReach(head, headTarget)) { + this.startBite(head, phase); + activeHeadAttacks++; + } + } + } + + @Override + public boolean isInvulnerableTo(DamageSource source) { + return source.is(net.minecraft.world.damagesource.DamageTypes.IN_WALL) + || super.isInvulnerableTo(source); + } + + private void tickRoyalBeam(LivingEntity primaryTarget) { + if (this.beamCooldownTicks > 0 || this.attackScheduler.laneBusy(this.beamLane())) { + this.beamCooldownTicks--; + } + + if (this.activeBeamHead != null) { + LivingEntity beamTarget = this.activeBeamHead.target(this.level()); + if (!this.activeBeamHead.shooting() || beamTarget == null || !beamTarget.isAlive()) { + this.stopRoyalBeam(); + } else if (!this.beamStarted) { + return; + } else { + if (this.beamLoopSoundTicks-- <= 0) { + this.beamLoopSoundTicks = 20; + this.playRoyalSound(this.royalBeamLoopSound(), 1.0F); + } + this.beamController.tick( + this.beamAnchor(this.activeBeamHead), + beamTarget, + this.royalBeamSettings(), + this.royalBeamTerrainMode(this.activeBeamHead), + this::setRoyalBeamEndPosition); + Vec3 beamEnd = this.beamController.beamEndPosition(); + if (beamEnd != null) { + this.tickRoyalBeamEffects(this.activeBeamHead, this.beamAnchor(this.activeBeamHead), beamEnd); + } + if (!this.beamController.isFiring()) { + this.stopRoyalBeam(); + } + return; + } + } + + if (this.beamCooldownTicks > 0) { + return; + } + Phase phase = this.phase(); + for (int offset = 0; offset < this.heads.length; offset++) { + RoyalHead head = this.heads[(this.beamHeadCursor + offset) % this.heads.length]; + LivingEntity target = head.target(this.level()); + if (!head.readyToAttack() || this.attackScheduler.laneBusy(this.headLane(head)) + || target == null || !this.canAttack(target) + || this.headWithinBiteReach(head, target)) { + continue; + } + RoyalBeamSettings beamSettings = this.royalBeamSettings(); + int duration = Math.max(1, beamSettings.durationTicks()); + int cooldown = Math.max(1, Mth.floor(beamSettings.cooldownTicks() * phase.cooldownScale())); + int windup = Math.max(0, AntarchySettings.queenBeamWindupTicks()); + if (this instanceof KingEntity) { + windup = Math.max(0, AntarchySettings.kingBeamWindupTicks()); + } + LivingEntity committedTarget = target; + if (!this.attackScheduler.start("beam_" + head.slot().name(), this.beamLane(), cooldown, + windup, duration, 8, new RoyalAttackScheduler.Action() { + @Override + public void onStart() { + head.startShoot(); + } + + @Override + public void onActive(int elapsedTicks) { + if (elapsedTicks != 0 || RoyalBossEntity.this.beamStarted) { + return; + } + RoyalBossEntity.this.beamStarted = true; + RoyalBossEntity.this.beamController.start( + RoyalBossEntity.this.beamAnchor(head), committedTarget.getEyePosition(), duration); + RoyalBossEntity.this.entityData.set(BEAM_ELEMENT, RoyalBossEntity.this.royalBeamElement(head).ordinal()); + RoyalBossEntity.this.setFiringRoyalBeam(true); + RoyalBossEntity.this.triggerAnim(head.slot().controllerName(), "shoot"); + RoyalBossEntity.this.beamLoopSoundTicks = 20; + RoyalBossEntity.this.playRoyalSound(RoyalBossEntity.this.royalBeamStartSound(head), 1.0F); + RoyalBossEntity.this.playRoyalSound(RoyalBossEntity.this.royalBeamShootSound(), 1.0F); + } + + @Override + public void onComplete() { + if (RoyalBossEntity.this.activeBeamHead == head) { + RoyalBossEntity.this.stopRoyalBeam(); + } + } + })) { + continue; + } + head.setBeamActive(true); + this.activeBeamHead = head; + this.beamHeadCursor = (head.slot().partIndex()) % this.heads.length; + this.beamCooldownTicks = cooldown; + this.beamStarted = false; + return; + } + } + + private void stopRoyalBeam() { + if (this.activeBeamHead != null) { + this.activeBeamHead.setBeamActive(false); + this.activeBeamHead.stopShoot(); + } + this.activeBeamHead = null; + this.beamStarted = false; + this.attackScheduler.cancel(this.beamLane()); + this.beamController.stop(); + this.entityData.set(BEAM_ELEMENT, RoyalBeamElement.GENERIC.ordinal()); + this.playRoyalSound(this.royalBeamEndSound(), 1.0F); + this.setFiringRoyalBeam(false); + this.setRoyalBeamEndPosition(null); + } + + public Phase phase() { + float fraction = this.getMaxHealth() <= 0.0F ? 1.0F : this.getHealth() / this.getMaxHealth(); + if (fraction > PHASE_TWO_THRESHOLD) { + return Phase.ONE; + } + if (fraction > PHASE_THREE_THRESHOLD) { + return Phase.TWO; + } + return Phase.THREE; + } + + private void assignHeadTargets(LivingEntity fallback) { + List candidates = this.level().getEntitiesOfClass( + Player.class, + this.getBoundingBox().inflate(AntarchySettings.royalBossFollowRange()), + player -> player.isAlive() && this.canAttack(player)); + if (candidates.isEmpty()) { + for (RoyalHead head : this.heads) { + head.setTarget(fallback); + } + return; + } + + int[] assignedCounts = new int[candidates.size()]; + for (RoyalHead head : this.heads) { + Vec3 anchor = this.headAnchor(head); + int bestIndex = 0; + int bestCount = Integer.MAX_VALUE; + double bestDistance = Double.MAX_VALUE; + for (int i = 0; i < candidates.size(); i++) { + double distance = candidates.get(i).position().distanceToSqr(anchor); + if (assignedCounts[i] < bestCount || (assignedCounts[i] == bestCount && distance < bestDistance)) { + bestIndex = i; + bestCount = assignedCounts[i]; + bestDistance = distance; + } + } + assignedCounts[bestIndex]++; + head.setTarget(candidates.get(bestIndex)); + } + } + + private void steerTowardTarget(LivingEntity target) { + double reach = this.getBbWidth() * 0.5D + this.biteReach() * 0.5D; + double dx = target.getX() - this.getX(); + double dz = target.getZ() - this.getZ(); + boolean closeHorizontally = (dx * dx + dz * dz) <= reach * reach; + + if (!this.isFlyingBoss()) { + if (closeHorizontally) { + this.getNavigation().stop(); + } else { + this.getMoveControl().setWantedPosition(target.getX(), target.getY(), target.getZ(), 1.0D); + } + return; + } + + boolean inverted = AntarchyGravityApi.isGravityInverted(this); + double groundBelowTarget = this.groundYBelow(target.getX(), target.getZ()); + double wantedY = inverted + ? target.getY() - 3.0D + : Mth.clamp(target.getY() + 3.0D, + groundBelowTarget + FLYING_MIN_HOVER, + groundBelowTarget + FLYING_MAX_HOVER_ABOVE_GROUND); + boolean closeVertically = Math.abs(wantedY - this.getY()) <= 2.5D; + if (closeHorizontally && closeVertically) { + this.getNavigation().stop(); + } else { + this.getMoveControl().setWantedPosition(target.getX(), wantedY, target.getZ(), 1.1D); + } + } + + protected double groundYBelow(double x, double z) { + return this.level().getHeight(net.minecraft.world.level.levelgen.Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, + Mth.floor(x), Mth.floor(z)); + } + + private void tickFlyingAltitude() { + if (AntarchyGravityApi.isGravityInverted(this)) { + return; + } + if (this.onGround()) { + this.setDeltaMovement(this.getDeltaMovement().add(0.0D, 0.2D, 0.0D)); + } + double groundY = this.groundYBelow(this.getX(), this.getZ()); + double ceiling = groundY + FLYING_MAX_HOVER_ABOVE_GROUND; + if (this.getY() > ceiling) { + double desiredY = groundY + FLYING_PREFERRED_HOVER; + this.getMoveControl().setWantedPosition(this.getX(), desiredY, this.getZ(), 1.0D); + Vec3 delta = this.getDeltaMovement(); + if (delta.y > -0.1D) { + this.setDeltaMovement(delta.x, Math.max(-0.5D, delta.y - 0.1D), delta.z); + } + } + } + + private void tickBodyCrush() { + if (!(this.level() instanceof ServerLevel serverLevel) || this.tickCount % 10 != 0) { + return; + } + if (this.getDeltaMovement().horizontalDistanceSqr() < 0.0016D) { + return; + } + double yaw = this.yBodyRot * Mth.DEG_TO_RAD; + Vec3 forward = new Vec3(-Math.sin(yaw), 0.0D, Math.cos(yaw)); + Vec3 center = new Vec3( + this.getX() + forward.x * (this.getBbWidth() * 0.45D), + this.getY() + (this.isFlyingBoss() ? 0.0D : 1.0D), + this.getZ() + forward.z * (this.getBbWidth() * 0.45D)); + RoyalBlockDestruction.destroySphere(serverLevel, this, center, CRUSH_RADIUS, CRUSH_MAX_BLOCKS, CRUSH_MAX_RESISTANCE, CRUSH_DROP_CHANCE); + } + + private void startBite(RoyalHead head, Phase phase) { + int cooldown = Math.max(10, Mth.floor(AntarchySettings.royalBossBiteCooldownTicks() * phase.cooldownScale())); + if (!this.attackScheduler.start("bite_" + head.slot().name(), headLane(head), cooldown, + BITE_HIT_TICK, 1, BITE_DURATION_TICKS - BITE_HIT_TICK, + new RoyalAttackScheduler.Action() { + @Override + public void onStart() { + RoyalBossEntity.this.triggerAnim(head.slot().controllerName(), "bite"); + RoyalBossEntity.this.playRoyalSound(RoyalBossEntity.this.royalBiteSound(), + 0.9F + RoyalBossEntity.this.random.nextFloat() * 0.2F); + } + + @Override + public void onActive(int elapsedTicks) { + RoyalBossEntity.this.applyBiteHit(head); + } + })) { + return; + } + } + + protected RoyalAttackLane headLane(RoyalHead head) { + return switch (head.slot()) { + case LEFT -> RoyalAttackLane.LEFT_HEAD; + case CENTER -> RoyalAttackLane.CENTER_HEAD; + case RIGHT -> RoyalAttackLane.RIGHT_HEAD; + }; + } + + protected RoyalAttackLane beamLane() { + return RoyalAttackLane.BODY; + } + + protected boolean beginRoyalAttack(String id, RoyalAttackLane lane, int cooldownTicks, int activeTicks) { + return this.attackScheduler.start(id, lane, cooldownTicks, activeTicks); + } + + protected boolean beginRoyalAttack(String id, RoyalAttackLane lane, int cooldownTicks, int windupTicks, + int activeTicks, int recoveryTicks, RoyalAttackScheduler.Action action) { + return this.attackScheduler.start(id, lane, cooldownTicks, windupTicks, activeTicks, recoveryTicks, action); + } + + private void applyBiteHit(RoyalHead head) { + if (this.level().isClientSide) { + return; + } + Vec3 anchor = this.headAnchor(head); + double reach = this.biteReach(); + float damage = (float) (this.getAttributeValue(Attributes.ATTACK_DAMAGE) * AntarchySettings.royalBossBiteDamageMultiplier()); + DamageSource damageSource = this.damageSources().mobAttack(this); + AABB box = new AABB(anchor, anchor).inflate(reach); + for (LivingEntity living : this.level().getEntitiesOfClass(LivingEntity.class, box, entity -> entity.isAlive() && entity != this)) { + if (living instanceof RoyalBossEntity || living.getType() == this.getType()) { + continue; + } + if (living.position().distanceToSqr(anchor) > reach * reach) { + continue; + } + if (living.hurt(damageSource, damage)) { + Vec3 push = living.position().subtract(anchor).multiply(1.0D, 0.0D, 1.0D); + if (push.lengthSqr() < 1.0E-4D) { + push = this.getViewVector(1.0F).multiply(1.0D, 0.0D, 1.0D); + } + push = push.normalize().scale(1.4D); + living.push(push.x, 0.42D, push.z); + living.hurtMarked = true; + } + } + } + + private boolean headWithinBiteReach(RoyalHead head, LivingEntity target) { + Vec3 anchor = this.headAnchor(head); + double reach = this.biteReach() + target.getBbWidth(); + return target.position().distanceToSqr(anchor) <= reach * reach; + } + + private double biteReach() { + return AntarchySettings.royalBossBiteReach(); + } + + protected Vec3 headAnchor(RoyalHead head) { + int partIndex = head.slot().partIndex(); + Entity[] parts = this.multipartParts; + if (parts != null && partIndex < parts.length && parts[partIndex] != null) { + Entity part = parts[partIndex]; + return part.position().add(0.0D, part.getBbHeight() * 0.5D, 0.0D); + } + + MultipartPartDefinition spec = RoyalBossMultipartLayout.INSTANCE.parts()[partIndex]; + double yaw = this.yBodyRot * Mth.DEG_TO_RAD; + Vec3 forward = new Vec3(-Math.sin(yaw), 0.0D, Math.cos(yaw)); + Vec3 right = new Vec3(forward.z, 0.0D, -forward.x); + return new Vec3( + this.getX() + forward.x * spec.forwardOffset() + right.x * spec.lateralOffset(), + this.getY() + spec.yOffset(), + this.getZ() + forward.z * spec.forwardOffset() + right.z * spec.lateralOffset()); + } + + protected Vec3 beamAnchor(RoyalHead head) { + return beamAnchor(head.slot(), this.getX(), this.getY(), this.getZ(), this.getYRot()); + } + + private Vec3 beamAnchor(RoyalHead.Slot slot, double x, double y, double z, float yaw) { + double yawRadians = yaw * Mth.DEG_TO_RAD; + Vec3 forward = new Vec3(-Math.sin(yawRadians), 0.0D, Math.cos(yawRadians)); + Vec3 right = new Vec3(forward.z, 0.0D, -forward.x); + double lateral = switch (slot) { + case LEFT -> -BEAM_MUZZLE_LATERAL; + case CENTER -> 0.0D; + case RIGHT -> BEAM_MUZZLE_LATERAL; + }; + return new Vec3( + x + forward.x * BEAM_MUZZLE_FORWARD + right.x * lateral, + y + BEAM_MUZZLE_Y, + z + forward.z * BEAM_MUZZLE_FORWARD + right.z * lateral); + } + + protected RoyalHead royalHead(RoyalHead.Slot slot) { + return this.heads[slot.ordinal()]; + } + + @Override + public void die(DamageSource damageSource) { + if (!this.level().isClientSide) { + for (RoyalHead head : this.heads) { + head.reset(); + } + this.beamController.stop(); + this.setFiringRoyalBeam(false); + this.setRoyalBeamEndPosition(null); + this.getNavigation().stop(); + this.setDeltaMovement(Vec3.ZERO); + } + super.die(damageSource); + } + + @Override + @Nullable + public ItemEntity spawnAtLocation(ItemStack stack, float offsetY) { + if (stack.isEmpty() || this.level().isClientSide) { + return null; + } + double spread = this.getBbWidth() * 0.6D; + double height = 20.0D + this.random.nextDouble() * 10.0D; + ItemEntity itemEntity = new ItemEntity( + this.level(), + this.getX() + (this.random.nextDouble() - 0.5D) * spread, + this.getY() + height, + this.getZ() + (this.random.nextDouble() - 0.5D) * spread, + stack); + itemEntity.setDeltaMovement( + (this.random.nextDouble() - 0.5D) * 0.12D, + -0.2D - this.random.nextDouble() * 0.15D, + (this.random.nextDouble() - 0.5D) * 0.12D); + itemEntity.setDefaultPickUpDelay(); + this.level().addFreshEntity(itemEntity); + return itemEntity; + } + + @Override + protected void tickDeath() { + this.deathTime++; + if (this.deathTime == 20 && !this.level().isClientSide()) { + this.level().broadcastEntityEvent(this, (byte) 60); + } + if (this.deathTime >= DEATH_TICKS) { + this.remove(RemovalReason.KILLED); + this.dropExperience(); + } + } + + @Override + public void startSeenByPlayer(ServerPlayer player) { + super.startSeenByPlayer(player); + this.bossEvent.addPlayer(player); + } + + @Override + public void stopSeenByPlayer(ServerPlayer player) { + super.stopSeenByPlayer(player); + this.bossEvent.removePlayer(player); + } + + @Override + public boolean hurt(DamageSource source, float amount) { + float cappedAmount = (float) Math.min(amount, AntarchySettings.royalBossMaxSingleHitDamage()); + return super.hurt(source, cappedAmount); + } + + @Override + public boolean canBeAffected(net.minecraft.world.effect.MobEffectInstance effectInstance) { + if (effectInstance.getEffect() == com.craisinlord.antarchy.content.AntarchyObjects.INVERTED_EFFECT.get()) { + return ThoraxisUndersideManager.isThoraxis(this.level()); + } + return super.canBeAffected(effectInstance); + } + + public boolean isRoyalAccelerated() { + return this.entityData.get(ACCELERATED); + } + + public void setRoyalAccelerated(boolean accelerated) { + this.entityData.set(ACCELERATED, accelerated); + } + + public boolean isFiringRoyalBeam() { + return this.entityData.get(FIRING); + } + + public void setFiringRoyalBeam(boolean firing) { + this.entityData.set(FIRING, firing); + } + + public RoyalBeamController beamController() { + return this.beamController; + } + + public void setRoyalBeamEndPosition(@Nullable Vec3 position) { + this.entityData.set(HAS_BEAM_END, position != null); + if (position != null) { + this.entityData.set(BEAM_END_X, (float) position.x); + this.entityData.set(BEAM_END_Y, (float) position.y); + this.entityData.set(BEAM_END_Z, (float) position.z); + } + } + + @Nullable + public Vec3 getRoyalBeamEndPosition() { + if (!this.entityData.get(HAS_BEAM_END)) { + return null; + } + return new Vec3(this.entityData.get(BEAM_END_X), this.entityData.get(BEAM_END_Y), this.entityData.get(BEAM_END_Z)); + } + + public Vec3 getRoyalBeamShootFrom(float partialTicks) { + if (this.activeBeamHead != null) { + double x = Mth.lerp(partialTicks, this.xo, this.getX()); + double y = Mth.lerp(partialTicks, this.yo, this.getY()); + double z = Mth.lerp(partialTicks, this.zo, this.getZ()); + float yaw = Mth.rotLerp(partialTicks, this.yRotO, this.getYRot()); + return this.beamAnchor(this.activeBeamHead.slot(), x, y, z, yaw); + } + double x = Mth.lerp(partialTicks, this.xo, this.getX()); + double y = Mth.lerp(partialTicks, this.yo, this.getY()) + this.getBbHeight() * 0.72D; + double z = Mth.lerp(partialTicks, this.zo, this.getZ()); + return new Vec3(x, y, z); + } + + public RoyalBeamElement getRoyalBeamElement() { + int ordinal = this.entityData.get(BEAM_ELEMENT); + return ordinal >= 0 && ordinal < RoyalBeamElement.values().length + ? RoyalBeamElement.values()[ordinal] + : RoyalBeamElement.GENERIC; + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "locomotion", 4, this::locomotionPredicate)); + controllers.add(new AnimationController<>(this, "head_left", 0, RoyalBossEntity::headIdle) + .triggerableAnim("bite", RawAnimation.begin().thenPlay("bite_1")) + .triggerableAnim("shoot", RawAnimation.begin().thenPlay("shoot_1"))); + controllers.add(new AnimationController<>(this, "head_center", 0, RoyalBossEntity::headIdle) + .triggerableAnim("bite", RawAnimation.begin().thenPlay("bite_2")) + .triggerableAnim("shoot", RawAnimation.begin().thenPlay("shoot_2"))); + controllers.add(new AnimationController<>(this, "head_right", 0, RoyalBossEntity::headIdle) + .triggerableAnim("bite", RawAnimation.begin().thenPlay("bite_3")) + .triggerableAnim("shoot", RawAnimation.begin().thenPlay("shoot_3"))); + controllers.add(new AnimationController<>(this, "body_action", 0, this::bodyActionPredicate) + .triggerableAnim("stomp", RawAnimation.begin().thenPlay("stomp")) + .triggerableAnim("wing_gust", RawAnimation.begin().thenPlay("wing_gust")) + .triggerableAnim("minion_spawn", RawAnimation.begin().thenPlay("minion_spawn"))); + } + + private PlayState locomotionPredicate(AnimationState state) { + if (this.isDeadOrDying()) { + return PlayState.STOP; + } + if (this.isFlyingBoss()) { + state.setAndContinue(FLY_ANIM); + } else if (state.isMoving()) { + state.setAndContinue(WALK_ANIM); + } else { + state.setAndContinue(IDLE_ANIM); + } + return PlayState.CONTINUE; + } + + private PlayState bodyActionPredicate(AnimationState state) { + if (this.isDeadOrDying()) { + return state.setAndContinue(DEATH_ANIM); + } + return PlayState.STOP; + } + + private static PlayState headIdle(AnimationState state) { + return PlayState.STOP; + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBossMultipartLayout.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBossMultipartLayout.java new file mode 100644 index 00000000..37b380e4 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBossMultipartLayout.java @@ -0,0 +1,38 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import com.craisinlord.antarchy.content.entity.multipart.MultipartLayout; +import com.craisinlord.antarchy.content.entity.multipart.MultipartPartDefinition; + +public final class RoyalBossMultipartLayout implements MultipartLayout { + public static final RoyalBossMultipartLayout INSTANCE = new RoyalBossMultipartLayout(); + + public static final MultipartPartDefinition BODY = new MultipartPartDefinition( + "body", 20.0F, 24.0F, 1.00F, 0.0D, 3.0D, 0.0D, true); + public static final MultipartPartDefinition LEFT_HEAD = new MultipartPartDefinition( + "left_head", 4.0F, 4.0F, 1.30F, 12.0D, 20.0D, -7.0D, true); + public static final MultipartPartDefinition CENTER_HEAD = new MultipartPartDefinition( + "center_head", 4.5F, 4.5F, 1.20F, 13.0D, 22.0D, 0.0D, true); + public static final MultipartPartDefinition RIGHT_HEAD = new MultipartPartDefinition( + "right_head", 4.0F, 4.0F, 1.30F, 12.0D, 20.0D, 7.0D, true); + public static final MultipartPartDefinition LEFT_WING = new MultipartPartDefinition( + "left_wing", 14.0F, 16.0F, 0.85F, -2.0D, 14.0D, -13.0D, true); + public static final MultipartPartDefinition RIGHT_WING = new MultipartPartDefinition( + "right_wing", 14.0F, 16.0F, 0.85F, -2.0D, 14.0D, 13.0D, true); + + private static final MultipartPartDefinition[] PARTS = { + BODY, + LEFT_HEAD, + CENTER_HEAD, + RIGHT_HEAD, + LEFT_WING, + RIGHT_WING + }; + + private RoyalBossMultipartLayout() { + } + + @Override + public MultipartPartDefinition[] parts() { + return PARTS; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalElementalProjectileEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalElementalProjectileEntity.java new file mode 100644 index 00000000..72feface --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalElementalProjectileEntity.java @@ -0,0 +1,198 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.entity.royal.beam.RoyalBeamElement; +import com.craisinlord.antarchy.config.AntarchySettings; +import net.minecraft.core.BlockPos; +import net.minecraft.core.particles.ParticleTypes; +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.server.level.ServerLevel; +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.projectile.ThrowableProjectile; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.EntityHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; +import software.bernie.geckolib.animatable.GeoEntity; +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.AnimationState; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.core.animation.RawAnimation; +import software.bernie.geckolib.util.GeckoLibUtil; + +/** Shared travelling shell for the King's fireball and iceball. Impact rules stay element-specific. */ +public class RoyalElementalProjectileEntity extends ThrowableProjectile implements GeoEntity { + private static final EntityDataAccessor ATTACK_TYPE = + SynchedEntityData.defineId(RoyalElementalProjectileEntity.class, EntityDataSerializers.INT); + private static final int FIREBALL = 0; + private static final int ICEBALL = 1; + private static final int MAX_LIFETIME = 100; + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + + public RoyalElementalProjectileEntity(EntityType type, Level level) { + super(type, level); + this.noCulling = true; + } + + public static RoyalElementalProjectileEntity create(Level level, LivingEntity owner, RoyalBeamElement element, + Vec3 position, Vec3 direction) { + RoyalElementalProjectileEntity projectile = new RoyalElementalProjectileEntity( + AntarchyObjects.ROYAL_ELEMENTAL_PROJECTILE.get(), level); + projectile.setOwner(owner); + projectile.setPos(position.x, position.y, position.z); + projectile.setAttackType(element == RoyalBeamElement.ICE ? ICEBALL : FIREBALL); + projectile.shoot(direction.x, direction.y, direction.z, element == RoyalBeamElement.ICE ? 0.8F : 1.05F, 0.0F); + return projectile; + } + + @Override + protected void defineSynchedData() { + this.entityData.define(ATTACK_TYPE, FIREBALL); + } + + public boolean isIceball() { + return this.entityData.get(ATTACK_TYPE) == ICEBALL; + } + + private void setAttackType(int type) { + this.entityData.set(ATTACK_TYPE, type); + } + + protected double getDefaultGravity() { + return this.isIceball() ? 0.012D : 0.018D; + } + + protected float getInertia() { + return this.isIceball() ? 0.985F : 0.96F; + } + + @Override + public void tick() { + if (!this.level().isClientSide && this.tickCount > MAX_LIFETIME) { + this.discard(); + return; + } + super.tick(); + if (this.level().isClientSide) { + this.level().addParticle(this.isIceball() ? ParticleTypes.SNOWFLAKE : ParticleTypes.FLAME, + this.getX(), this.getY(), this.getZ(), 0.0D, 0.0D, 0.0D); + } + } + + @Override + protected void onHitEntity(EntityHitResult result) { + if (!this.level().isClientSide && this.level() instanceof ServerLevel level) { + this.impact(level, result.getLocation()); + } + this.discard(); + } + + @Override + protected void onHitBlock(BlockHitResult result) { + if (!this.level().isClientSide && this.level() instanceof ServerLevel level) { + this.impact(level, result.getLocation()); + } + this.discard(); + } + + @Override + protected void onHit(HitResult result) { + super.onHit(result); + if (!this.level().isClientSide && result.getType() == HitResult.Type.MISS) { + this.discard(); + } + } + + private void impact(ServerLevel level, Vec3 center) { + if (this.isIceball()) { + impactIce(level, center); + } else { + impactFire(level, center); + } + } + + private void impactFire(ServerLevel level, Vec3 center) { + DamageSource source = this.damageSources().mobProjectile(this, this.getOwner() instanceof LivingEntity living ? living : null); + for (LivingEntity living : level.getEntitiesOfClass(LivingEntity.class, new AABB(center, center).inflate(5.0D), + entity -> entity.isAlive() && entity != this.getOwner())) { + double distance = Math.max(0.5D, living.position().distanceTo(center)); + float falloff = (float) Math.max(0.25D, 1.0D - distance / 5.0D); + living.hurt(source, (float) (AntarchySettings.kingFireballDamage() * falloff)); + living.setRemainingFireTicks(Math.max(living.getRemainingFireTicks(), 120)); + } + RoyalBlockDestruction.destroySphere(level, this, center, AntarchySettings.kingFireballRadius(), AntarchySettings.kingElementalTerrainCap(), 80.0D, 0.15F); + level.sendParticles(ParticleTypes.EXPLOSION_EMITTER, center.x, center.y, center.z, 4, 1.5D, 1.5D, 1.5D, 0.0D); + } + + private void impactIce(ServerLevel level, Vec3 center) { + DamageSource source = this.damageSources().mobProjectile(this, this.getOwner() instanceof LivingEntity living ? living : null); + for (LivingEntity living : level.getEntitiesOfClass(LivingEntity.class, new AABB(center, center).inflate(5.0D), + entity -> entity.isAlive() && entity != this.getOwner())) { + living.hurt(source, (float) AntarchySettings.kingIceballDamage()); + living.setTicksFrozen(Math.min(living.getTicksRequiredToFreeze() + 80, living.getTicksFrozen() + 180)); + living.addEffect(new net.minecraft.world.effect.MobEffectInstance(net.minecraft.world.effect.MobEffects.MOVEMENT_SLOWDOWN, 120, 3)); + } + coverInIce(level, center, AntarchySettings.kingIceballRadius(), AntarchySettings.kingElementalTerrainCap()); + level.sendParticles(ParticleTypes.SNOWFLAKE, center.x, center.y, center.z, 80, 4.0D, 2.0D, 4.0D, 0.08D); + } + + private void coverInIce(ServerLevel level, Vec3 center, double radius, int cap) { + int changed = 0; + int minX = (int) Math.floor(center.x - radius); + int minY = (int) Math.floor(center.y - radius); + int minZ = (int) Math.floor(center.z - radius); + int maxX = (int) Math.floor(center.x + radius); + int maxY = (int) Math.floor(center.y + radius); + int maxZ = (int) Math.floor(center.z + radius); + for (BlockPos pos : BlockPos.betweenClosed(minX, minY, minZ, maxX, maxY, maxZ)) { + if (changed >= cap || pos.distToCenterSqr(center.x, center.y, center.z) > radius * radius) continue; + BlockState existing = level.getBlockState(pos); + if (existing.isAir() || !existing.getFluidState().isEmpty() || existing.hasBlockEntity()) continue; + if (existing.getDestroySpeed(level, pos) < 0.0F || existing.getBlock().getExplosionResistance() > 80.0F) continue; + BlockState frozen = pos.getY() >= center.y + 1.0D ? Blocks.SNOW_BLOCK.defaultBlockState() : Blocks.PACKED_ICE.defaultBlockState(); + if (existing != frozen && level.setBlockAndUpdate(pos, frozen)) changed++; + } + } + + protected net.minecraft.core.particles.ParticleOptions getTrailParticle() { + return this.isIceball() ? ParticleTypes.SNOWFLAKE : ParticleTypes.FLAME; + } + + @Override + public void addAdditionalSaveData(CompoundTag tag) { + super.addAdditionalSaveData(tag); + tag.putInt("AttackType", this.entityData.get(ATTACK_TYPE)); + } + + @Override + public void readAdditionalSaveData(CompoundTag tag) { + super.readAdditionalSaveData(tag); + this.setAttackType(tag.getInt("AttackType")); + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "elemental_projectile", 0, this::animation)); + } + + private PlayState animation(AnimationState state) { + return state.setAndContinue(RawAnimation.begin().thenLoop(this.isIceball() ? "animation.ice_ball" : "animation.fire_ball")); + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalHead.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalHead.java new file mode 100644 index 00000000..43e8de4b --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalHead.java @@ -0,0 +1,100 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.level.Level; +import org.jetbrains.annotations.Nullable; + +public final class RoyalHead { + public enum Slot { + LEFT(1, "head_left", "bite_1", "shoot_1"), + CENTER(2, "head_center", "bite_2", "shoot_2"), + RIGHT(3, "head_right", "bite_3", "shoot_3"); + + private final int partIndex; + private final String controllerName; + private final String biteAnimation; + private final String shootAnimation; + + Slot(int partIndex, String controllerName, String biteAnimation, String shootAnimation) { + this.partIndex = partIndex; + this.controllerName = controllerName; + this.biteAnimation = biteAnimation; + this.shootAnimation = shootAnimation; + } + + public int partIndex() { + return this.partIndex; + } + + public String controllerName() { + return this.controllerName; + } + + public String biteAnimation() { + return this.biteAnimation; + } + + public String shootAnimation() { + return this.shootAnimation; + } + } + + private final Slot slot; + private int targetId = -1; + private boolean shooting; + private boolean beamActive; + + public RoyalHead(Slot slot) { + this.slot = slot; + } + + public Slot slot() { + return this.slot; + } + + @Nullable + public LivingEntity target(Level level) { + if (this.targetId < 0) { + return null; + } + return level.getEntity(this.targetId) instanceof LivingEntity living && living.isAlive() ? living : null; + } + + public void setTarget(@Nullable LivingEntity target) { + this.targetId = target == null ? -1 : target.getId(); + } + + public boolean busy() { + return this.shooting || this.beamActive; + } + + public boolean readyToAttack() { + return !this.busy(); + } + + public void startShoot() { + this.shooting = true; + } + + public void stopShoot() { + this.shooting = false; + } + + public void setBeamActive(boolean beamActive) { + this.beamActive = beamActive; + } + + public boolean beamActive() { + return this.beamActive; + } + + public boolean shooting() { + return this.shooting; + } + + public void reset() { + this.targetId = -1; + this.shooting = false; + this.beamActive = false; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalIceSpikeEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalIceSpikeEntity.java new file mode 100644 index 00000000..ae765726 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalIceSpikeEntity.java @@ -0,0 +1,97 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.config.AntarchySettings; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerLevel; +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.phys.AABB; +import net.minecraft.world.phys.Vec3; +import software.bernie.geckolib.animatable.GeoEntity; +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.AnimationState; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.core.animation.RawAnimation; +import software.bernie.geckolib.util.GeckoLibUtil; + +public class RoyalIceSpikeEntity extends Entity implements GeoEntity { + // The exported asset contains one coordinated animation for all four spike groups. + private static final RawAnimation SPIKE_ANIMATION = RawAnimation.begin().thenPlay("animation"); + private static final String ANIMATION_CONTROLLER = "ice_spike"; + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + private boolean impacted; + + public RoyalIceSpikeEntity(EntityType type, Level level) { + super(type, level); + this.noPhysics = true; + this.noCulling = true; + } + + public static RoyalIceSpikeEntity create(ServerLevel level, Vec3 position) { + RoyalIceSpikeEntity spike = new RoyalIceSpikeEntity(AntarchyObjects.ROYAL_ICE_SPIKE.get(), level); + spike.setPos(position.x, position.y, position.z); + return spike; + } + + @Override + protected void defineSynchedData() { + } + + @Override + public void tick() { + super.tick(); + if (this.tickCount == 1) { + this.triggerAnim(ANIMATION_CONTROLLER, "emerge"); + } + if (!this.level().isClientSide && this.tickCount == 6 && !this.impacted) { + this.impacted = true; + this.impact((ServerLevel) this.level()); + } + if (!this.level().isClientSide && this.tickCount > 110) { + this.discard(); + } + if (this.level().isClientSide && this.tickCount < 10) { + this.level().addParticle(ParticleTypes.SNOWFLAKE, this.getX(), this.getY() + this.tickCount * 0.4D, this.getZ(), 0.0D, 0.03D, 0.0D); + } + } + + private void impact(ServerLevel level) { + DamageSource source = this.damageSources().magic(); + for (LivingEntity living : level.getEntitiesOfClass(LivingEntity.class, + new AABB(this.blockPosition()).inflate(2.2D), entity -> entity.isAlive())) { + living.hurt(source, (float) AntarchySettings.kingIceSpikeDamage()); + living.setTicksFrozen(Math.min(living.getTicksRequiredToFreeze() + 60, living.getTicksFrozen() + 100)); + living.setDeltaMovement(living.getDeltaMovement().add(0.0D, 0.35D, 0.0D)); + living.hasImpulse = true; + } + level.sendParticles(ParticleTypes.SNOWFLAKE, this.getX(), this.getY() + 1.5D, this.getZ(), 25, 1.5D, 1.0D, 1.5D, 0.04D); + } + + @Override + protected void readAdditionalSaveData(CompoundTag tag) { + this.impacted = tag.getBoolean("Impacted"); + } + + @Override + protected void addAdditionalSaveData(CompoundTag tag) { + tag.putBoolean("Impacted", this.impacted); + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, ANIMATION_CONTROLLER, 0, state -> PlayState.STOP) + .triggerableAnim("emerge", SPIKE_ANIMATION)); + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalMountEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalMountEntity.java new file mode 100644 index 00000000..78d7f1dc --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalMountEntity.java @@ -0,0 +1,663 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchySoundEvents; +import com.craisinlord.antarchy.content.AntarchyTags; +import com.craisinlord.antarchy.content.entity.royal.beam.RoyalBeamElement; +import java.util.UUID; +import net.minecraft.core.BlockPos; +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.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.util.Mth; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.AgeableMob; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.MoverType; +import net.minecraft.world.entity.TamableAnimal; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.ai.control.FlyingMoveControl; +import net.minecraft.world.entity.ai.control.MoveControl; +import net.minecraft.world.entity.ai.goal.FloatGoal; +import net.minecraft.world.entity.ai.goal.LookAtPlayerGoal; +import net.minecraft.world.entity.ai.goal.RandomLookAroundGoal; +import net.minecraft.world.entity.ai.goal.SitWhenOrderedToGoal; +import net.minecraft.world.entity.ai.goal.WaterAvoidingRandomStrollGoal; +import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal; +import net.minecraft.world.entity.ai.goal.target.OwnerHurtByTargetGoal; +import net.minecraft.world.entity.ai.goal.target.OwnerHurtTargetGoal; +import net.minecraft.world.entity.ai.navigation.FlyingPathNavigation; +import net.minecraft.world.entity.ai.navigation.GroundPathNavigation; +import net.minecraft.world.entity.ai.navigation.PathNavigation; +import net.minecraft.world.entity.animal.FlyingAnimal; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.pathfinder.BlockPathTypes; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.animatable.GeoEntity; +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.AnimationState; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.core.animation.RawAnimation; +import software.bernie.geckolib.util.GeckoLibUtil; + +public abstract class RoyalMountEntity extends TamableAnimal implements GeoEntity, FlyingAnimal { + public static final int ANIM_IDLE = 0; + public static final int ANIM_WALK = 1; + public static final int ANIM_FLY = 2; + public static final int ANIM_BITE = 3; + public static final int ANIM_FLY_BITE = 4; + public static final int ANIM_SHOOT = 5; + public static final int ANIM_FLY_SHOOT = 6; + + private static final EntityDataAccessor ANIM_STATE = + SynchedEntityData.defineId(RoyalMountEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor FLYING = + SynchedEntityData.defineId(RoyalMountEntity.class, EntityDataSerializers.BOOLEAN); + private static final EntityDataAccessor SADDLED = + SynchedEntityData.defineId(RoyalMountEntity.class, EntityDataSerializers.BOOLEAN); + + private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("idle"); + private static final RawAnimation QUIRK_ANIM = RawAnimation.begin().thenLoop("quirk"); + private static final RawAnimation WALK_ANIM = RawAnimation.begin().thenLoop("walk"); + private static final RawAnimation FLY_ANIM = RawAnimation.begin().thenLoop("fly"); + private static final RawAnimation BITE_ANIM = RawAnimation.begin().thenPlay("bite"); + private static final RawAnimation FLY_BITE_ANIM = RawAnimation.begin().thenPlay("fly_bite"); + private static final RawAnimation SHOOT_ANIM = RawAnimation.begin().thenPlay("shoot"); + private static final RawAnimation FLY_SHOOT_ANIM = RawAnimation.begin().thenPlay("fly_shoot"); + + private static final int ACTION_TICKS = 12; + private static final int BITE_HIT_TICK = 6; + private static final int GROW_TICKS = 24000; + + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + private final MoveControl groundMoveControl; + private final MoveControl flyingMoveControl; + private final PathNavigation groundNavigation; + private final PathNavigation flyingNavigation; + + private int actionTicks; + private boolean actionHit; + private int spitCooldown; + private int quirkTimer; + private int flapSoundTimer; + private boolean riderAscendPressed; + private boolean riderDescendPressed; + + protected RoyalMountEntity(EntityType entityType, Level level) { + super(entityType, level); + this.groundMoveControl = new MoveControl(this); + this.flyingMoveControl = new FlyingMoveControl(this, 20, true); + this.groundNavigation = new GroundPathNavigation(this, level); + FlyingPathNavigation flying = new FlyingPathNavigation(this, level); + flying.setCanFloat(true); + this.flyingNavigation = flying; + this.moveControl = this.groundMoveControl; + this.navigation = this.groundNavigation; + this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F); + this.setPathfindingMalus(BlockPathTypes.LAVA, -1.0F); + this.xpReward = 20; + } + + public static AttributeSupplier.Builder createBaseAttributes( + double health, double attackDamage, double movementSpeed, double flyingSpeed, + double armor, double knockbackResistance, double followRange) { + return Mob.createMobAttributes() + .add(Attributes.MAX_HEALTH, health) + .add(Attributes.ATTACK_DAMAGE, attackDamage) + .add(Attributes.MOVEMENT_SPEED, movementSpeed) + .add(Attributes.FLYING_SPEED, flyingSpeed) + .add(Attributes.FOLLOW_RANGE, followRange) + .add(Attributes.KNOCKBACK_RESISTANCE, knockbackResistance) + .add(Attributes.ARMOR, armor); + } + + protected abstract String geoName(); + + protected abstract EntityType boltType(); + + protected abstract SoundEvent idleSound(); + + protected abstract SoundEvent biteSound(); + + protected abstract SoundEvent shootSound(); + + protected abstract SoundEvent flySound(); + + protected abstract SoundEvent stepSound(); + + @Override + protected SoundEvent getAmbientSound() { + return this.idleSound(); + } + + @Override + protected void playStepSound(BlockPos pos, BlockState state) { + this.playSound(this.stepSound(), 0.16F, 1.0F + (this.random.nextFloat() - 0.5F) * 0.2F); + } + + @Override + protected PathNavigation createNavigation(Level level) { + GroundPathNavigation navigation = new GroundPathNavigation(this, level); + navigation.setCanFloat(true); + return navigation; + } + + @Override + protected void registerGoals() { + this.goalSelector.addGoal(0, new FloatGoal(this)); + this.goalSelector.addGoal(1, new SitWhenOrderedToGoal(this) { + @Override + public boolean canUse() { + return !RoyalMountEntity.this.isBaby() && super.canUse(); + } + }); + this.goalSelector.addGoal(2, new RoyalMountSpitGoal(this)); + this.goalSelector.addGoal(3, new net.minecraft.world.entity.ai.goal.MeleeAttackGoal(this, 1.2D, true) { + @Override + protected void checkAndPerformAttack(LivingEntity target, double distance) { + if (this.isTimeToAttack()) { + this.resetAttackCooldown(); + RoyalMountEntity.this.startBite(); + } + } + + @Override + public boolean canUse() { + return !RoyalMountEntity.this.isBaby() && !RoyalMountEntity.this.isVehicle() && super.canUse(); + } + }); + this.goalSelector.addGoal(4, new RoyalMountFollowOwnerGoal(this)); + this.goalSelector.addGoal(6, new WaterAvoidingRandomStrollGoal(this, 0.8D) { + @Override + public boolean canUse() { + return !RoyalMountEntity.this.isBaby() && !RoyalMountEntity.this.isVehicle() + && !RoyalMountEntity.this.isOrderedToSit() && super.canUse(); + } + }); + this.goalSelector.addGoal(7, new LookAtPlayerGoal(this, Player.class, 12.0F)); + this.goalSelector.addGoal(8, new RandomLookAroundGoal(this) { + @Override + public boolean canUse() { + return !RoyalMountEntity.this.isBaby() && super.canUse(); + } + }); + this.targetSelector.addGoal(1, new OwnerHurtByTargetGoal(this) { + @Override + public boolean canUse() { + return !RoyalMountEntity.this.isBaby() && super.canUse(); + } + }); + this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this) { + @Override + public boolean canUse() { + return !RoyalMountEntity.this.isBaby() && super.canUse(); + } + }); + this.targetSelector.addGoal(3, new HurtByTargetGoal(this) { + @Override + public boolean canUse() { + return !RoyalMountEntity.this.isBaby() && super.canUse(); + } + }.setAlertOthers()); + } + + @Override + protected void defineSynchedData() { + super.defineSynchedData(); + this.entityData.define(ANIM_STATE, ANIM_IDLE); + this.entityData.define(FLYING, false); + this.entityData.define(SADDLED, false); + } + + @Override + public void addAdditionalSaveData(CompoundTag tag) { + super.addAdditionalSaveData(tag); + tag.putBoolean("Saddled", this.isSaddled()); + tag.putBoolean("Flying", this.isFlying()); + } + + @Override + public void readAdditionalSaveData(CompoundTag tag) { + super.readAdditionalSaveData(tag); + this.setSaddled(tag.getBoolean("Saddled")); + this.setFlying(tag.getBoolean("Flying")); + } + + public boolean isFlying() { + return this.entityData.get(FLYING); + } + + public void setFlying(boolean flying) { + if (this.entityData.get(FLYING) != flying) { + this.entityData.set(FLYING, flying); + this.moveControl = flying ? this.flyingMoveControl : this.groundMoveControl; + this.navigation = flying ? this.flyingNavigation : this.groundNavigation; + this.setNoGravity(flying); + if (flying && !this.level().isClientSide) { + this.playSound(this.flySound(), 1.0F, 1.0F + (this.random.nextFloat() - 0.5F) * 0.2F); + } + } + } + + public boolean isSaddled() { + return this.entityData.get(SADDLED); + } + + public void setSaddled(boolean saddled) { + this.entityData.set(SADDLED, saddled); + } + + public int getAnimState() { + return this.entityData.get(ANIM_STATE); + } + + private void setAnimState(int state) { + this.entityData.set(ANIM_STATE, state); + } + + public float getAgeScale() { + if (!this.isBaby()) { + return 1.0F; + } + float progress = 1.0F - Mth.clamp(-this.getAge() / (float) GROW_TICKS, 0.0F, 1.0F); + return 0.35F + 0.65F * progress; + } + + @Override + public boolean isFood(ItemStack stack) { + return stack.is(AntarchyTags.Items.ROYAL_MOUNT_FOOD); + } + + @Override + public InteractionResult mobInteract(Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + + if (this.isFood(stack)) { + if (!this.level().isClientSide) { + if (!player.getAbilities().instabuild) { + stack.shrink(1); + } + this.heal(8.0F); + if (this.isBaby()) { + this.ageUp((int) (-this.getAge() * 0.1F), true); + } + if (!this.isTame() && this.random.nextInt(3) == 0) { + this.tame(player); + this.level().broadcastEntityEvent(this, (byte) 7); + } else { + this.level().broadcastEntityEvent(this, (byte) 6); + } + } + return InteractionResult.sidedSuccess(this.level().isClientSide); + } + + if (this.isTame() && this.isOwnedBy(player)) { + if (!this.isSaddled() && stack.is(Items.SADDLE)) { + if (!this.level().isClientSide) { + this.setSaddled(true); + if (!player.getAbilities().instabuild) { + stack.shrink(1); + } + this.playSound(SoundEvents.HORSE_SADDLE, 1.0F, 1.0F); + } + return InteractionResult.sidedSuccess(this.level().isClientSide); + } + + if (stack.isEmpty() && player.isSecondaryUseActive()) { + if (this.isSaddled()) { + if (!this.level().isClientSide) { + this.setSaddled(false); + this.spawnAtLocation(new ItemStack(Items.SADDLE)); + } + } else if (!this.level().isClientSide) { + this.setOrderedToSit(!this.isOrderedToSit()); + this.setInSittingPose(this.isOrderedToSit()); + this.navigation.stop(); + this.setTarget(null); + } + return InteractionResult.sidedSuccess(this.level().isClientSide); + } + + if (stack.isEmpty() && !this.isBaby() && !player.isPassenger()) { + if (!this.level().isClientSide) { + this.setOrderedToSit(false); + this.setInSittingPose(false); + player.startRiding(this); + } + return InteractionResult.sidedSuccess(this.level().isClientSide); + } + } + + return super.mobInteract(player, hand); + } + + @Nullable + @Override + public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob other) { + return null; + } + + @Override + public boolean canMate(net.minecraft.world.entity.animal.Animal other) { + return false; + } + + @Override + public void tick() { + super.tick(); + + if (this.isBaby()) { + this.refreshDimensions(); + } + + if (this.level().isClientSide) { + return; + } + + if (this.spitCooldown > 0) { + this.spitCooldown--; + } + + if ((this.isFlying() || !this.onGround()) && --this.flapSoundTimer <= 0) { + this.flapSoundTimer = 24 + this.random.nextInt(12); + this.playSound(this.flySound(), 0.6F, 1.0F + (this.random.nextFloat() - 0.5F) * 0.3F); + } + + if (this.actionTicks > 0) { + this.actionTicks--; + if (!this.actionHit && this.actionTicks <= ACTION_TICKS - BITE_HIT_TICK + && (this.getAnimState() == ANIM_BITE || this.getAnimState() == ANIM_FLY_BITE)) { + this.actionHit = true; + this.applyBiteDamage(); + } + if (this.actionTicks == 0) { + this.updateAmbientAnimState(); + } + return; + } + + this.tickFlightState(); + this.updateAmbientAnimState(); + + if (this.quirkTimer > 0) { + this.quirkTimer--; + } + if (this.getAnimState() == ANIM_IDLE && this.quirkTimer == 0 && this.random.nextInt(600) == 0) { + this.quirkTimer = 80; + } + } + + private void tickFlightState() { + if (this.isVehicle()) { + return; + } + if (this.isFlying() && this.onGround() && this.getTarget() == null) { + this.setFlying(false); + } + } + + private void updateAmbientAnimState() { + if (this.actionTicks > 0) { + return; + } + if (this.isFlying() || !this.onGround()) { + this.setAnimState(ANIM_FLY); + return; + } + boolean moving; + if (this.getControllingPassenger() instanceof Player rider) { + moving = Math.abs(rider.zza) > 0.05F || Math.abs(rider.xxa) > 0.05F; + } else { + moving = this.getDeltaMovement().horizontalDistanceSqr() > 0.0025D; + } + this.setAnimState(moving ? ANIM_WALK : ANIM_IDLE); + } + + public void startBite() { + if (this.actionTicks > 0) { + return; + } + this.actionTicks = ACTION_TICKS; + this.actionHit = false; + this.setAnimState(this.isFlying() ? ANIM_FLY_BITE : ANIM_BITE); + this.triggerAnim("main", this.isFlying() ? "fly_bite" : "bite"); + this.playSound(this.biteSound(), 1.2F, 0.9F + this.random.nextFloat() * 0.2F); + } + + private void applyBiteDamage() { + LivingEntity target = this.getTarget(); + if (target == null && this.getControllingPassenger() instanceof Player) { + target = this.frontTarget(); + } + if (target != null && target.distanceTo(this) < 5.0D) { + target.hurt(this.damageSources().mobAttack(this), (float) this.getAttributeValue(Attributes.ATTACK_DAMAGE)); + } + } + + @Nullable + private LivingEntity frontTarget() { + Vec3 look = this.getLookAngle(); + Vec3 eye = this.getEyePosition(); + LivingEntity best = null; + double bestDot = 0.3D; + for (LivingEntity candidate : this.level().getEntitiesOfClass(LivingEntity.class, this.getBoundingBox().inflate(6.0D))) { + if (candidate == this || candidate == this.getControllingPassenger() || candidate == this.getOwner()) { + continue; + } + Vec3 to = candidate.getEyePosition().subtract(eye); + double dist = to.length(); + if (dist > 6.0D || dist < 1.0E-3D) { + continue; + } + double dot = to.scale(1.0D / dist).dot(look); + if (dot > bestDot) { + bestDot = dot; + best = candidate; + } + } + return best; + } + + public void startSpitVolley(@Nullable LivingEntity target) { + if (this.spitCooldown > 0 || this.level().isClientSide) { + return; + } + this.spitCooldown = 40; + this.actionTicks = ACTION_TICKS; + this.actionHit = true; + this.setAnimState(this.isFlying() ? ANIM_FLY_SHOOT : ANIM_SHOOT); + this.triggerAnim("main", this.isFlying() ? "fly_shoot" : "shoot"); + + Vec3 aim; + if (target != null) { + aim = target.getEyePosition().subtract(this.getEyePosition()).normalize(); + } else if (this.getControllingPassenger() instanceof Player rider) { + aim = rider.getLookAngle(); + } else { + aim = this.getLookAngle(); + } + + Vec3 right = new Vec3(-aim.z, 0.0D, aim.x).normalize(); + for (int i = -1; i <= 1; i++) { + Vec3 dir = aim.add(right.scale(i * 0.14D)).normalize(); + RoyalBoltEntity bolt = new RoyalBoltEntity(this.boltType(), this.level()); + bolt.setOwner(this); + bolt.setElement(this.boltElement(i)); + Vec3 spawn = this.getEyePosition().add(aim.scale(1.6D)).add(right.scale(i * 0.9D)); + bolt.setPos(spawn.x, spawn.y, spawn.z); + bolt.shoot(dir.x, dir.y, dir.z, 1.4F, 1.0F); + this.level().addFreshEntity(bolt); + } + this.playSound(this.shootSound(), 1.2F, 0.9F + this.random.nextFloat() * 0.2F); + } + + protected RoyalBeamElement boltElement(int lateralIndex) { + return RoyalBeamElement.GENERIC; + } + + public boolean toggleMountedFlight(ServerPlayer player) { + if (!this.canControl(player)) { + return false; + } + this.setFlying(!this.isFlying()); + if (this.isFlying()) { + this.setDeltaMovement(this.getDeltaMovement().add(0.0D, 0.4D, 0.0D)); + this.hasImpulse = true; + } + return true; + } + + public void handleMountedBite(ServerPlayer player) { + if (this.canControl(player)) { + this.startBite(); + } + } + + public void handleMountedSpit(ServerPlayer player) { + if (this.canControl(player)) { + this.startSpitVolley(null); + } + } + + public void setRiderAscend(boolean pressed) { + this.riderAscendPressed = pressed; + } + + public void setRiderDescend(boolean pressed) { + this.riderDescendPressed = pressed; + } + + private boolean canControl(ServerPlayer player) { + return this.isTame() && this.isOwnedBy(player) && this.getControllingPassenger() == player; + } + + @Nullable + @Override + public LivingEntity getControllingPassenger() { + return this.getFirstPassenger() instanceof Player player && this.isOwnedBy(player) ? player : null; + } + + @Override + public boolean canAddPassenger(Entity passenger) { + return this.getPassengers().isEmpty(); + } + + @Override + protected void positionRider(Entity passenger, MoveFunction moveFunction) { + if (!this.hasPassenger(passenger)) { + return; + } + double yOffset = (this.isFlying() ? 1.55D : 1.35D) * this.getAgeScale(); + Vec3 back = this.getLookAngle().scale(-0.35D * this.getAgeScale()); + moveFunction.accept(passenger, this.getX() + back.x, this.getY() + yOffset, this.getZ() + back.z); + } + + @Override + protected Vec3 getRiddenInput(Player rider, Vec3 travelVector) { + double vertical = 0.0D; + if (this.isFlying()) { + if (this.riderAscendPressed) { + vertical += 0.4D; + } + if (this.riderDescendPressed || rider.isSecondaryUseActive()) { + vertical -= 0.4D; + } + if (rider.zza > 0.0F) { + vertical -= Math.sin(Math.toRadians(rider.getXRot())) * 0.6D; + } + } + return new Vec3(rider.xxa * 0.35D, vertical, rider.zza); + } + + @Override + protected float getRiddenSpeed(Player rider) { + return (float) this.getAttributeValue(this.isFlying() ? Attributes.FLYING_SPEED : Attributes.MOVEMENT_SPEED) + * (this.isFlying() ? 0.4F : 1.0F); + } + + @Override + public void travel(Vec3 travelVector) { + if (!(this.getControllingPassenger() instanceof Player rider) || !this.isVehicle()) { + super.travel(travelVector); + return; + } + + this.setYRot(rider.getYRot()); + this.yBodyRot = this.getYRot(); + this.yHeadRot = this.getYRot(); + this.setXRot(rider.getXRot() * 0.5F); + + Vec3 input = this.getRiddenInput(rider, travelVector); + this.setSpeed(this.getRiddenSpeed(rider)); + + if (this.isFlying()) { + this.moveRelative(this.getSpeed(), new Vec3(input.x, 0.0D, input.z)); + Vec3 motion = this.getDeltaMovement(); + this.setDeltaMovement(motion.x, (motion.y + input.y) * 0.9D, motion.z); + this.move(MoverType.SELF, this.getDeltaMovement()); + this.setDeltaMovement(this.getDeltaMovement().scale(0.91D)); + this.fallDistance = 0.0F; + } else { + super.travel(new Vec3(input.x, travelVector.y, input.z)); + } + } + + @Override + public boolean causeFallDamage(float fallDistance, float multiplier, DamageSource source) { + return false; + } + + @Override + public float maxUpStep() { + return 1.5F; + } + + @Override + public boolean removeWhenFarAway(double distanceToClosestPlayer) { + return false; + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "main", 2, this::animController) + .triggerableAnim("bite", BITE_ANIM) + .triggerableAnim("fly_bite", FLY_BITE_ANIM) + .triggerableAnim("shoot", SHOOT_ANIM) + .triggerableAnim("fly_shoot", FLY_SHOOT_ANIM)); + } + + private PlayState animController(AnimationState state) { + return switch (this.getAnimState()) { + case ANIM_WALK -> state.setAndContinue(WALK_ANIM); + case ANIM_FLY, ANIM_FLY_BITE, ANIM_FLY_SHOOT -> state.setAndContinue(FLY_ANIM); + default -> state.setAndContinue(this.quirkTimer > 0 ? QUIRK_ANIM : IDLE_ANIM); + }; + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } + + public String geoNameForRender() { + return this.geoName(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalMountFollowOwnerGoal.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalMountFollowOwnerGoal.java new file mode 100644 index 00000000..b85c10b3 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalMountFollowOwnerGoal.java @@ -0,0 +1,84 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.ai.goal.Goal; +import net.minecraft.world.phys.Vec3; + +public class RoyalMountFollowOwnerGoal extends Goal { + private static final double START_DISTANCE = 12.0D; + private static final double STOP_DISTANCE = 6.0D; + private static final double TELEPORT_DISTANCE = 48.0D; + + private final RoyalMountEntity mount; + private LivingEntity owner; + private int recalcTimer; + + public RoyalMountFollowOwnerGoal(RoyalMountEntity mount) { + this.mount = mount; + } + + @Override + public boolean canUse() { + if (!this.mount.isTame() || this.mount.isVehicle() || this.mount.isOrderedToSit()) { + return false; + } + LivingEntity potentialOwner = this.mount.getOwner(); + if (potentialOwner == null || potentialOwner.isSpectator()) { + return false; + } + if (this.mount.distanceToSqr(potentialOwner) < START_DISTANCE * START_DISTANCE) { + return false; + } + this.owner = potentialOwner; + return true; + } + + @Override + public boolean canContinueToUse() { + return !this.mount.getNavigation().isDone() + && this.mount.distanceToSqr(this.owner) > STOP_DISTANCE * STOP_DISTANCE + && !this.mount.isOrderedToSit(); + } + + @Override + public void start() { + this.recalcTimer = 0; + } + + @Override + public void stop() { + this.owner = null; + this.mount.getNavigation().stop(); + this.mount.setFlying(false); + } + + @Override + public void tick() { + this.mount.getLookControl().setLookAt(this.owner, 10.0F, this.mount.getMaxHeadXRot()); + + double distanceSqr = this.mount.distanceToSqr(this.owner); + if (distanceSqr > TELEPORT_DISTANCE * TELEPORT_DISTANCE) { + this.mount.teleportTo(this.owner.getX(), this.owner.getY(), this.owner.getZ()); + return; + } + + boolean ownerAirborne = !this.owner.onGround() || (this.owner.getY() - this.mount.getY()) > 3.0D; + this.mount.setFlying(ownerAirborne || distanceSqr > 24.0D * 24.0D); + + if (--this.recalcTimer <= 0) { + this.recalcTimer = 10; + if (this.mount.isFlying()) { + Vec3 to = this.owner.position().subtract(this.mount.position()); + Vec3 step = this.mount.position().add(to.normalize().scale(Math.min(to.length(), 8.0D))); + this.mount.getMoveControl().setWantedPosition(step.x, step.y + 1.0D, step.z, 1.2D); + } else { + this.mount.getNavigation().moveTo(this.owner, 1.1D); + } + } + } + + @Override + public boolean requiresUpdateEveryTick() { + return true; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalMountSpitGoal.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalMountSpitGoal.java new file mode 100644 index 00000000..09358abb --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalMountSpitGoal.java @@ -0,0 +1,49 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.ai.goal.Goal; + +public class RoyalMountSpitGoal extends Goal { + private final RoyalMountEntity mount; + private int cooldown; + + public RoyalMountSpitGoal(RoyalMountEntity mount) { + this.mount = mount; + } + + @Override + public boolean canUse() { + if (this.mount.isBaby() || this.mount.isVehicle() || this.mount.isOrderedToSit()) { + return false; + } + LivingEntity target = this.mount.getTarget(); + if (target == null || !target.isAlive()) { + return false; + } + double distance = this.mount.distanceTo(target); + return distance > 5.0D && distance < 20.0D && this.mount.hasLineOfSight(target); + } + + @Override + public void start() { + this.cooldown = 20; + } + + @Override + public void tick() { + LivingEntity target = this.mount.getTarget(); + if (target == null) { + return; + } + this.mount.getLookControl().setLookAt(target, 30.0F, 30.0F); + if (this.cooldown-- <= 0) { + this.mount.startSpitVolley(target); + this.cooldown = 60; + } + } + + @Override + public boolean requiresUpdateEveryTick() { + return true; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalPunishmentType.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalPunishmentType.java new file mode 100644 index 00000000..58befce3 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalPunishmentType.java @@ -0,0 +1,30 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import java.util.Locale; + +public enum RoyalPunishmentType { + ROYAL_EXILE("royal_exile"), + ROYAL_TITHE("royal_tithe"), + KINGS_TARGET("kings_target"), + KINGS_SEAL("kings_seal"); + + private final String id; + + RoyalPunishmentType(String id) { + this.id = id; + } + + public String id() { + return this.id; + } + + public static RoyalPunishmentType fromId(String id) { + String normalized = id.toLowerCase(Locale.ROOT).replace('-', '_'); + for (RoyalPunishmentType type : values()) { + if (type.id.equals(normalized)) { + return type; + } + } + return null; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/attack/RoyalAttackLane.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/attack/RoyalAttackLane.java new file mode 100644 index 00000000..ef6a6143 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/attack/RoyalAttackLane.java @@ -0,0 +1,12 @@ +package com.craisinlord.antarchy.content.entity.royal.attack; + +public enum RoyalAttackLane { + BODY, + LEFT_HEAD, + CENTER_HEAD, + RIGHT_HEAD, + HAZARD, + SUMMON, + DECREE, + MOVEMENT +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/attack/RoyalAttackScheduler.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/attack/RoyalAttackScheduler.java new file mode 100644 index 00000000..dfa2d0ea --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/attack/RoyalAttackScheduler.java @@ -0,0 +1,123 @@ +package com.craisinlord.antarchy.content.entity.royal.attack; + +import java.util.ArrayDeque; +import java.util.Deque; +import java.util.EnumMap; +import java.util.HashMap; +import java.util.Map; +import java.util.function.ToIntFunction; +import net.minecraft.util.RandomSource; + +/** Shared server-side arbitration for Royal attack lifecycles. */ +public final class RoyalAttackScheduler { + public interface Action { + default void onStart() {} + default void onActive(int elapsedTicks) {} + default void onComplete() {} + } + + private static final class RunningAction { + private final Action action; + private final int windupTicks; + private final int activeTicks; + private final int recoveryTicks; + private int elapsedTicks; + + private RunningAction(Action action, int windupTicks, int activeTicks, int recoveryTicks) { + this.action = action; + this.windupTicks = Math.max(0, windupTicks); + this.activeTicks = Math.max(1, activeTicks); + this.recoveryTicks = Math.max(0, recoveryTicks); + } + + private int totalTicks() { + return this.windupTicks + this.activeTicks + this.recoveryTicks; + } + } + private final Map cooldowns = new HashMap<>(); + private final Map active = new EnumMap<>(RoyalAttackLane.class); + private final Deque recent = new ArrayDeque<>(); + + public void tick() { + cooldowns.replaceAll((key, value) -> Math.max(0, value - 1)); + for (var iterator = active.entrySet().iterator(); iterator.hasNext();) { + RunningAction running = iterator.next().getValue(); + running.elapsedTicks++; + int activeStart = running.windupTicks; + int activeEnd = activeStart + running.activeTicks; + if (running.elapsedTicks >= activeStart && running.elapsedTicks < activeEnd) { + running.action.onActive(running.elapsedTicks - activeStart); + } + if (running.elapsedTicks >= running.totalTicks()) { + iterator.remove(); + running.action.onComplete(); + } + } + } + + public boolean ready(String id, RoyalAttackLane lane) { + return cooldowns.getOrDefault(id, 0) <= 0 && !active.containsKey(lane); + } + + public boolean laneBusy(RoyalAttackLane lane) { + return active.containsKey(lane); + } + + public boolean start(String id, RoyalAttackLane lane, int cooldownTicks, int activeTicks) { + return start(id, lane, cooldownTicks, 0, activeTicks, 0, new Action() {}); + } + + public boolean start(String id, RoyalAttackLane lane, int cooldownTicks, int windupTicks, + int activeTicks, int recoveryTicks, Action action) { + if (!ready(id, lane)) { + return false; + } + cooldowns.put(id, Math.max(1, cooldownTicks)); + active.put(lane, new RunningAction(action, windupTicks, activeTicks, recoveryTicks)); + action.onStart(); + recent.remove(id); + recent.addFirst(id); + while (recent.size() > 8) { + recent.removeLast(); + } + return true; + } + + public int repetitionPenalty(String id) { + int penalty = 0; + for (String previous : recent) { + if (previous.equals(id)) { + penalty += 3; + } + } + return penalty; + } + + public String chooseWeighted(String[] ids, ToIntFunction weightFunction, RandomSource random) { + int total = 0; + int[] weights = new int[ids.length]; + for (int i = 0; i < ids.length; i++) { + weights[i] = Math.max(0, weightFunction.applyAsInt(ids[i]) - repetitionPenalty(ids[i])); + total += weights[i]; + } + if (total <= 0) { + return null; + } + int roll = random.nextInt(total); + for (int i = 0; i < ids.length; i++) { + roll -= weights[i]; + if (roll < 0) { + return ids[i]; + } + } + return null; + } + + public int cooldown(String id) { + return cooldowns.getOrDefault(id, 0); + } + + public void cancel(RoyalAttackLane lane) { + active.remove(lane); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/attack/RoyalEffectController.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/attack/RoyalEffectController.java new file mode 100644 index 00000000..f0da3ab0 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/attack/RoyalEffectController.java @@ -0,0 +1,54 @@ +package com.craisinlord.antarchy.content.entity.royal.attack; + +import java.util.HashMap; +import java.util.Map; + +/** Owns persistent per-tick effects started by a Royal attack. */ +public final class RoyalEffectController { + private record Effect(Runnable tick, Runnable end, int duration, int age) { + private Effect advance() { + return new Effect(this.tick, this.end, this.duration, this.age + 1); + } + } + + private final Map active = new HashMap<>(); + + public void tick() { + for (var iterator = this.active.entrySet().iterator(); iterator.hasNext();) { + var entry = iterator.next(); + Effect effect = entry.getValue(); + effect.tick().run(); + Effect next = effect.advance(); + if (next.age() >= next.duration()) { + next.end().run(); + iterator.remove(); + } else { + entry.setValue(next); + } + } + } + + public void start(String id, int duration, Runnable onStart, Runnable tick, Runnable end) { + this.stop(id); + onStart.run(); + this.active.put(id, new Effect(tick, end, Math.max(1, duration), 0)); + } + + public boolean active(String id) { + return this.active.containsKey(id); + } + + public void stop(String id) { + Effect effect = this.active.remove(id); + if (effect != null) { + effect.end().run(); + } + } + + public void clear() { + for (Effect effect : this.active.values()) { + effect.end().run(); + } + this.active.clear(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/beam/RoyalBeamController.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/beam/RoyalBeamController.java new file mode 100644 index 00000000..75fdfcfe --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/beam/RoyalBeamController.java @@ -0,0 +1,345 @@ +package com.craisinlord.antarchy.content.entity.royal.beam; + +import java.util.List; +import java.util.HashSet; +import java.util.Set; +import java.util.function.Consumer; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.tags.BlockTags; +import net.minecraft.util.Mth; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntitySelector; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.level.ClipContext; +import net.minecraft.world.level.GameRules; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; + +public final class RoyalBeamController { + private static final int INITIAL_TRACKING_DELAY_TICKS = 8; + private final Mob owner; + private Vec3 serverTarget; + private Vec3 beamEndPosition; + private int beamTicks; + private int beamAgeTicks; + private int trackingDelayTicks; + private int terrainMutationsThisTick; + private static final int ICE_MUTATIONS_PER_TICK = 3; + private static final float ICE_IMPACT_RADIUS = 2.0F; + + public RoyalBeamController(Mob owner) { + this.owner = owner; + } + + public boolean isFiring() { + return this.beamTicks > 0; + } + + public int beamTicks() { + return this.beamTicks; + } + + @Nullable + public Vec3 beamEndPosition() { + return this.beamEndPosition; + } + + public void start(Vec3 shootFrom, Vec3 target, int durationTicks) { + this.serverTarget = target; + this.beamEndPosition = target; + this.beamTicks = Math.max(1, durationTicks); + this.beamAgeTicks = 0; + this.trackingDelayTicks = INITIAL_TRACKING_DELAY_TICKS; + } + + public void stop() { + this.serverTarget = null; + this.beamEndPosition = null; + this.beamTicks = 0; + this.beamAgeTicks = 0; + } + + public void tick( + Vec3 shootFrom, + @Nullable LivingEntity target, + RoyalBeamSettings settings, + RoyalBeamTerrainMode terrainMode, + Consumer<@Nullable Vec3> syncedEndPosition + ) { + if (this.beamTicks <= 0) { + syncedEndPosition.accept(null); + return; + } + + this.beamTicks--; + this.beamAgeTicks++; + this.terrainMutationsThisTick = 0; + if (this.trackingDelayTicks > 0) { + this.trackingDelayTicks--; + } else if (target != null && target.isAlive()) { + Vec3 targetEye = target.getEyePosition(); + this.serverTarget = this.serverTarget == null + ? targetEye + : this.serverTarget.add(targetEye.subtract(this.serverTarget).scale(settings.targetTracking())); + } + if (this.serverTarget == null) { + this.stop(); + syncedEndPosition.accept(null); + return; + } + + Vec3 direction = this.serverTarget.subtract(shootFrom).normalize(); + if (direction.lengthSqr() < 1.0E-7D) { + direction = this.owner.getLookAngle(); + } + double committedDistance = Math.min(settings.range(), shootFrom.distanceTo(this.serverTarget)); + double travelProgress = Mth.clamp(this.beamAgeTicks / (double) settings.travelTicks(), 0.0D, 1.0D); + double currentRange = Math.max(settings.pathStep(), committedDistance * travelProgress); + Vec3 clipEnd = shootFrom.add(direction.scale(currentRange)); + HitResult hit = this.owner.level().clip(new ClipContext( + shootFrom, + clipEnd, + ClipContext.Block.COLLIDER, + ClipContext.Fluid.NONE, + this.owner + )); + this.beamEndPosition = hit.getLocation(); + syncedEndPosition.accept(this.beamEndPosition); + + if (!this.owner.level().isClientSide && this.beamEndPosition != null) { + boolean impactedBlock = hit.getType() == HitResult.Type.BLOCK; + marchDamageAndTerrain(shootFrom, this.beamEndPosition, settings, terrainMode, impactedBlock); + } + + if (this.beamTicks <= 0) { + this.stop(); + syncedEndPosition.accept(null); + } + } + + private void marchDamageAndTerrain( + Vec3 shootFrom, + Vec3 beamEnd, + RoyalBeamSettings settings, + RoyalBeamTerrainMode terrainMode, + boolean impactedBlock + ) { + Vec3 direction = beamEnd.subtract(shootFrom).normalize(); + double distance = shootFrom.distanceTo(beamEnd); + DamageSource damageSource = this.owner.damageSources().mobAttack(this.owner); + Set damagedThisTick = new HashSet<>(); + boolean pathMutates = terrainMode == RoyalBeamTerrainMode.DESTROY; + for (double walked = settings.pathStep(); walked < Math.min(distance, settings.range()); walked += settings.pathStep()) { + Vec3 sample = shootFrom.add(direction.scale(walked)); + hurtEntitiesAround(sample, settings.pathDamageRadius(), settings.damage(), settings.knockback(), damageSource, settings.requireLineOfSightForDamage(), damagedThisTick); + if (pathMutates && shouldMutateTerrain(settings, walked)) { + mutateTerrainAround(sample, settings.pathTerrainRadius(), settings, terrainMode); + } + } + + hurtEntitiesAround(beamEnd, settings.impactDamageRadius(), settings.damage(), settings.knockback(), damageSource, settings.requireLineOfSightForDamage(), damagedThisTick); + + if (!shouldMutateTerrain(settings, distance)) { + return; + } + if (terrainMode == RoyalBeamTerrainMode.BUILD_ICE) { + if (impactedBlock) { + mutateTerrainAround(beamEnd, ICE_IMPACT_RADIUS, settings, terrainMode); + } + } else { + mutateTerrainAround(beamEnd, settings.impactTerrainRadius(), settings, terrainMode); + } + } + + private boolean shouldMutateTerrain(RoyalBeamSettings settings, double distanceFromOwner) { + return settings.terrainEnabled() + && settings.maxTerrainMutationsPerTick() > 0 + && this.beamTicks % settings.terrainIntervalTicks() == 0 + && distanceFromOwner <= settings.maxTerrainDistance() + && this.owner.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING); + } + + private boolean hurtEntitiesAround( + Vec3 center, + float radius, + float damageAmount, + float knockbackAmount, + DamageSource damageSource, + boolean requireLineOfSight, + Set damagedThisTick + ) { + if (radius <= 0.0F || damageAmount <= 0.0F) { + return false; + } + + AABB aabb = new AABB(center.subtract(radius, radius, radius), center.add(radius, radius, radius)); + List entities = this.owner.level().getEntitiesOfClass( + LivingEntity.class, + aabb, + EntitySelector.NO_CREATIVE_OR_SPECTATOR + ); + boolean hurtAny = false; + for (LivingEntity living : entities) { + if (living.is(this.owner) + || this.owner.isAlliedTo(living) + || living.getType() == this.owner.getType() + || living.distanceToSqr(center) > radius * radius + || damagedThisTick.contains(living.getId()) + || requireLineOfSight && !canEntityBeHurtFrom(center, living)) { + continue; + } + if (living.hurt(damageSource, damageAmount)) { + damagedThisTick.add(living.getId()); + hurtAny = true; + knockbackTarget(living, knockbackAmount); + } + } + return hurtAny; + } + + private boolean canEntityBeHurtFrom(Vec3 center, LivingEntity living) { + Vec3 targetCenter = living.position().add(0.0D, living.getBbHeight() * 0.5D, 0.0D); + return this.owner.level().clip(new ClipContext( + center, + targetCenter, + ClipContext.Block.COLLIDER, + ClipContext.Fluid.NONE, + this.owner + )).getType() == HitResult.Type.MISS; + } + + private void knockbackTarget(Entity target, double strength) { + if (strength <= 0.0D) { + return; + } + + double resistance = target instanceof LivingEntity living + ? living.getAttributeValue(Attributes.KNOCKBACK_RESISTANCE) + : 0.0D; + double appliedStrength = strength * Math.max(0.0D, 1.0D - resistance); + if (appliedStrength <= 0.0D) { + return; + } + + Vec3 push = target.position().subtract(this.owner.position()).multiply(1.0D, 0.0D, 1.0D).normalize().scale(appliedStrength); + Vec3 movement = target.getDeltaMovement(); + target.setDeltaMovement( + movement.x * 0.5D + push.x, + Math.min(0.4D, movement.y * 0.5D + appliedStrength), + movement.z * 0.5D + push.z + ); + target.hasImpulse = true; + } + + private void mutateTerrainAround( + Vec3 center, + float radius, + RoyalBeamSettings settings, + RoyalBeamTerrainMode terrainMode + ) { + if (terrainMode == RoyalBeamTerrainMode.NONE || radius <= 0.0F) { + return; + } + + Level level = this.owner.level(); + int minX = Mth.floor(center.x - radius); + int minY = Mth.floor(center.y - radius); + int minZ = Mth.floor(center.z - radius); + int maxX = Mth.floor(center.x + radius); + int maxY = Mth.floor(center.y + radius); + int maxZ = Mth.floor(center.z + radius); + float radiusSqr = radius * radius; + + int cap = terrainMode == RoyalBeamTerrainMode.BUILD_ICE + ? Math.min(ICE_MUTATIONS_PER_TICK, settings.maxTerrainMutationsPerTick()) + : settings.maxTerrainMutationsPerTick(); + for (BlockPos cursor : BlockPos.betweenClosed(minX, minY, minZ, maxX, maxY, maxZ)) { + if (this.terrainMutationsThisTick >= cap) { + return; + } + BlockPos pos = cursor.immutable(); + if (pos.distToCenterSqr(center.x, center.y, center.z) > radiusSqr + || this.owner.getRandom().nextFloat() > settings.terrainMutationChance() + || pos.getY() < level.getMinBuildHeight() + || pos.getY() >= level.getMaxBuildHeight() + || !level.getWorldBorder().isWithinBounds(pos)) { + continue; + } + + BlockState existing = level.getBlockState(pos); + if (terrainMode == RoyalBeamTerrainMode.DESTROY) { + destroyBeamBlock(level, pos, existing, settings); + } else if (terrainMode == RoyalBeamTerrainMode.BUILD_ICE) { + buildIceBlock(level, pos, existing, settings); + } + } + } + + private void destroyBeamBlock(Level level, BlockPos pos, BlockState existing, RoyalBeamSettings settings) { + if (existing.isAir() + || level.getBlockEntity(pos) != null + || existing.getDestroySpeed(level, pos) < 0.0F + || existing.getBlock().getExplosionResistance() > settings.maxTerrainResistance() + || existing.getCollisionShape(level, pos).isEmpty()) { + return; + } + + if (this.owner.getRandom().nextFloat() <= settings.terrainDropChance()) { + level.destroyBlock(pos, true, this.owner); + } else { + level.levelEvent(2001, pos, Block.getId(existing)); + level.setBlockAndUpdate(pos, Blocks.AIR.defaultBlockState()); + } + this.terrainMutationsThisTick++; + } + + private void buildIceBlock(Level level, BlockPos pos, BlockState existing, RoyalBeamSettings settings) { + boolean replaceable = existing.isAir() + || existing.canBeReplaced() + || !existing.getFluidState().isEmpty(); + if (!replaceable || level.getBlockEntity(pos) != null || existing.is(BlockTags.ICE)) { + return; + } + if (!touchesFreezableSurface(level, pos)) { + return; + } + + level.levelEvent(2001, pos, Block.getId(existing)); + level.setBlock(pos, randomIceBlock().defaultBlockState(), Block.UPDATE_ALL); + this.terrainMutationsThisTick++; + } + + private static boolean touchesFreezableSurface(Level level, BlockPos pos) { + for (Direction direction : Direction.values()) { + BlockPos neighbor = pos.relative(direction); + BlockState state = level.getBlockState(neighbor); + if (state.is(BlockTags.ICE) || state.is(Blocks.SNOW_BLOCK)) { + continue; + } + if (state.isFaceSturdy(level, neighbor, direction.getOpposite())) { + return true; + } + } + return false; + } + + private Block randomIceBlock() { + return switch (this.owner.getRandom().nextInt(5)) { + case 0 -> Blocks.BLUE_ICE; + case 1 -> Blocks.PACKED_ICE; + case 2 -> Blocks.FROSTED_ICE; + case 3 -> Blocks.SNOW_BLOCK; + default -> Blocks.ICE; + }; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/beam/RoyalBeamElement.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/beam/RoyalBeamElement.java new file mode 100644 index 00000000..3706166d --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/beam/RoyalBeamElement.java @@ -0,0 +1,8 @@ +package com.craisinlord.antarchy.content.entity.royal.beam; + +public enum RoyalBeamElement { + GENERIC, + FIRE, + LIGHTNING, + ICE +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/beam/RoyalBeamSettings.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/beam/RoyalBeamSettings.java new file mode 100644 index 00000000..13f304a2 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/beam/RoyalBeamSettings.java @@ -0,0 +1,70 @@ +package com.craisinlord.antarchy.content.entity.royal.beam; + +public record RoyalBeamSettings( + double range, + double targetTracking, + double pathStep, + int durationTicks, + int travelTicks, + int cooldownTicks, + float pathDamageRadius, + float impactDamageRadius, + float damage, + float knockback, + int terrainIntervalTicks, + double maxTerrainDistance, + float pathTerrainRadius, + float impactTerrainRadius, + int maxTerrainMutationsPerTick, + float terrainMutationChance, + float terrainDropChance, + float maxTerrainResistance, + boolean terrainEnabled, + boolean requireLineOfSightForDamage +) { + public static RoyalBeamSettings tremorzillaLike(float damage, boolean terrainEnabled) { + return new RoyalBeamSettings( + 100.0D, + 0.1D, + 7.5D, + 30, + 12, + 90, + 6.0F, + 6.0F, + damage, + 1.0F, + 3, + 100.0D, + 5.0F, + 4.0F, + 192, + 1.0F, + 0.08F, + 15.0F, + terrainEnabled, + true + ); + } + + public RoyalBeamSettings { + range = Math.max(1.0D, range); + targetTracking = net.minecraft.util.Mth.clamp(targetTracking, 0.0D, 1.0D); + pathStep = Math.max(1.0D, pathStep); + durationTicks = Math.max(1, durationTicks); + travelTicks = Math.max(1, travelTicks); + cooldownTicks = Math.max(1, cooldownTicks); + pathDamageRadius = Math.max(0.0F, pathDamageRadius); + impactDamageRadius = Math.max(0.0F, impactDamageRadius); + damage = Math.max(0.0F, damage); + knockback = Math.max(0.0F, knockback); + terrainIntervalTicks = Math.max(1, terrainIntervalTicks); + maxTerrainDistance = Math.max(0.0D, maxTerrainDistance); + pathTerrainRadius = Math.max(0.0F, pathTerrainRadius); + impactTerrainRadius = Math.max(0.0F, impactTerrainRadius); + maxTerrainMutationsPerTick = Math.max(0, maxTerrainMutationsPerTick); + terrainMutationChance = net.minecraft.util.Mth.clamp(terrainMutationChance, 0.0F, 1.0F); + terrainDropChance = net.minecraft.util.Mth.clamp(terrainDropChance, 0.0F, 1.0F); + maxTerrainResistance = Math.max(0.0F, maxTerrainResistance); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/beam/RoyalBeamTerrainMode.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/beam/RoyalBeamTerrainMode.java new file mode 100644 index 00000000..4d848e8a --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/beam/RoyalBeamTerrainMode.java @@ -0,0 +1,7 @@ +package com.craisinlord.antarchy.content.entity.royal.beam; + +public enum RoyalBeamTerrainMode { + NONE, + DESTROY, + BUILD_ICE +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/AdvanceDecree.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/AdvanceDecree.java new file mode 100644 index 00000000..f28bf41a --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/AdvanceDecree.java @@ -0,0 +1,16 @@ +package com.craisinlord.antarchy.content.entity.royal.decree; +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.LivingEntity; +public final class AdvanceDecree implements RoyalDecree { + private static final double REQUIRED_RANGE = 14.0D; + public String translationKey() { return "decree.antarchy.advance"; } + public void apply(ServerLevel level, KingEntity king, LivingEntity target) { king.setDecreeRetreatPressure(true); } + @Override public Evaluation evaluate(ServerLevel level, KingEntity king, LivingEntity target) { + return target.distanceTo(king) > REQUIRED_RANGE ? Evaluation.VIOLATED : Evaluation.COMPLIANT; + } + @Override + public int contextWeight(KingEntity king, LivingEntity target) { + return 4 + king.behaviorScore(KingEntity.Behavior.KEEPING_FAR); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/CloseQuartersDecree.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/CloseQuartersDecree.java new file mode 100644 index 00000000..7c0f6d19 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/CloseQuartersDecree.java @@ -0,0 +1,12 @@ +package com.craisinlord.antarchy.content.entity.royal.decree; +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.LivingEntity; +public final class CloseQuartersDecree implements RoyalDecree { + public String translationKey() { return "decree.antarchy.close_quarters"; } + public void apply(ServerLevel level, KingEntity king, LivingEntity target) { } + @Override + public int contextWeight(KingEntity king, LivingEntity target) { + return 4 + king.behaviorScore(KingEntity.Behavior.RANGED); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/ComeNoCloserDecree.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/ComeNoCloserDecree.java new file mode 100644 index 00000000..f98e4ef9 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/ComeNoCloserDecree.java @@ -0,0 +1,15 @@ +package com.craisinlord.antarchy.content.entity.royal.decree; +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.LivingEntity; +public final class ComeNoCloserDecree implements RoyalDecree { + public String translationKey() { return "decree.antarchy.come_no_closer"; } + public void apply(ServerLevel level, KingEntity king, LivingEntity target) { } + @Override public Evaluation evaluate(ServerLevel level, KingEntity king, LivingEntity target) { + return target.distanceTo(king) <= 16.0D ? Evaluation.VIOLATED : Evaluation.COMPLIANT; + } + @Override + public int contextWeight(KingEntity king, LivingEntity target) { + return 4 + king.behaviorScore(KingEntity.Behavior.HUGGING); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/DoNotRunDecree.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/DoNotRunDecree.java new file mode 100644 index 00000000..7940b4a4 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/DoNotRunDecree.java @@ -0,0 +1,15 @@ +package com.craisinlord.antarchy.content.entity.royal.decree; +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.LivingEntity; +public final class DoNotRunDecree implements RoyalDecree { + public String translationKey() { return "decree.antarchy.do_not_run"; } + public void apply(ServerLevel level, KingEntity king, LivingEntity target) { } + @Override public Evaluation evaluate(ServerLevel level, KingEntity king, LivingEntity target) { + return target.isSprinting() ? Evaluation.VIOLATED : Evaluation.COMPLIANT; + } + @Override + public int contextWeight(KingEntity king, LivingEntity target) { + return 4 + king.behaviorScore(KingEntity.Behavior.SPRINTING); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/FightMeCowardDecree.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/FightMeCowardDecree.java new file mode 100644 index 00000000..d541f8b7 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/FightMeCowardDecree.java @@ -0,0 +1,20 @@ +package com.craisinlord.antarchy.content.entity.royal.decree; +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.phys.Vec3; +public final class FightMeCowardDecree implements RoyalDecree { + public String name() { return "FIGHT ME, COWARD!"; } + public String translationKey() { return "decree.antarchy.fight_me_coward"; } + public void apply(ServerLevel level, KingEntity king, LivingEntity target) { + if (target.distanceTo(king) > 28.0D) { + Vec3 pull = king.position().subtract(target.position()).normalize().scale(0.35D); + target.setDeltaMovement(target.getDeltaMovement().add(pull.x, 0.05D, pull.z)); + target.hasImpulse = true; + } + } + @Override + public Evaluation evaluate(ServerLevel level, KingEntity king, LivingEntity target) { + return target.distanceTo(king) > 28.0D ? Evaluation.VIOLATED : Evaluation.COMPLIANT; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/HandsOffTheCrownDecree.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/HandsOffTheCrownDecree.java new file mode 100644 index 00000000..7b5e9f9d --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/HandsOffTheCrownDecree.java @@ -0,0 +1,8 @@ +package com.craisinlord.antarchy.content.entity.royal.decree; +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.LivingEntity; +public final class HandsOffTheCrownDecree implements RoyalDecree { + public String translationKey() { return "decree.antarchy.hands_off_the_crown"; } + public void apply(ServerLevel level, KingEntity king, LivingEntity target) { } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/KeepYourDistanceDecree.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/KeepYourDistanceDecree.java new file mode 100644 index 00000000..cc876daa --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/KeepYourDistanceDecree.java @@ -0,0 +1,16 @@ +package com.craisinlord.antarchy.content.entity.royal.decree; +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.LivingEntity; +public final class KeepYourDistanceDecree implements RoyalDecree { + private static final double INNER_RADIUS = 16.0D; + public String translationKey() { return "decree.antarchy.keep_your_distance"; } + public void apply(ServerLevel level, KingEntity king, LivingEntity target) { } + @Override public Evaluation evaluate(ServerLevel level, KingEntity king, LivingEntity target) { + return target.distanceTo(king) <= INNER_RADIUS ? Evaluation.VIOLATED : Evaluation.COMPLIANT; + } + @Override + public int contextWeight(KingEntity king, LivingEntity target) { + return 4 + king.behaviorScore(KingEntity.Behavior.HUGGING); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/KneelDecree.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/KneelDecree.java new file mode 100644 index 00000000..2f817a00 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/KneelDecree.java @@ -0,0 +1,22 @@ +package com.craisinlord.antarchy.content.entity.royal.decree; +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.LivingEntity; +public final class KneelDecree implements RoyalDecree { + private final Map deadlines = new HashMap<>(); + public String translationKey() { return "decree.antarchy.kneel"; } + public void apply(ServerLevel level, KingEntity king, LivingEntity target) { + UUID id = target.getUUID(); + if (target.isCrouching()) { deadlines.remove(id); king.clearActiveDecree(target); return; } + int deadline = deadlines.computeIfAbsent(id, ignored -> target.tickCount + 100); + if (target.tickCount >= deadline) { king.failActiveDecree(target); } + } + + @Override + public int countdownTicks(LivingEntity target) { + return this.deadlines.getOrDefault(target.getUUID(), target.tickCount + 100) - target.tickCount; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/NoRespiteDecree.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/NoRespiteDecree.java new file mode 100644 index 00000000..0b3e9610 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/NoRespiteDecree.java @@ -0,0 +1,8 @@ +package com.craisinlord.antarchy.content.entity.royal.decree; +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.LivingEntity; +public final class NoRespiteDecree implements RoyalDecree { + public String translationKey() { return "decree.antarchy.no_respite"; } + public void apply(ServerLevel level, KingEntity king, LivingEntity target) { } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/NoRetreatDecree.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/NoRetreatDecree.java new file mode 100644 index 00000000..53a8ed1f --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/NoRetreatDecree.java @@ -0,0 +1,17 @@ +package com.craisinlord.antarchy.content.entity.royal.decree; +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.LivingEntity; +public final class NoRetreatDecree implements RoyalDecree { + private static final double ALLOWED_RANGE = 26.0D; + public String translationKey() { return "decree.antarchy.no_retreat"; } + public void apply(ServerLevel level, KingEntity king, LivingEntity target) { + if (target.distanceTo(king) > ALLOWED_RANGE) { + king.invokeJudgment(target); + } + } + @Override + public int contextWeight(KingEntity king, LivingEntity target) { + return 4 + king.behaviorScore(KingEntity.Behavior.RETREATING); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/RoyalDecree.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/RoyalDecree.java new file mode 100644 index 00000000..b75a43c1 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/RoyalDecree.java @@ -0,0 +1,35 @@ +package com.craisinlord.antarchy.content.entity.royal.decree; + +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.LivingEntity; + +public interface RoyalDecree { + enum Evaluation { + COMPLIANT, + VIOLATED, + COMPLETE + } + + String translationKey(); + void apply(ServerLevel level, KingEntity king, LivingEntity target); + + default Evaluation evaluate(ServerLevel level, KingEntity king, LivingEntity target) { + return Evaluation.COMPLIANT; + } + + default int countdownTicks(LivingEntity target) { + return -1; + } + + default String instructionKey() { + return this.translationKey() + ".subtitle"; + } + + default int contextWeight(KingEntity king, LivingEntity target) { + return 4; + } + + default void onEnded() { + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/ShowNoMercyDecree.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/ShowNoMercyDecree.java new file mode 100644 index 00000000..3f57deb0 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/ShowNoMercyDecree.java @@ -0,0 +1,14 @@ +package com.craisinlord.antarchy.content.entity.royal.decree; +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.LivingEntity; +public final class ShowNoMercyDecree implements RoyalDecree { + private static final long IDLE_DAMAGE_LIMIT_TICKS = 80L; + public String translationKey() { return "decree.antarchy.show_no_mercy"; } + public void apply(ServerLevel level, KingEntity king, LivingEntity target) { + } + @Override public Evaluation evaluate(ServerLevel level, KingEntity king, LivingEntity target) { + return king.ticksSincePlayerDamage(target) > IDLE_DAMAGE_LIMIT_TICKS + ? Evaluation.VIOLATED : Evaluation.COMPLIANT; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/SkyIsMineDecree.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/SkyIsMineDecree.java new file mode 100644 index 00000000..0fda8b16 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/SkyIsMineDecree.java @@ -0,0 +1,15 @@ +package com.craisinlord.antarchy.content.entity.royal.decree; +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.LivingEntity; +public final class SkyIsMineDecree implements RoyalDecree { + public String translationKey() { return "decree.antarchy.the_sky_is_mine"; } + public void apply(ServerLevel level, KingEntity king, LivingEntity target) { } + @Override public Evaluation evaluate(ServerLevel level, KingEntity king, LivingEntity target) { + return !target.onGround() && !target.isPassenger() ? Evaluation.VIOLATED : Evaluation.COMPLIANT; + } + @Override + public int contextWeight(KingEntity king, LivingEntity target) { + return 4 + king.behaviorScore(KingEntity.Behavior.AIRBORNE); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/StandTallDecree.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/StandTallDecree.java new file mode 100644 index 00000000..823394ff --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/StandTallDecree.java @@ -0,0 +1,12 @@ +package com.craisinlord.antarchy.content.entity.royal.decree; +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.LivingEntity; +public final class StandTallDecree implements RoyalDecree { + public String translationKey() { return "decree.antarchy.stand_tall"; } + public void apply(ServerLevel level, KingEntity king, LivingEntity target) { + } + @Override public Evaluation evaluate(ServerLevel level, KingEntity king, LivingEntity target) { + return target.isCrouching() ? Evaluation.VIOLATED : Evaluation.COMPLIANT; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/StandYourGroundDecree.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/StandYourGroundDecree.java new file mode 100644 index 00000000..622ff408 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/StandYourGroundDecree.java @@ -0,0 +1,25 @@ +package com.craisinlord.antarchy.content.entity.royal.decree; +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.phys.Vec3; +public final class StandYourGroundDecree implements RoyalDecree { + private static final double ALLOWED_DRIFT = 6.0D; + private final Map anchors = new HashMap<>(); + public String translationKey() { return "decree.antarchy.stand_your_ground"; } + public void apply(ServerLevel level, KingEntity king, LivingEntity target) { + Vec3 anchor = this.anchors.computeIfAbsent(target.getUUID(), ignored -> target.position()); + } + @Override public Evaluation evaluate(ServerLevel level, KingEntity king, LivingEntity target) { + Vec3 anchor = this.anchors.computeIfAbsent(target.getUUID(), ignored -> target.position()); + return target.position().distanceToSqr(anchor) > ALLOWED_DRIFT * ALLOWED_DRIFT + ? Evaluation.VIOLATED : Evaluation.COMPLIANT; + } + @Override + public void onEnded() { + this.anchors.clear(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/vortex/VortexChargeProjectileEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/vortex/VortexChargeProjectileEntity.java new file mode 100644 index 00000000..968ea92c --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/vortex/VortexChargeProjectileEntity.java @@ -0,0 +1,68 @@ +package com.craisinlord.antarchy.content.entity.vortex; + +import net.minecraft.server.level.ServerLevel; +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.projectile.ThrowableItemProjectile; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; + +import java.util.function.Supplier; + +public class VortexChargeProjectileEntity extends ThrowableItemProjectile { + public static Supplier defaultItemSupplier; + public static Supplier> projectileTypeSupplier; + public static Supplier> windVortexTypeSupplier; + + public VortexChargeProjectileEntity(EntityType entityType, Level level) { + super(entityType, level); + } + + public VortexChargeProjectileEntity(EntityType entityType, + LivingEntity thrower, Level level) { + super(entityType, thrower, level); + } + + public VortexChargeProjectileEntity(Level level, double x, double y, double z) { + super(projectileTypeSupplier.get(), x, y, z, level); + } + + protected double getDefaultGravity() { + return 0.03D; + } + + @Override + protected Item getDefaultItem() { + return defaultItemSupplier != null ? defaultItemSupplier.get() : Items.SNOWBALL; + } + + @Override + protected void onHit(HitResult hitResult) { + super.onHit(hitResult); + + if (this.level() instanceof ServerLevel serverLevel && windVortexTypeSupplier != null) { + Vec3 position = hitResult.getLocation(); + WindVortexEntity vortex = WindVortexEntity.create( + serverLevel, + windVortexTypeSupplier.get(), + position, + this.getDeltaMovement().normalize().scale(0.035D), + null, + false + ); + serverLevel.addFreshEntity(vortex); + serverLevel.playSound(null, position.x, position.y, position.z, + SoundEvents.GENERIC_EXPLODE, SoundSource.PLAYERS, 0.9F, 1.0F); + } + + if (!this.level().isClientSide) { + this.level().broadcastEntityEvent(this, (byte) 3); + this.discard(); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/vortex/VortexEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/vortex/VortexEntity.java new file mode 100644 index 00000000..56c55950 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/vortex/VortexEntity.java @@ -0,0 +1,431 @@ +package com.craisinlord.antarchy.content.entity.vortex; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisUndersideManager; +import net.minecraft.core.BlockPos; +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.server.level.ServerLevel; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; +import net.minecraft.world.Difficulty; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.MobSpawnType; +import net.minecraft.world.entity.MoverType; +import net.minecraft.world.entity.SpawnGroupData; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.ai.control.FlyingMoveControl; +import net.minecraft.world.entity.ai.goal.Goal; +import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal; +import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal; +import net.minecraft.world.entity.ai.navigation.FlyingPathNavigation; +import net.minecraft.world.entity.ai.navigation.PathNavigation; +import net.minecraft.world.entity.ai.util.HoverRandomPos; +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.ServerLevelAccessor; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.animatable.GeoEntity; +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.AnimationState; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.core.animation.RawAnimation; +import software.bernie.geckolib.util.GeckoLibUtil; + +import java.util.EnumSet; +import java.util.function.Supplier; + +public class VortexEntity extends Monster implements GeoEntity { + private static final EntityDataAccessor ANIMATION_STATE = + SynchedEntityData.defineId(VortexEntity.class, EntityDataSerializers.INT); + + private static final int ANIM_IDLE = 0; + private static final int ANIM_FLY = 1; + private static final int ANIM_ATTACK = 2; + private static final int ANIM_DEATH = 3; + + private static final String ATTACK_COOLDOWN_KEY = "AttackCooldown"; + private static final String ATTACK_TICKS_KEY = "AttackTicks"; + + private static final int ATTACK_WINDUP_TICKS = 18; + private static final int ATTACK_RECOVERY_TICKS = 12; + private static final int ATTACK_COOLDOWN_TICKS = 70; + private static final int DEATH_TICKS = 15; + private static final double ATTACK_RANGE = 14.0D; + + private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("idle"); + private static final RawAnimation FLY_ANIM = RawAnimation.begin().thenLoop("walk"); + private static final RawAnimation ATTACK_ANIM = RawAnimation.begin().thenPlay("wind_gust"); + private static final RawAnimation DEATH_ANIM = RawAnimation.begin().thenPlay("death"); + + public static Supplier> windVortexTypeSupplier; + + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + private int attackCooldown; + private int attackTicks; + private boolean spawnedAttackVortex; + + public VortexEntity(EntityType entityType, Level level) { + super(entityType, level); + this.moveControl = new FlyingMoveControl(this, 2, true); + this.xpReward = 10; + } + + public static AttributeSupplier.Builder createAttributes() { + return Mob.createMobAttributes() + .add(Attributes.MAX_HEALTH, AntarchySettings.vortexHealth()) + .add(Attributes.ATTACK_DAMAGE, AntarchySettings.vortexAttackDamage()) + .add(Attributes.MOVEMENT_SPEED, AntarchySettings.vortexMovementSpeed()) + .add(Attributes.FLYING_SPEED, AntarchySettings.vortexFlyingSpeed()) + .add(Attributes.FOLLOW_RANGE, 40.0D) + .add(Attributes.KNOCKBACK_RESISTANCE, 0.45D); + } + + public static boolean canSpawn(EntityType entityType, ServerLevelAccessor level, + MobSpawnType spawnReason, BlockPos pos, RandomSource random) { + if (pos.getY() < ThoraxisUndersideManager.GRAVITY_FLIP_Y && ThoraxisUndersideManager.isThoraxis(level.getLevel())) { + return false; + } + return level.getDifficulty() != Difficulty.PEACEFUL + && level.isEmptyBlock(pos) + && level.isEmptyBlock(pos.above()) + && level.isEmptyBlock(pos.above(2)); + } + + @Override + public SpawnGroupData finalizeSpawn(ServerLevelAccessor level, net.minecraft.world.DifficultyInstance difficulty, + MobSpawnType spawnReason, SpawnGroupData spawnData, @org.jetbrains.annotations.Nullable CompoundTag dataTag) { + com.craisinlord.antarchy.content.entity.ConfiguredMobSpawnUtil.applyConfiguredHealth(this, AntarchySettings.vortexHealth()); + return super.finalizeSpawn(level, difficulty, spawnReason, spawnData, dataTag); + } + + @Override + protected void defineSynchedData() { + super.defineSynchedData(); + this.entityData.define(ANIMATION_STATE, ANIM_IDLE); + } + + @Override + protected void registerGoals() { + this.goalSelector.addGoal(1, new VortexPatrolGoal()); + this.targetSelector.addGoal(1, new HurtByTargetGoal(this).setAlertOthers()); + this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, 20, true, false, this::canTargetEntity)); + } + + @Override + protected PathNavigation createNavigation(Level level) { + FlyingPathNavigation nav = new FlyingPathNavigation(this, level); + nav.setCanOpenDoors(false); + nav.setCanFloat(true); + nav.setCanPassDoors(true); + return nav; + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "main_controller", 0, this::mainAnimController) + .triggerableAnim("attack", ATTACK_ANIM) + .triggerableAnim("death", DEATH_ANIM)); + } + + private PlayState mainAnimController(AnimationState state) { + return switch (this.getAnimationState()) { + case ANIM_FLY -> state.setAndContinue(FLY_ANIM); + case ANIM_ATTACK -> state.setAndContinue(ATTACK_ANIM); + case ANIM_DEATH -> state.setAndContinue(DEATH_ANIM); + default -> state.setAndContinue(IDLE_ANIM); + }; + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } + + @Override + public void tick() { + super.tick(); + this.setNoGravity(true); + + if (this.level().isClientSide) { + return; + } + + if (this.isDeadOrDying()) { + this.updateAnimationState(); + return; + } + + if (this.attackCooldown > 0) { + this.attackCooldown--; + } + + LivingEntity target = this.getTarget(); + if (this.attackTicks > 0) { + this.tickAttack(target); + this.updateAnimationState(); + return; + } + + if (target != null && this.canTargetEntity(target)) { + this.tickCombatMovement(target); + } + + this.updateAnimationState(); + } + + @Override + public void travel(Vec3 travelVector) { + if (this.isEffectiveAi() || this.isNoGravity()) { + this.moveRelative(this.getSpeed(), travelVector); + this.move(MoverType.SELF, this.getDeltaMovement()); + this.setDeltaMovement(this.getDeltaMovement().scale(0.91D)); + return; + } + super.travel(travelVector); + } + + private void tickCombatMovement(LivingEntity target) { + this.faceTowards(target.position().add(0.0D, target.getBbHeight() * 0.5D, 0.0D), 12.0F, 8.0F); + this.getMoveControl().setWantedPosition(target.getX(), target.getY() + 2.5D, target.getZ(), 0.38D); + + if (this.attackCooldown <= 0 + && this.distanceToSqr(target) <= ATTACK_RANGE * ATTACK_RANGE + && this.hasLineOfSight(target) + && this.countOwnedActiveVortexes() < AntarchySettings.vortexMaxActiveVortexes()) { + this.startAttack(); + } + } + + private void startAttack() { + this.attackTicks = ATTACK_WINDUP_TICKS + ATTACK_RECOVERY_TICKS; + this.spawnedAttackVortex = false; + this.attackCooldown = ATTACK_COOLDOWN_TICKS; + this.getNavigation().stop(); + } + + private void tickAttack(@Nullable LivingEntity target) { + this.getNavigation().stop(); + this.setDeltaMovement(this.getDeltaMovement().scale(0.84D)); + + if (target == null || !this.canTargetEntity(target)) { + this.attackTicks = 0; + this.spawnedAttackVortex = false; + return; + } + + this.faceTowards(target.getEyePosition(), 16.0F, 10.0F); + this.getMoveControl().setWantedPosition(this.getX(), Math.max(this.getY(), target.getY() + 2.5D), this.getZ(), 0.34D); + + int elapsed = ATTACK_WINDUP_TICKS + ATTACK_RECOVERY_TICKS - this.attackTicks; + if (!this.spawnedAttackVortex && elapsed >= ATTACK_WINDUP_TICKS) { + this.spawnAttackVortex(target); + this.spawnedAttackVortex = true; + } + + if (--this.attackTicks <= 0) { + this.attackTicks = 0; + } + } + + private void spawnAttackVortex(LivingEntity target) { + if (!(this.level() instanceof ServerLevel serverLevel) || windVortexTypeSupplier == null) { + return; + } + Vec3 targetPos = target.getBoundingBox().getCenter(); + Vec3 origin = this.getEyePosition().add(this.getViewVector(1.0F).scale(0.8D)); + Vec3 direction = targetPos.subtract(origin); + double distance = direction.length(); + Vec3 drift = distance > 1.0E-6D ? direction.scale(0.24D / distance) : this.getViewVector(1.0F).scale(0.24D); + WindVortexEntity vortex = WindVortexEntity.create(serverLevel, windVortexTypeSupplier.get(), origin, Vec3.ZERO, this, true); + vortex.setTravel(drift); + vortex.setTravelDuration(Mth.clamp((int) Math.ceil(distance / drift.length()), 8, 36)); + vortex.setHoming(false); + serverLevel.addFreshEntity(vortex); + serverLevel.playSound(null, this.getX(), this.getY(), this.getZ(), SoundEvents.GENERIC_EXPLODE, this.getSoundSource(), 1.0F, 0.9F); + } + + private int countOwnedActiveVortexes() { + if (!(this.level() instanceof ServerLevel serverLevel) || windVortexTypeSupplier == null) { + return 0; + } + return serverLevel.getEntities(windVortexTypeSupplier.get(), this.getBoundingBox().inflate(32.0D), + vortex -> vortex.isAlive() && vortex.isDamaging() && vortex.isOwnedBy(this)).size(); + } + + private void faceTowards(Vec3 targetPos, float maxYawStep, float maxPitchStep) { + Vec3 delta = targetPos.subtract(this.getEyePosition()); + double horizontal = Math.sqrt(delta.x * delta.x + delta.z * delta.z); + if (horizontal < 1.0E-6D && Math.abs(delta.y) < 1.0E-6D) { + return; + } + + float targetYaw = (float) (Mth.atan2(delta.z, delta.x) * (180.0D / Math.PI)) - 90.0F; + float targetPitch = (float) (-(Mth.atan2(delta.y, horizontal) * (180.0D / Math.PI))); + float nextYaw = Mth.approachDegrees(this.getYRot(), targetYaw, maxYawStep); + float nextPitch = Mth.approachDegrees(this.getXRot(), targetPitch, maxPitchStep); + this.setYRot(nextYaw); + this.setYHeadRot(nextYaw); + this.yBodyRot = nextYaw; + this.setXRot(nextPitch); + } + + @Override + public void die(DamageSource damageSource) { + if (!this.level().isClientSide) { + this.setAnimationState(ANIM_DEATH); + this.attackTicks = 0; + this.spawnedAttackVortex = false; + this.getNavigation().stop(); + } + super.die(damageSource); + } + + @Override + protected void tickDeath() { + this.deathTime++; + if (this.deathTime == 1) { + this.setAnimationState(ANIM_DEATH); + } + if (this.deathTime >= DEATH_TICKS) { + this.remove(RemovalReason.KILLED); + this.dropExperience(); + } + } + + @Override + public boolean causeFallDamage(float fallDistance, float multiplier, DamageSource source) { + return false; + } + + @Override + protected void checkFallDamage(double y, boolean onGround, BlockState state, BlockPos pos) { + } + + @Override + protected SoundEvent getHurtSound(DamageSource damageSource) { + return SoundEvents.GENERIC_HURT; + } + + @Override + protected SoundEvent getDeathSound() { + return SoundEvents.GENERIC_DEATH; + } + + @Override + public void addAdditionalSaveData(CompoundTag tag) { + super.addAdditionalSaveData(tag); + tag.putInt(ATTACK_COOLDOWN_KEY, this.attackCooldown); + tag.putInt(ATTACK_TICKS_KEY, this.attackTicks); + } + + @Override + public void readAdditionalSaveData(CompoundTag tag) { + super.readAdditionalSaveData(tag); + this.attackCooldown = tag.getInt(ATTACK_COOLDOWN_KEY); + this.attackTicks = 0; + this.spawnedAttackVortex = false; + } + + public int getAnimationState() { + return this.entityData.get(ANIMATION_STATE); + } + + private void setAnimationState(int state) { + if (this.entityData.get(ANIMATION_STATE) != state) { + this.entityData.set(ANIMATION_STATE, state); + String trigger = switch (state) { + case ANIM_ATTACK -> "wind_gust"; + case ANIM_DEATH -> "death"; + default -> null; + }; + if (trigger != null) { + this.triggerAnim("main_controller", trigger); + } + } + } + + private void updateAnimationState() { + if (this.isDeadOrDying()) { + this.setAnimationState(ANIM_DEATH); + } else if (this.attackTicks > 0) { + this.setAnimationState(ANIM_ATTACK); + } else if (this.getTarget() != null && this.canTargetEntity(this.getTarget())) { + this.setAnimationState(ANIM_FLY); + } else { + this.setAnimationState(ANIM_IDLE); + } + } + + private boolean canTargetEntity(@Nullable LivingEntity entity) { + if (entity == null || !entity.isAlive() || entity == this || entity.getType() == this.getType()) { + return false; + } + if (entity instanceof Player player) { + return !player.isCreative() && !player.isSpectator() + && this.level().getDifficulty() != Difficulty.PEACEFUL; + } + return entity.isAttackable(); + } + + private final class VortexPatrolGoal extends Goal { + private int retargetDelay; + + private VortexPatrolGoal() { + this.setFlags(EnumSet.of(Flag.MOVE)); + } + + @Override + public boolean canUse() { + return VortexEntity.this.getTarget() == null + && VortexEntity.this.attackTicks <= 0 + && VortexEntity.this.getNavigation().isDone(); + } + + @Override + public boolean canContinueToUse() { + return VortexEntity.this.getTarget() == null + && VortexEntity.this.attackTicks <= 0 + && VortexEntity.this.getNavigation().isInProgress(); + } + + @Override + public void start() { + this.retargetDelay = Mth.nextInt(VortexEntity.this.random, 40, 80); + this.moveToNewTarget(); + } + + @Override + public void tick() { + if (VortexEntity.this.getTarget() != null || VortexEntity.this.attackTicks > 0) { + VortexEntity.this.getNavigation().stop(); + return; + } + if (VortexEntity.this.getNavigation().isDone() && this.retargetDelay-- <= 0) { + this.retargetDelay = Mth.nextInt(VortexEntity.this.random, 40, 80); + this.moveToNewTarget(); + } + } + + private void moveToNewTarget() { + Vec3 bias = VortexEntity.this.getViewVector(0.0F); + Vec3 hover = HoverRandomPos.getPos(VortexEntity.this, 10, 5, bias.x, bias.z, (float) Math.PI / 2.0F, 3, 1); + if (hover != null) { + VortexEntity.this.getNavigation().moveTo(hover.x, hover.y, hover.z, 0.18D); + } + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/vortex/WindVortexEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/vortex/WindVortexEntity.java new file mode 100644 index 00000000..3f4fa606 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/entity/vortex/WindVortexEntity.java @@ -0,0 +1,794 @@ +package com.craisinlord.antarchy.content.entity.vortex; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchyTags; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +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.network.protocol.game.ClientboundSetEntityMotionPacket; +import net.minecraft.server.level.ServerLevel; +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.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.player.Player; +import net.minecraft.world.level.ClipContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.UUID; + +public class WindVortexEntity extends Entity { + private static final EntityDataAccessor HEIGHT = + SynchedEntityData.defineId(WindVortexEntity.class, EntityDataSerializers.FLOAT); + private static final EntityDataAccessor TOP_RADIUS = + SynchedEntityData.defineId(WindVortexEntity.class, EntityDataSerializers.FLOAT); + private static final EntityDataAccessor DAMAGING = + SynchedEntityData.defineId(WindVortexEntity.class, EntityDataSerializers.BOOLEAN); + private static final EntityDataAccessor MODE = + SynchedEntityData.defineId(WindVortexEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor AXIS_X = + SynchedEntityData.defineId(WindVortexEntity.class, EntityDataSerializers.FLOAT); + private static final EntityDataAccessor AXIS_Y = + SynchedEntityData.defineId(WindVortexEntity.class, EntityDataSerializers.FLOAT); + private static final EntityDataAccessor AXIS_Z = + SynchedEntityData.defineId(WindVortexEntity.class, EntityDataSerializers.FLOAT); + private static final EntityDataAccessor FADING_OUT = + SynchedEntityData.defineId(WindVortexEntity.class, EntityDataSerializers.BOOLEAN); + + private static final String AGE_KEY = "Age"; + private static final String DURATION_KEY = "Duration"; + private static final String HEIGHT_KEY = "Height"; + private static final String TOP_RADIUS_KEY = "TopRadius"; + private static final String PULL_STRENGTH_KEY = "PullStrength"; + private static final String LAUNCH_STRENGTH_KEY = "LaunchStrength"; + private static final String DAMAGING_KEY = "Damaging"; + private static final String OWNER_KEY = "Owner"; + private static final String MODE_KEY = "Mode"; + private static final String AXIS_X_KEY = "AxisX"; + private static final String AXIS_Y_KEY = "AxisY"; + private static final String AXIS_Z_KEY = "AxisZ"; + private static final String TRAVEL_X_KEY = "TravelX"; + private static final String TRAVEL_Y_KEY = "TravelY"; + private static final String TRAVEL_Z_KEY = "TravelZ"; + private static final String TRAVELLING_KEY = "Travelling"; + private static final String HOMING_KEY = "Homing"; + private static final String ANCHORED_KEY = "Anchored"; + private static final String BOUNCE_ON_IMPACT_KEY = "BounceOnImpact"; + + private static final double BASE_RADIUS = 0.35D; + private static final double DRIFT_FRICTION = 0.995D; + private static final double FALL_ACCELERATION = 0.006D; + private static final double MAX_FALL_SPEED = 0.08D; + private static final double MINIMUM_DOWNWARD_DRIFT = 0.012D; + private static final int FADE_OUT_TICKS = 8; + + public enum VortexMode { + UPWARD, + LENS_PULL, + LENS_PUSH, + GATHER_RETURN + } + + private int age; + private int durationTicks = 240; + private double pullStrength = 0.32D; + private double launchStrength = 1.0D; + private float damageOverride = -1.0F; + private Vec3 travelVelocity = Vec3.ZERO; + private boolean travelling = false; + private boolean homing = false; + private boolean bounceOnImpact = false; + private int travelTicksRemaining; + private int fadeOutTicksRemaining; + private boolean anchoredAtBlock; + private double flowTurnRate; + private double flowTurnTarget; + private int flowTurnChangeTicks; + private final Map carriedProgress = new HashMap<>(); + @Nullable + private UUID ownerUuid; + + public WindVortexEntity(EntityType entityType, Level level) { + super(entityType, level); + this.noCulling = true; + } + + public static WindVortexEntity create(Level level, EntityType type, Vec3 position, + Vec3 drift, @Nullable LivingEntity owner, boolean damaging) { + WindVortexEntity vortex = new WindVortexEntity(type, level); + vortex.setPos(position.x, position.y, position.z); + vortex.setDeltaMovement(drift); + vortex.setVortexSize(5.0F, 1.5F); + vortex.setAxis(Direction.UP); + vortex.setMode(VortexMode.UPWARD); + vortex.durationTicks = Math.max(1, AntarchySettings.windVortexDurationTicks()); + vortex.pullStrength = AntarchySettings.windVortexPullStrength(); + vortex.launchStrength = AntarchySettings.windVortexLaunchStrength(); + vortex.setDamaging(damaging); + if (owner != null) { + vortex.ownerUuid = owner.getUUID(); + } + return vortex; + } + + @Override + protected void defineSynchedData() { + this.entityData.define(HEIGHT, 5.0F); + this.entityData.define(TOP_RADIUS, 1.5F); + this.entityData.define(DAMAGING, false); + this.entityData.define(MODE, VortexMode.UPWARD.ordinal()); + this.entityData.define(AXIS_X, 0.0F); + this.entityData.define(AXIS_Y, 1.0F); + this.entityData.define(AXIS_Z, 0.0F); + this.entityData.define(FADING_OUT, false); + } + + @Override + public void tick() { + super.tick(); + + if (this.level().isClientSide) { + if (this.fadeOutTicksRemaining > 0) { + this.fadeOutTicksRemaining--; + } + return; + } + + if (this.isFadingOut()) { + if (--this.fadeOutTicksRemaining <= 0) { + this.discard(); + } + return; + } + + if (this.anchoredAtBlock) { + this.setDeltaMovement(Vec3.ZERO); + if ((this.tickCount & 1) == 0) { + this.applyVortexForces(); + } + this.age++; + if (this.age >= this.durationTicks) { + this.fadeOut(); + } + return; + } + + boolean lensVortex = this.getMode() != VortexMode.UPWARD; + if (!lensVortex && (this.isInLava() || this.isInsideSolidBlock())) { + this.fadeOut(); + return; + } + + this.age++; + if (!lensVortex && this.age >= this.durationTicks) { + this.fadeOut(); + return; + } + + if (this.travelling) { + if (this.homing) { + this.steerTowardPrey(); + } + if (this.bounceOnImpact) { + this.updateFluidDrift(); + } + Vec3 from = this.position(); + Vec3 to = from.add(this.travelVelocity); + HitResult blockHit = this.level().clip( + new ClipContext(from, to, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, this)); + if (blockHit.getType() != HitResult.Type.MISS) { + if (this.bounceOnImpact) { + this.flowAroundBlock(blockHit); + } else { + this.anchorAtBlock(blockHit); + } + } else { + this.setDeltaMovement(this.travelVelocity); + this.move(net.minecraft.world.entity.MoverType.SELF, this.travelVelocity); + if (--this.travelTicksRemaining <= 0) { + this.travelling = false; + this.noPhysics = false; + this.setDeltaMovement(this.travelVelocity); + } + } + } else if (!lensVortex) { + Vec3 current = this.getDeltaMovement(); + double downwardSpeed = Math.min(MAX_FALL_SPEED, Math.max(MINIMUM_DOWNWARD_DRIFT, + -current.y + FALL_ACCELERATION)); + Vec3 drift = new Vec3( + current.x * DRIFT_FRICTION, + -downwardSpeed, + current.z * DRIFT_FRICTION); + Vec3 from = this.position(); + Vec3 to = from.add(drift); + HitResult blockHit = this.level().clip( + new ClipContext(from, to, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, this)); + if (blockHit.getType() != HitResult.Type.MISS) { + if (this.bounceOnImpact) { + this.flowAroundBlock(blockHit); + } else { + this.anchorAtBlock(blockHit); + } + } else { + this.setDeltaMovement(drift); + this.move(net.minecraft.world.entity.MoverType.SELF, drift); + } + } else { + Vec3 drift = this.getDeltaMovement().multiply(DRIFT_FRICTION, DRIFT_FRICTION, DRIFT_FRICTION); + this.setDeltaMovement(drift); + this.move(net.minecraft.world.entity.MoverType.SELF, drift); + } + + if ((this.tickCount & 1) == 0) { + this.applyVortexForces(); + } + } + + private void steerTowardPrey() { + double speed = this.travelVelocity.length(); + if (speed < 1.0E-4D) { + return; + } + AABB seekArea = this.getBoundingBox().inflate(12.0D); + Entity best = null; + double bestDistSqr = Double.MAX_VALUE; + for (Entity candidate : this.level().getEntities(this, seekArea, this::isSeekTarget)) { + double distSqr = candidate.distanceToSqr(this); + if (distSqr < bestDistSqr) { + bestDistSqr = distSqr; + best = candidate; + } + } + if (best == null) { + return; + } + Vec3 desired = best.getBoundingBox().getCenter().subtract(this.position()); + if (desired.lengthSqr() < 1.0E-6D) { + return; + } + Vec3 steered = this.travelVelocity.normalize().lerp(desired.normalize(), 0.18D); + if (steered.lengthSqr() < 1.0E-6D) { + return; + } + this.travelVelocity = steered.normalize().scale(speed); + } + + private boolean isSeekTarget(Entity entity) { + return entity instanceof LivingEntity && !(entity instanceof Player) && !this.isOwnedBy(entity) + && this.canAffectEntity(entity); + } + + private boolean isInsideSolidBlock() { + BlockPos pos = this.blockPosition(); + BlockState state = this.level().getBlockState(pos); + return !state.getCollisionShape(this.level(), pos).isEmpty(); + } + + private void fadeOut() { + if (!this.level().isClientSide && !this.isFadingOut()) { + this.entityData.set(FADING_OUT, true); + this.fadeOutTicksRemaining = FADE_OUT_TICKS; + this.level().broadcastEntityEvent(this, (byte) 60); + } + } + + private void anchorAtBlock(HitResult hit) { + this.travelling = false; + this.noPhysics = false; + this.travelVelocity = Vec3.ZERO; + this.setDeltaMovement(Vec3.ZERO); + if (hit instanceof net.minecraft.world.phys.BlockHitResult blockHit) { + Vec3 normal = Vec3.atLowerCornerOf(blockHit.getDirection().getNormal()); + this.setPos(blockHit.getLocation().add(normal.scale(0.05D))); + } + this.anchoredAtBlock = true; + } + + private void updateFluidDrift() { + if (--this.flowTurnChangeTicks <= 0) { + this.flowTurnChangeTicks = 24 + this.random.nextInt(32); + this.flowTurnTarget = (this.random.nextDouble() * 2.0D - 1.0D) * 0.012D; + } + this.flowTurnRate = Mth.lerp(0.08D, this.flowTurnRate, this.flowTurnTarget); + Vec3 horizontal = new Vec3(this.travelVelocity.x, 0.0D, this.travelVelocity.z); + if (horizontal.lengthSqr() > 1.0E-6D) { + Vec3 turned = horizontal.yRot((float) this.flowTurnRate); + this.travelVelocity = new Vec3(turned.x, this.travelVelocity.y, turned.z); + } + } + + private void flowAroundBlock(HitResult hit) { + if (!(hit instanceof net.minecraft.world.phys.BlockHitResult blockHit)) { + return; + } + + Vec3 normal = Vec3.atLowerCornerOf(blockHit.getDirection().getNormal()); + Vec3 incoming = this.travelVelocity.lengthSqr() > 1.0E-6D + ? this.travelVelocity + : this.getDeltaMovement(); + double speed = Mth.clamp(incoming.length(), 0.2D, 0.9D); + Vec3 flow = incoming; + if (normal.y > 0.5D) { + flow = new Vec3(incoming.x, 0.0D, incoming.z); + } else if (normal.y < -0.5D) { + flow = new Vec3(incoming.x, 0.0D, incoming.z).add(0.0D, -0.08D, 0.0D); + } else { + Vec3 tangent = incoming.subtract(normal.scale(incoming.dot(normal))); + if (tangent.lengthSqr() < 1.0E-6D) { + tangent = new Vec3(-normal.z, 0.0D, normal.x); + if (tangent.lengthSqr() < 1.0E-6D) { + tangent = new Vec3(0.0D, 0.0D, 1.0D); + } + } + flow = tangent.normalize().scale(speed); + } + if (flow.lengthSqr() < 1.0E-6D) { + this.travelVelocity = Vec3.ZERO; + this.setDeltaMovement(Vec3.ZERO); + this.travelling = false; + this.noPhysics = false; + return; + } + this.setPos(blockHit.getLocation().add(normal.scale(0.08D))); + this.travelVelocity = flow.normalize().scale(speed * 0.82D); + this.setDeltaMovement(this.travelVelocity); + this.noPhysics = true; + if (--this.travelTicksRemaining <= 0) { + this.travelling = false; + this.noPhysics = false; + } + } + + @Override + public void handleEntityEvent(byte id) { + if (id == 60) { + this.fadeOutTicksRemaining = FADE_OUT_TICKS; + return; + } + super.handleEntityEvent(id); + } + + private void applyVortexForces() { + double height = this.getVortexHeight(); + double maxRadius = this.getTopRadius(); + AABB area = this.getBoundingBox().inflate(maxRadius + height + 1.0D); + Basis basis = this.basis(); + VortexMode mode = this.getMode(); + + for (Entity entity : this.level().getEntities(this, area, this::canAffectEntity)) { + this.captureEntity(entity, height, basis, mode); + } + + if (!(this.level() instanceof ServerLevel serverLevel)) { + return; + } + + for (ServerPlayer player : serverLevel.players()) { + if (area.intersects(player.getBoundingBox())) { + this.captureEntity(player, height, basis, mode); + } + } + + Iterator> iterator = this.carriedProgress.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry entry = iterator.next(); + Entity entity = serverLevel.getEntity(entry.getKey()); + if (entity == null || !this.canAffectEntity(entity)) { + iterator.remove(); + continue; + } + + double progress = entry.getValue(); + double direction = mode == VortexMode.LENS_PULL ? -1.0D : 1.0D; + progress += direction * 0.055D; + if (this.travelling) { + progress = Math.min(progress, 0.85D); + } + if (mode == VortexMode.LENS_PULL && progress <= 0.0D) { + iterator.remove(); + continue; + } + + if (mode == VortexMode.GATHER_RETURN && this.age >= this.gatherReturnAtAge()) { + this.launchTowardOwner(entity); + iterator.remove(); + continue; + } + + if (mode == VortexMode.UPWARD && progress >= 0.92D && !this.travelling) { + this.launch(entity, this.radialVectorAt(entity, progress, basis), progress, basis); + iterator.remove(); + continue; + } + + if (mode == VortexMode.LENS_PUSH && progress >= 0.94D) { + this.launch(entity, this.radialVectorAt(entity, progress, basis), progress, basis); + iterator.remove(); + continue; + } + + double shapeProgress = mode == VortexMode.LENS_PULL ? progress : progress; + double radius = this.radiusAt(shapeProgress); + Vec3 relative = entity.position().subtract(this.position()); + Vec3 axisPoint = basis.axis.scale(relative.dot(basis.axis)); + Vec3 radialVector = relative.subtract(axisPoint); + this.spin(entity, radialVector, progress, shapeProgress, radius, basis, mode); + if (mode == VortexMode.UPWARD) { + entity.setOnGround(false); + } + this.hurtCaughtEntity(entity); + entry.setValue(progress); + } + } + + private Vec3 radialVectorAt(Entity entity, double progress, Basis basis) { + Vec3 relative = entity.position().subtract(this.position()); + Vec3 axisPoint = basis.axis.scale(relative.dot(basis.axis)); + Vec3 radial = relative.subtract(axisPoint); + return radial.lengthSqr() < 1.0E-6D ? basis.sideA.scale(this.radiusAt(progress)) : radial; + } + + private void captureEntity(Entity entity, double height, Basis basis, VortexMode mode) { + if (!this.canAffectEntity(entity)) { + return; + } + Vec3 relative = entity.position().subtract(this.position()); + double axisDistance = relative.dot(basis.axis); + if (axisDistance < -1.0D || axisDistance > height + 2.0D) { + return; + } + double along = Mth.clamp(axisDistance, 0.0D, height); + double currentProgress = height <= 0.0D ? 1.0D : along / height; + double captureProgress = mode == VortexMode.LENS_PULL ? 1.0D - currentProgress : currentProgress; + double shapeProgress = mode == VortexMode.LENS_PULL ? 1.0D - currentProgress : currentProgress; + double radius = this.radiusAt(shapeProgress); + Vec3 axisPoint = basis.axis.scale(axisDistance); + Vec3 radialVector = relative.subtract(axisPoint); + double captureRadius = radius * 1.35D + (entity instanceof Player ? 1.5D : 1.75D); + boolean requireLos = !this.travelling && mode == VortexMode.GATHER_RETURN; + + if (radialVector.lengthSqr() > captureRadius * captureRadius + || (requireLos && !this.hasClearPathTo(entity))) { + return; + } + + this.carriedProgress.putIfAbsent(entity.getUUID(), captureProgress); + } + + private boolean canAffectEntity(Entity entity) { + if (entity instanceof WindVortexEntity + || !entity.isAlive() + || entity.isSpectator() + || entity.noPhysics + || entity.getType().is(AntarchyTags.Entities.WIND_VORTEX_IMMUNE)) { + return false; + } + return true; + } + + private boolean hasClearPathTo(Entity entity) { + Vec3 from = this.position().add(this.getAxis().scale(Math.min(entity.getBbHeight() * 0.5D, this.getVortexHeight()))); + Vec3 to = entity.getBoundingBox().getCenter(); + HitResult result = this.level().clip(new ClipContext(from, to, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, this)); + return result.getType() == HitResult.Type.MISS; + } + + private void spin(Entity entity, Vec3 radialVector, double progress, double shapeProgress, double radius, Basis basis, VortexMode mode) { + double horizontal = Math.max(0.08D, radialVector.length()); + Vec3 radial = radialVector.lengthSqr() < 1.0E-6D ? basis.sideA : radialVector.scale(1.0D / horizontal); + Vec3 tangent = basis.axis.cross(radial).normalize(); + double targetRadius = mode == VortexMode.LENS_PULL || mode == VortexMode.GATHER_RETURN + ? Math.max(0.05D, radius * 0.18D) + : Mth.lerp(shapeProgress, BASE_RADIUS, radius * 0.82D); + double radialError = targetRadius - horizontal; + boolean lensMode = mode == VortexMode.LENS_PULL || mode == VortexMode.LENS_PUSH; + double lensLivingBoost = lensMode && entity instanceof LivingEntity ? 1.6D : 1.0D; + double playerScale = (entity instanceof Player ? 1.8D : 1.35D) * lensLivingBoost; + double pull = this.pullStrength * playerScale * (entity.isShiftKeyDown() ? 0.5D : 1.0D); + double massScale = Mth.clamp(1.35D / Math.max(0.35D, entity.getBbWidth() * entity.getBbHeight()), 0.28D, 1.0D); + double spin = (0.24D + progress * 0.34D) * massScale * playerScale; + double axialSpeed = switch (mode) { + case LENS_PULL -> -(0.18D + (1.0D - progress) * 0.18D) * massScale; + case LENS_PUSH -> (0.18D + progress * 0.22D) * massScale; + case UPWARD -> (0.13D + progress * 0.16D) * massScale; + case GATHER_RETURN -> (0.05D + progress * 0.08D) * massScale; + } * playerScale; + if (mode == VortexMode.UPWARD && entity.onGround()) { + axialSpeed = Math.max(axialSpeed, entity instanceof Player ? 0.38D : 0.3D); + } + + Vec3 wanted = radial.scale(radialError * pull) + .add(tangent.scale(spin)) + .add(basis.axis.scale(axialSpeed)); + Vec3 current = entity.getDeltaMovement(); + Vec3 updatedMovement = new Vec3( + Mth.lerp(0.72D, current.x, wanted.x), + Mth.lerp(0.58D, current.y, wanted.y), + Mth.lerp(0.72D, current.z, wanted.z) + ); + if (this.travelling) { + updatedMovement = updatedMovement.add(this.travelVelocity.x * 0.8D, 0.0D, this.travelVelocity.z * 0.8D); + } + if (mode == VortexMode.UPWARD && entity.onGround()) { + double minRise = entity instanceof Player ? 0.38D : 0.3D; + updatedMovement = new Vec3(updatedMovement.x, Math.max(updatedMovement.y, minRise), updatedMovement.z); + entity.setOnGround(false); + } + entity.setDeltaMovement(updatedMovement); + if (entity instanceof Player) { + entity.setOnGround(false); + } + entity.fallDistance = 0.0F; + entity.hasImpulse = true; + this.syncPlayerMotion(entity); + } + + private void launch(Entity entity, Vec3 radialVector, double progress, Basis basis) { + double horizontal = Math.max(0.08D, radialVector.length()); + Vec3 radial = radialVector.lengthSqr() < 1.0E-6D ? basis.sideA : radialVector.scale(1.0D / horizontal); + Vec3 tangent = basis.axis.cross(radial).normalize(); + double scale = this.launchStrength * Mth.clamp(this.getVortexHeight() / 5.0D, 0.5D, 2.5D); + entity.setDeltaMovement(tangent.scale(0.72D * scale).add(radial.scale(0.34D * scale)).add(basis.axis.scale((0.78D + progress * 0.28D) * scale))); + entity.hasImpulse = true; + this.syncPlayerMotion(entity); + } + + private void hurtCaughtEntity(Entity entity) { + if (!this.isDamaging() || !(entity instanceof LivingEntity living) || living.tickCount % 20 != 0) { + return; + } + if (living.getType().is(AntarchyTags.Entities.WIND_VORTEX_IMMUNE)) { + return; + } + living.hurt(this.damageSource(), this.resolveDamage()); + } + + private float resolveDamage() { + if (this.damageOverride >= 0.0F) { + return this.damageOverride; + } + return (float) (2.0D * Mth.clamp(this.getTopRadius() / 1.5D, 0.5D, 3.0D)); + } + + private int gatherReturnAtAge() { + return Math.max(10, (int) (this.durationTicks * 0.55D)); + } + + private void launchTowardOwner(Entity entity) { + Entity owner = this.getOwnerEntity(); + Vec3 target = owner != null ? owner.getEyePosition() : this.position().add(0.0D, 1.0D, 0.0D); + Vec3 toOwner = target.subtract(entity.position()); + double distance = toOwner.length(); + Vec3 direction = distance < 1.0E-4D ? new Vec3(0.0D, 1.0D, 0.0D) : toOwner.scale(1.0D / distance); + double arc = Mth.clamp(distance * 0.06D, 0.25D, 1.1D); + double power = this.launchStrength * Mth.clamp(distance / 6.0D, 0.6D, 2.0D); + entity.setDeltaMovement(direction.scale(power).add(0.0D, arc, 0.0D)); + entity.fallDistance = 0.0F; + entity.hasImpulse = true; + entity.hurtMarked = true; + this.syncPlayerMotion(entity); + if (this.isDamaging() && entity instanceof LivingEntity living + && !living.getType().is(AntarchyTags.Entities.WIND_VORTEX_IMMUNE)) { + living.hurt(this.damageSource(), this.resolveDamage()); + } + } + + private void syncPlayerMotion(Entity entity) { + if (entity instanceof ServerPlayer player) { + player.hurtMarked = true; + player.connection.send(new ClientboundSetEntityMotionPacket(player)); + } + } + + private DamageSource damageSource() { + Entity owner = this.getOwnerEntity(); + if (owner instanceof LivingEntity living) { + return this.damageSources().mobAttack(living); + } + return this.damageSources().magic(); + } + + @Nullable + private Entity getOwnerEntity() { + if (this.ownerUuid == null || !(this.level() instanceof ServerLevel serverLevel)) { + return null; + } + return serverLevel.getEntity(this.ownerUuid); + } + + private double radiusAt(double progress) { + return Mth.lerp(progress, BASE_RADIUS, this.getTopRadius()); + } + + public void setVortexSize(float height, float topRadius) { + this.entityData.set(HEIGHT, height); + this.entityData.set(TOP_RADIUS, topRadius); + } + + public float getVortexHeight() { + return this.entityData.get(HEIGHT); + } + + public float getTopRadius() { + return this.entityData.get(TOP_RADIUS); + } + + public void setMode(VortexMode mode) { + this.entityData.set(MODE, mode.ordinal()); + } + + public VortexMode getMode() { + int ordinal = Mth.clamp(this.entityData.get(MODE), 0, VortexMode.values().length - 1); + return VortexMode.values()[ordinal]; + } + + public void setAxis(Direction direction) { + this.setAxis(Vec3.atLowerCornerOf(direction.getNormal())); + } + + public void setAxis(Vec3 axis) { + Vec3 normalized = axis.lengthSqr() < 1.0E-6D ? new Vec3(0.0D, 1.0D, 0.0D) : axis.normalize(); + this.entityData.set(AXIS_X, (float) normalized.x); + this.entityData.set(AXIS_Y, (float) normalized.y); + this.entityData.set(AXIS_Z, (float) normalized.z); + } + + public Vec3 getAxis() { + Vec3 axis = new Vec3(this.entityData.get(AXIS_X), this.entityData.get(AXIS_Y), this.entityData.get(AXIS_Z)); + return axis.lengthSqr() < 1.0E-6D ? new Vec3(0.0D, 1.0D, 0.0D) : axis.normalize(); + } + + public int getVortexAge() { + return this.age; + } + + public int getVortexDurationTicks() { + return this.durationTicks; + } + + public void setVortexDurationTicks(int durationTicks) { + this.durationTicks = Math.max(1, durationTicks); + } + + public void resetVortexAge() { + this.age = 0; + } + + public void setTravel(Vec3 velocity) { + this.travelVelocity = velocity; + this.travelling = true; + this.travelTicksRemaining = 24; + this.noPhysics = true; + } + + public void setTravelDuration(int ticks) { + this.travelTicksRemaining = Math.max(1, ticks); + } + + public void setHoming(boolean homing) { + this.homing = homing; + } + + public void setBounceOnImpact(boolean bounceOnImpact) { + this.bounceOnImpact = bounceOnImpact; + } + + public void setVortexStrengths(double pullStrength, double launchStrength) { + this.pullStrength = Math.max(0.0D, pullStrength); + this.launchStrength = Math.max(0.0D, launchStrength); + } + + public void setDamageOverride(float damage) { + this.damageOverride = damage; + } + + public void removeFromLens() { + this.fadeOut(); + } + + public boolean isDamaging() { + return this.entityData.get(DAMAGING); + } + + public boolean isOwnedBy(Entity entity) { + return entity != null && this.ownerUuid != null && this.ownerUuid.equals(entity.getUUID()); + } + + public void setDamaging(boolean damaging) { + this.entityData.set(DAMAGING, damaging); + } + + public boolean isFadingOut() { + return this.entityData.get(FADING_OUT); + } + + public float getFadeOutProgress(float partialTick) { + if (!this.isFadingOut()) { + return 1.0F; + } + return Mth.clamp((this.fadeOutTicksRemaining - partialTick) / (float) FADE_OUT_TICKS, 0.0F, 1.0F); + } + + @Override + protected void readAdditionalSaveData(CompoundTag tag) { + this.age = tag.getInt(AGE_KEY); + this.durationTicks = tag.getInt(DURATION_KEY); + this.setVortexSize(tag.getFloat(HEIGHT_KEY), tag.getFloat(TOP_RADIUS_KEY)); + this.pullStrength = tag.getDouble(PULL_STRENGTH_KEY); + this.launchStrength = tag.getDouble(LAUNCH_STRENGTH_KEY); + this.setDamaging(tag.getBoolean(DAMAGING_KEY)); + this.setMode(VortexMode.values()[Mth.clamp(tag.getInt(MODE_KEY), 0, VortexMode.values().length - 1)]); + this.setAxis(new Vec3(tag.getFloat(AXIS_X_KEY), tag.getFloat(AXIS_Y_KEY), tag.getFloat(AXIS_Z_KEY))); + this.travelling = tag.getBoolean(TRAVELLING_KEY); + this.homing = tag.getBoolean(HOMING_KEY); + this.bounceOnImpact = tag.getBoolean(BOUNCE_ON_IMPACT_KEY); + this.anchoredAtBlock = tag.getBoolean(ANCHORED_KEY); + this.travelVelocity = new Vec3(tag.getDouble(TRAVEL_X_KEY), tag.getDouble(TRAVEL_Y_KEY), tag.getDouble(TRAVEL_Z_KEY)); + if (this.travelling) { + this.noPhysics = true; + } + if (tag.hasUUID(OWNER_KEY)) { + this.ownerUuid = tag.getUUID(OWNER_KEY); + } + } + + @Override + protected void addAdditionalSaveData(CompoundTag tag) { + tag.putInt(AGE_KEY, this.age); + tag.putInt(DURATION_KEY, this.durationTicks); + tag.putFloat(HEIGHT_KEY, this.getVortexHeight()); + tag.putFloat(TOP_RADIUS_KEY, this.getTopRadius()); + tag.putDouble(PULL_STRENGTH_KEY, this.pullStrength); + tag.putDouble(LAUNCH_STRENGTH_KEY, this.launchStrength); + tag.putBoolean(DAMAGING_KEY, this.isDamaging()); + tag.putInt(MODE_KEY, this.getMode().ordinal()); + tag.putFloat(AXIS_X_KEY, (float) this.getAxis().x); + tag.putFloat(AXIS_Y_KEY, (float) this.getAxis().y); + tag.putFloat(AXIS_Z_KEY, (float) this.getAxis().z); + tag.putBoolean(TRAVELLING_KEY, this.travelling); + tag.putBoolean(HOMING_KEY, this.homing); + tag.putBoolean(BOUNCE_ON_IMPACT_KEY, this.bounceOnImpact); + tag.putBoolean(ANCHORED_KEY, this.anchoredAtBlock); + tag.putDouble(TRAVEL_X_KEY, this.travelVelocity.x); + tag.putDouble(TRAVEL_Y_KEY, this.travelVelocity.y); + tag.putDouble(TRAVEL_Z_KEY, this.travelVelocity.z); + if (this.ownerUuid != null) { + tag.putUUID(OWNER_KEY, this.ownerUuid); + } + } + + public static final class Basis { + public final Vec3 axis; + public final Vec3 sideA; + public final Vec3 sideB; + + private Basis(Vec3 axis, Vec3 sideA, Vec3 sideB) { + this.axis = axis; + this.sideA = sideA; + this.sideB = sideB; + } + } + + public Basis basis() { + Vec3 axis = this.getAxis(); + Vec3 reference = Math.abs(axis.y) > 0.9D ? new Vec3(1.0D, 0.0D, 0.0D) : new Vec3(0.0D, 1.0D, 0.0D); + Vec3 sideA = reference.cross(axis).normalize(); + Vec3 sideB = axis.cross(sideA).normalize(); + return new Basis(axis, sideA, sideB); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/fluid/AntiwaterBubbleColumnUtil.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/fluid/AntiwaterBubbleColumnUtil.java new file mode 100644 index 00000000..4afa42da --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/fluid/AntiwaterBubbleColumnUtil.java @@ -0,0 +1,55 @@ +package com.craisinlord.antarchy.content.fluid; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.BubbleColumnBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.FluidState; + +/** Converts a full Antiwater cell next to a vanilla bubble-column source. */ +public final class AntiwaterBubbleColumnUtil { + private AntiwaterBubbleColumnUtil() { + } + + public static void update(LevelAccessor level, BlockPos pos, FluidState fluidState) { + if (!AntarchyFluidChecks.isAntiwater(fluidState) + || (!fluidState.isSource() && fluidState.getAmount() < 7)) { + return; + } + + BlockState below = level.getBlockState(pos.below()); + if (isBubbleSource(below)) { + replaceColumn(level, pos, Direction.UP, below.is(Blocks.MAGMA_BLOCK)); + return; + } + + BlockState above = level.getBlockState(pos.above()); + if (isBubbleSource(above)) { + replaceColumn(level, pos, Direction.DOWN, above.is(Blocks.MAGMA_BLOCK)); + } + } + + private static boolean isBubbleSource(BlockState state) { + return state.is(Blocks.MAGMA_BLOCK) || state.is(Blocks.SOUL_SAND); + } + + private static void replaceColumn(LevelAccessor level, BlockPos start, Direction direction, boolean dragDown) { + BlockPos.MutableBlockPos cursor = start.mutable(); + BlockState columnState = Blocks.BUBBLE_COLUMN.defaultBlockState() + .setValue(BubbleColumnBlock.DRAG_DOWN, dragDown); + + while (true) { + BlockState state = level.getBlockState(cursor); + FluidState fluidState = state.getFluidState(); + if (!AntarchyFluidChecks.isAntiwater(fluidState) + && !state.is(Blocks.BUBBLE_COLUMN)) { + return; + } + + level.setBlock(cursor, columnState, 3); + cursor.move(direction); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/EyeOfTheStormItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/EyeOfTheStormItem.java new file mode 100644 index 00000000..abed85ae --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/EyeOfTheStormItem.java @@ -0,0 +1,191 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.client.model.ResourceBackedGeoItemModel; +import com.craisinlord.antarchy.content.client.renderer.AnimatedHeldItemRenderer; +import com.craisinlord.antarchy.content.entity.vortex.WindVortexEntity; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Consumer; +import net.minecraft.ChatFormatting; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.network.protocol.game.ClientboundSetEntityMotionPacket; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +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.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import org.jetbrains.annotations.Nullable; +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.Level; +import net.minecraft.world.phys.Vec3; +import software.bernie.geckolib.animatable.GeoItem; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.RawAnimation; +import software.bernie.geckolib.util.GeckoLibUtil; + +public class EyeOfTheStormItem extends Item implements GeoItem { + private static final ResourceLocation MODEL_LOCATION = new ResourceLocation("antarchy", "geo/eye_of_the_storm.geo.json"); + private static final ResourceLocation TEXTURE_LOCATION = new ResourceLocation("antarchy", "textures/item/eye_of_the_storm/eye_of_the_storm.png"); + private static final ResourceLocation ANIMATION_LOCATION = new ResourceLocation("antarchy", "animations/eye_of_the_storm.animation.json"); + private static final String IDLE_CONTROLLER = "idle_controller"; + private static final String IDLE_ANIMATION = "spinning_idle"; + private static final Map LAST_UPDRAFT_TICK = new ConcurrentHashMap<>(); + private static final float SURGE_PROJECTILE_SPEED = 0.65F; + + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + + public EyeOfTheStormItem(Properties properties) { + super(properties); + GeoItem.registerSyncedAnimatable(this); + } + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand usedHand) { + ItemStack stack = player.getItemInHand(usedHand); + if (!AntarchySettings.eyeOfTheStormEnabled()) { + return InteractionResultHolder.fail(stack); + } + if (level.isClientSide) { + return InteractionResultHolder.consume(stack); + } + + long now = level.getGameTime(); + Long last = LAST_UPDRAFT_TICK.get(player.getUUID()); + if (last != null && now - last < AntarchySettings.eyeOfTheStormUpdraftCooldownTicks()) { + return InteractionResultHolder.fail(stack); + } + LAST_UPDRAFT_TICK.put(player.getUUID(), now); + + ServerLevel serverLevel = (ServerLevel) level; + WindVortexEntity vortex = WindVortexEntity.create( + serverLevel, + AntarchyObjects.WIND_VORTEX.get(), + player.position(), + Vec3.ZERO, + player, + false + ); + vortex.setMode(WindVortexEntity.VortexMode.UPWARD); + vortex.setAxis(Direction.UP); + vortex.setVortexSize((float) AntarchySettings.eyeOfTheStormUpdraftHeight(), (float) AntarchySettings.eyeOfTheStormUpdraftRadius()); + vortex.setVortexDurationTicks(AntarchySettings.eyeOfTheStormUpdraftDurationTicks()); + serverLevel.addFreshEntity(vortex); + + player.setDeltaMovement(player.getDeltaMovement().add(0.0D, AntarchySettings.eyeOfTheStormUpdraftLaunchStrength(), 0.0D)); + player.hasImpulse = true; + player.resetFallDistance(); + if (player instanceof ServerPlayer serverPlayer) { + serverPlayer.connection.send(new ClientboundSetEntityMotionPacket(serverPlayer)); + } + + serverLevel.playSound(null, player.getX(), player.getY(), player.getZ(), + SoundEvents.GENERIC_EXPLODE, SoundSource.PLAYERS, 0.9F, 1.1F); + + player.awardStat(Stats.ITEM_USED.get(this)); + stack.hurtAndBreak(1, player, p -> p.broadcastBreakEvent(usedHand == InteractionHand.MAIN_HAND ? EquipmentSlot.MAINHAND : EquipmentSlot.OFFHAND)); + return InteractionResultHolder.consume(stack); + } + + public void firePrimary(ServerLevel level, Player player, ItemStack stack) { + if (!AntarchySettings.eyeOfTheStormEnabled() || player.getMainHandItem() != stack) { + return; + } + + Vec3 look = player.getViewVector(1.0F); + launchStormVortex(level, player.getEyePosition().add(look), look, player); + + player.awardStat(Stats.ITEM_USED.get(this)); + stack.hurtAndBreak(1, player, p -> p.broadcastBreakEvent(EquipmentSlot.MAINHAND)); + } + + public static void launchStormVortex(ServerLevel level, Vec3 origin, Vec3 direction, @Nullable LivingEntity owner) { + if (!AntarchySettings.eyeOfTheStormEnabled()) { + return; + } + Vec3 dir = direction.lengthSqr() < 1.0E-6D ? new Vec3(0.0D, 0.0D, 1.0D) : direction.normalize(); + + WindVortexEntity vortex = WindVortexEntity.create( + level, + AntarchyObjects.WIND_VORTEX.get(), + origin, + Vec3.ZERO, + owner, + true + ); + vortex.setMode(WindVortexEntity.VortexMode.UPWARD); + vortex.setAxis(Direction.UP); + vortex.setVortexSize((float) AntarchySettings.eyeOfTheStormSurgeHeight(), (float) AntarchySettings.eyeOfTheStormSurgeRadius()); + vortex.setVortexDurationTicks(AntarchySettings.eyeOfTheStormSurgeDurationTicks()); + vortex.setVortexStrengths(AntarchySettings.eyeOfTheStormSurgePullStrength(), AntarchySettings.eyeOfTheStormSurgeReturnStrength()); + vortex.setDamageOverride(AntarchySettings.eyeOfTheStormSurgeDamage()); + vortex.setTravel(dir.scale(SURGE_PROJECTILE_SPEED)); + vortex.setHoming(true); + vortex.setBounceOnImpact(true); + level.addFreshEntity(vortex); + + level.playSound(null, origin.x, origin.y, origin.z, + SoundEvents.GENERIC_EXPLODE, SoundSource.PLAYERS, 1.0F, 0.8F); + } + + @Override + public UseAnim getUseAnimation(ItemStack stack) { + return UseAnim.NONE; + } + + @Override + public void appendHoverText(ItemStack stack, Level level, List tooltipComponents, TooltipFlag tooltipFlag) { + tooltipComponents.add(Component.translatable("tooltip.antarchy.eye_of_the_storm.updraft").withStyle(ChatFormatting.DARK_AQUA)); + tooltipComponents.add(Component.translatable("tooltip.antarchy.eye_of_the_storm.surge").withStyle(ChatFormatting.DARK_AQUA)); + super.appendHoverText(stack, level, tooltipComponents, tooltipFlag); + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, IDLE_CONTROLLER, state -> + state.setAndContinue(RawAnimation.begin().thenLoop(IDLE_ANIMATION)))); + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } + + 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; + } + }); + } + + public void createRenderer(Consumer consumer) { + createGeoRenderer(provider -> consumer.accept(provider.getGeoItemRenderer())); + } + + public java.util.function.Supplier getRenderProvider() { + return () -> { final Object[] value = new Object[1]; createGeoRenderer(provider -> value[0] = provider.getGeoItemRenderer()); return value[0]; }; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/HoverboardItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/HoverboardItem.java new file mode 100644 index 00000000..75e1999a --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/HoverboardItem.java @@ -0,0 +1,74 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.content.entity.HoverboardEntity; +import java.util.function.Predicate; +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.EntitySelector; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.ClipContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.gameevent.GameEvent; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; + +public class HoverboardItem extends Item { + private static final Predicate ENTITY_PREDICATE = EntitySelector.NO_SPECTATORS.and(Entity::isPickable); + + private final EntityType entityType; + @Nullable + private final DyeColor color; + + public HoverboardItem(EntityType entityType, @Nullable DyeColor color, Properties properties) { + super(properties); + this.entityType = entityType; + this.color = color; + } + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + BlockHitResult hitResult = getPlayerPOVHitResult(level, player, ClipContext.Fluid.ANY); + if (hitResult.getType() == HitResult.Type.MISS) { + return InteractionResultHolder.pass(stack); + } + + Vec3 viewVector = player.getViewVector(1.0F); + for (Entity entity : level.getEntities(player, player.getBoundingBox().expandTowards(viewVector.scale(5.0D)).inflate(1.0D), ENTITY_PREDICATE)) { + if (entity.getBoundingBox().inflate(entity.getPickRadius()).contains(player.getEyePosition())) { + return InteractionResultHolder.pass(stack); + } + } + + if (hitResult.getType() != HitResult.Type.BLOCK) { + return InteractionResultHolder.pass(stack); + } + + HoverboardEntity hoverboard = new HoverboardEntity(this.entityType, level); + Vec3 spawnPos = hitResult.getLocation(); + hoverboard.moveTo(spawnPos.x, spawnPos.y, spawnPos.z, player.getYRot(), 0.0F); + hoverboard.setColor(this.color); + if (!level.noCollision(hoverboard, hoverboard.getBoundingBox())) { + return InteractionResultHolder.fail(stack); + } + + if (!level.isClientSide) { + level.addFreshEntity(hoverboard); + level.gameEvent(player, GameEvent.ENTITY_PLACE, hitResult.getLocation()); + if (!player.getAbilities().instabuild) { + stack.shrink(1); + } + } + + player.awardStat(Stats.ITEM_USED.get(this)); + return InteractionResultHolder.sidedSuccess(stack, level.isClientSide()); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/ManticoreWingsItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/ManticoreWingsItem.java new file mode 100644 index 00000000..a3bef983 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/ManticoreWingsItem.java @@ -0,0 +1,70 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.content.entity.ManticoreEntity; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import net.minecraft.ChatFormatting; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ElytraItem; +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 ManticoreWingsItem extends ElytraItem { + private static final ResourceLocation REPAIR_MATERIAL_ID = new ResourceLocation("antarchy", "manticore_wing"); + private static final int DAMAGE_COOLDOWN_TICKS = 10; + private static final double MIN_COLLISION_SPEED = 0.2D; + private static final float COLLISION_DAMAGE_PER_BLOCK_PER_TICK = 8.0F; + private static final float MAX_COLLISION_DAMAGE = 20.0F; + private static final Map LAST_COLLISION_DAMAGE = new ConcurrentHashMap<>(); + + public ManticoreWingsItem(Properties properties) { + super(properties); + } + + @Override + public boolean isValidRepairItem(ItemStack toRepair, ItemStack repair) { + return BuiltInRegistries.ITEM.getOptional(REPAIR_MATERIAL_ID).map(repair::is).orElse(false); + } + + @Override + public void inventoryTick(ItemStack stack, Level level, net.minecraft.world.entity.Entity entity, int slotId, boolean selected) { + super.inventoryTick(stack, level, entity, slotId, selected); + if (!(entity instanceof Player player) || level.isClientSide || !player.isFallFlying() + || player.getItemBySlot(EquipmentSlot.CHEST) != stack) { + return; + } + long gameTime = level.getGameTime(); + double speed = player.getDeltaMovement().length(); + if (speed < MIN_COLLISION_SPEED) { + return; + } + float collisionDamage = Math.min(MAX_COLLISION_DAMAGE, + Math.max(1.0F, (float) speed * COLLISION_DAMAGE_PER_BLOCK_PER_TICK)); + for (LivingEntity target : level.getEntitiesOfClass(LivingEntity.class, player.getBoundingBox().inflate(0.45D), living -> + living != player && living.isAlive() && !player.isAlliedTo(living) && !living.isAlliedTo(player))) { + long availableAt = LAST_COLLISION_DAMAGE.getOrDefault(target.getUUID(), 0L); + if (availableAt <= gameTime && target.hurt(level.damageSources().playerAttack(player), collisionDamage)) { + LAST_COLLISION_DAMAGE.put(target.getUUID(), gameTime + DAMAGE_COOLDOWN_TICKS); + } + } + } + + public static boolean isWearingManticoreWings(LivingEntity entity) { + return entity != null && entity.getItemBySlot(EquipmentSlot.CHEST).getItem() instanceof ManticoreWingsItem; + } + + @Override + public void appendHoverText(ItemStack stack, Level level, List tooltipComponents, TooltipFlag tooltipFlag) { + tooltipComponents.add(Component.translatable("tooltip.antarchy.manticore_wings").withStyle(ChatFormatting.GRAY)); + super.appendHoverText(stack, level, tooltipComponents, tooltipFlag); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/PortalGunItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/PortalGunItem.java new file mode 100644 index 00000000..98c6f4d9 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/PortalGunItem.java @@ -0,0 +1,527 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.block.entity.PortalGunPortalBaseBlockEntity; +import com.craisinlord.antarchy.content.block.entity.PortalGunPortalMasterBlockEntity; +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.PortalGunPlacement; +import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity; +import com.craisinlord.antarchy.content.portalgun.PortalGunProjectileEntity; +import com.craisinlord.antarchy.content.portalgun.PortalGunSavedData; +import java.util.HashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; +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.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.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.entity.BlockEntity; +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.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.Animation; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.core.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 String MOON_SIDE_TAG = "antarchy.portal_gun_moon_side"; + public static final String GUN_ID_TAG = "antarchy.portal_gun_id"; + private static final ResourceLocation MODEL_LOCATION = new ResourceLocation(Antarchy.MODID, "geo/portal_gun.geo.json"); + private static final ResourceLocation TEXTURE_LOCATION = new ResourceLocation(Antarchy.MODID, "textures/models/item/portal_gun.png"); + private static final ResourceLocation ANIMATION_LOCATION = new ResourceLocation(Antarchy.MODID, "animations/portal_gun.animation.json"); + private final Supplier> portalType; + private final Supplier> blackHoleType; + private final Supplier> projectileType; + private final Supplier portalMasterBlock; + private final Supplier portalBaseBlock; + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + + public PortalGunItem( + Item.Properties properties, + Supplier> portalType, + Supplier> blackHoleType, + Supplier> projectileType, + Supplier portalMasterBlock, + Supplier portalBaseBlock + ) { + super(properties); + this.portalType = portalType; + this.blackHoleType = blackHoleType; + this.projectileType = projectileType; + this.portalMasterBlock = portalMasterBlock; + this.portalBaseBlock = portalBaseBlock; + 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); + this.setMoonSide(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) { + if (this.raycast(level, player).getType() == HitResult.Type.MISS) { + if (this.tryArmMoonShot(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.triggerFireAnimation(level, player, stack); + this.setLastSide(stack, side); + stack.hurtAndBreak(1, player, p -> p.broadcastBreakEvent(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"; + 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); + this.spawnProjectile(level, player, stack, side); + return true; + } + + public void handlePortalImpact(ServerLevel level, Player player, ItemStack stack, PortalGunPortalEntity.PortalSide side, BlockHitResult hitResult, Vec3 impactPos) { + PortalGunPortalEntity existing = this.findPlacedPortal(level, player.getUUID(), side); + PortalGunPlacement placement = this.findPlacement(level, player, side, hitResult, existing); + if (placement == null) { + Antarchy.LOGGER.info("Portal gun placement failed owner={} side={} hitBlock={} hitFace={} hitLocation={}", player.getUUID(), side, hitResult.getBlockPos(), hitResult.getDirection(), hitResult.getLocation()); + level.playSound(null, impactPos.x, impactPos.y, impactPos.z, PortalGunPortalEntity.sound("portal_gun_invalid_surface", SoundEvents.DISPENSER_FAIL), SoundSource.PLAYERS, 0.55F, 1.0F); + return; + } + if (existing != null) { + Antarchy.LOGGER.info("Portal gun replacing existing portal owner={} side={} oldPortal={}", player.getUUID(), side, existing.getUUID()); + existing.discard(); + } + if (this.isMoonSideArmed(stack, side)) { + this.setMoonSide(stack, null); + } + if (this.isMoonSideArmed(stack, this.otherSide(side))) { + this.spawnBlackHole(level, player, stack, side, placement.center()); + return; + } + PortalGunPortalEntity portal = new PortalGunPortalEntity(this.portalType.get(), level); + portal.configure(player.getUUID(), side, placement); + portal.moveTo(placement.center().x, placement.center().y, placement.center().z, placement.yaw(), 0.0F); + if (!this.placePortalBlocks(level, player.getUUID(), side, portal, placement)) { + Antarchy.LOGGER.info("Portal gun block placement failed owner={} side={} portal={} center={} facing={} up={} master={} base={}", player.getUUID(), side, portal.getUUID(), placement.center(), placement.facing(), placement.upAxis(), placement.masterPos(), placement.basePos()); + level.playSound(null, impactPos.x, impactPos.y, impactPos.z, PortalGunPortalEntity.sound("portal_gun_invalid_surface", SoundEvents.DISPENSER_FAIL), SoundSource.PLAYERS, 0.55F, 1.0F); + return; + } + level.addFreshEntity(portal); + PortalGunSavedData.setPortal(level.getServer(), player.getUUID(), side, portal.getUUID()); + Antarchy.LOGGER.info("Portal gun portal placed owner={} side={} portal={} center={} facing={} up={} width={} master={} base={}", player.getUUID(), side, portal.getUUID(), placement.center(), placement.facing(), placement.upAxis(), placement.widthAxis(), placement.masterPos(), placement.basePos()); + PortalGunPortalEntity other = this.findCounterpart(level, player.getUUID(), side); + if (other != null) { + portal.linkTo(other); + other.linkTo(portal); + this.syncPortalBlocks(level, portal); + this.syncPortalBlocks(level, other); + Antarchy.LOGGER.info("Portal gun portals linked owner={} placedSide={} placedPortal={} otherPortal={} otherSide={}", player.getUUID(), side, portal.getUUID(), other.getUUID(), other.getPortalSide()); + } else { + Antarchy.LOGGER.info("Portal gun portal waiting for counterpart owner={} side={} portal={}", player.getUUID(), side, portal.getUUID()); + } + String openPath = side == PortalGunPortalEntity.PortalSide.BLUE ? "portal_open_blue" : "portal_open_orange"; + 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); + } + + public ItemStack findMatchingGunStack(Player player, UUID gunId) { + ItemStack mainHand = player.getMainHandItem(); + if (this.matchesGunId(mainHand, gunId)) { + return mainHand; + } + ItemStack offhand = player.getOffhandItem(); + if (this.matchesGunId(offhand, gunId)) { + return offhand; + } + for (int slot = 0; slot < player.getInventory().getContainerSize(); slot++) { + ItemStack stack = player.getInventory().getItem(slot); + if (this.matchesGunId(stack, gunId)) { + return stack; + } + } + return ItemStack.EMPTY; + } + + private boolean tryArmMoonShot(ServerLevel level, Player player, ItemStack stack, PortalGunPortalEntity.PortalSide side) { + if (!level.dimensionType().hasSkyLight() || !level.isNight() || player.getXRot() > -40.0F) { + return false; + } + PortalGunPortalEntity existing = this.findPlacedPortal(level, player.getUUID(), side); + if (existing != null) { + existing.discard(); + } + this.setMoonSide(stack, side); + this.setLastSide(stack, side); + this.triggerFireAnimation(level, player, stack); + stack.hurtAndBreak(1, player, p -> p.broadcastBreakEvent(EquipmentSlot.MAINHAND)); + player.awardStat(Stats.ITEM_USED.get(this)); + player.getCooldowns().addCooldown(this, 6); + level.playSound(null, player.getX(), player.getY(), player.getZ(), PortalGunPortalEntity.sound(side == PortalGunPortalEntity.PortalSide.BLUE ? "portal_gun_fire_blue" : "portal_gun_fire_orange", SoundEvents.BEACON_ACTIVATE), SoundSource.PLAYERS, 0.65F, side == PortalGunPortalEntity.PortalSide.BLUE ? 1.15F : 0.88F); + this.spawnShotTrail(level, player, player.getEyePosition().add(player.getLookAngle().scale(64.0D)), side); + return true; + } + + private boolean spawnBlackHole(ServerLevel level, Player player, ItemStack stack, PortalGunPortalEntity.PortalSide side, Vec3 spawnPos) { + this.setMoonSide(stack, null); + 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); + 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); + 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 void spawnProjectile(ServerLevel level, Player player, ItemStack stack, PortalGunPortalEntity.PortalSide side) { + UUID gunId = this.ensureGunId(stack); + PortalGunProjectileEntity projectile = new PortalGunProjectileEntity(this.projectileType.get(), player, level); + projectile.configure(side, gunId, stack); + Vec3 look = player.getLookAngle(); + Vec3 start = player.getEyePosition().add(look.scale(0.4D)); + projectile.setPos(start.x, start.y, start.z); + projectile.setDeltaMovement(look.scale(2.5D)); + level.addFreshEntity(projectile); + } + + 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 PortalGunPortalEntity findPlacedPortal(ServerLevel level, UUID owner, PortalGunPortalEntity.PortalSide side) { + Optional portalId = PortalGunSavedData.getPortalId(level.getServer(), owner, side); + if (portalId.isEmpty()) { + return null; + } + Entity entity = level.getEntity(portalId.get()); + return entity instanceof PortalGunPortalEntity portal ? portal : null; + } + + private PortalGunPortalEntity.PortalSide otherSide(PortalGunPortalEntity.PortalSide side) { + return side == PortalGunPortalEntity.PortalSide.BLUE ? PortalGunPortalEntity.PortalSide.ORANGE : PortalGunPortalEntity.PortalSide.BLUE; + } + + 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 PortalGunPlacement findPlacement(Level level, Player player, PortalGunPortalEntity.PortalSide side, BlockHitResult hitResult, PortalGunPortalEntity replacingPortal) { + Direction facing = hitResult.getDirection(); + Direction heightAxis = this.resolveUpAxis(player, facing); + Direction widthAxis = PortalGunPlacement.widthAxis(facing, heightAxis); + float yaw = PortalGunPlacement.yawFor(facing, heightAxis); + BlockPos hitPos = hitResult.getBlockPos(); + Vec3 hitLocation = hitResult.getLocation(); + UUID replacingPortalId = replacingPortal == null ? null : replacingPortal.getUUID(); + PortalGunPlacement bestPlacement = null; + double bestScore = Double.MAX_VALUE; + for (int widthOffset = -3; widthOffset <= 3; widthOffset++) { + for (int heightOffset = -4; heightOffset <= 3; heightOffset++) { + BlockPos supportOrigin = hitPos.relative(widthAxis, widthOffset).relative(heightAxis, heightOffset); + if (!this.canPlaceAt(level, player.getUUID(), side, supportOrigin, facing, heightAxis, replacingPortalId)) { + continue; + } + BlockPos masterPos = supportOrigin.relative(facing); + BlockPos basePos = masterPos.relative(heightAxis); + BlockPos[] portalSpots = new BlockPos[] {masterPos, basePos}; + Vec3 firstCellCenter = masterPos.getCenter(); + Vec3 center = firstCellCenter + .add(Vec3.atLowerCornerOf(heightAxis.getNormal()).scale(0.5D)) + .subtract(Vec3.atLowerCornerOf(facing.getNormal()).scale(0.5D)); + Vec3 local = hitLocation.subtract(center); + double widthLocal = local.dot(Vec3.atLowerCornerOf(widthAxis.getNormal())); + double heightLocal = local.dot(Vec3.atLowerCornerOf(heightAxis.getNormal())); + double depthLocal = local.dot(Vec3.atLowerCornerOf(facing.getNormal())); + double widthDistance = Math.max(0.0D, Math.abs(widthLocal) - 0.5D); + double heightDistance = Math.max(0.0D, Math.abs(heightLocal) - 1.0D); + double score = widthDistance * widthDistance + + heightDistance * heightDistance + + Math.abs(depthLocal) * 0.25D + + supportOrigin.distSqr(hitPos) * 0.12D + + Math.abs(widthOffset) * 0.04D + + Math.abs(heightOffset) * 0.025D + + (widthOffset != 0 || heightOffset != 0 ? 0.02D : 0.0D); + if (score < bestScore) { + bestScore = score; + Set compensatedSpots = new HashSet<>(); + if (widthOffset != 0 || heightOffset != 0) { + compensatedSpots.add(hitPos.relative(facing)); + compensatedSpots.add(masterPos); + compensatedSpots.add(basePos); + compensatedSpots.add(supportOrigin); + compensatedSpots.add(basePos.relative(facing.getOpposite())); + } + bestPlacement = new PortalGunPlacement(center, facing, heightAxis, widthAxis, yaw, supportOrigin, masterPos, basePos, portalSpots, compensatedSpots); + } + } + } + return bestPlacement; + } + + private Direction resolveUpAxis(Player player, Direction facing) { + if (facing.getAxis() != Direction.Axis.Y) { + return Direction.UP; + } + Direction horizontal = player.getDirection(); + if (horizontal.getAxis() == Direction.Axis.Y) { + return Direction.NORTH; + } + return horizontal.getOpposite(); + } + + private boolean canPlaceAt(Level level, UUID ownerId, PortalGunPortalEntity.PortalSide side, BlockPos supportOrigin, Direction facing, Direction heightAxis, UUID replacingPortalId) { + 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 (!this.isPortalSpaceAvailable(level, airPos, airState, ownerId, side, replacingPortalId)) { + return false; + } + if (!fluidState.isEmpty()) { + return false; + } + } + return true; + } + + private boolean isPortalSpaceAvailable(Level level, BlockPos pos, BlockState state, UUID ownerId, PortalGunPortalEntity.PortalSide side, UUID replacingPortalId) { + if (state.isAir() || state.canBeReplaced()) { + return true; + } + BlockEntity blockEntity = level.getBlockEntity(pos); + if (blockEntity instanceof PortalGunPortalMasterBlockEntity master) { + return ownerId != null + && ownerId.equals(master.getOwnerId()) + && master.getSide() == side + && (replacingPortalId == null || replacingPortalId.equals(master.getPortalId())); + } + if (blockEntity instanceof PortalGunPortalBaseBlockEntity base) { + return ownerId != null + && ownerId.equals(base.getOwnerId()) + && base.getSide() == side + && (replacingPortalId == null || replacingPortalId.equals(base.getPortalId())); + } + return false; + } + + private boolean placePortalBlocks(ServerLevel level, UUID ownerId, PortalGunPortalEntity.PortalSide side, PortalGunPortalEntity portal, PortalGunPlacement placement) { + if (!level.setBlock(placement.masterPos(), this.portalMasterBlock.get().defaultBlockState(), 3)) { + return false; + } + if (!level.setBlock(placement.basePos(), this.portalBaseBlock.get().defaultBlockState(), 3)) { + level.setBlock(placement.masterPos(), Blocks.AIR.defaultBlockState(), 3); + return false; + } + if (!(level.getBlockEntity(placement.masterPos()) instanceof PortalGunPortalMasterBlockEntity master) || !(level.getBlockEntity(placement.basePos()) instanceof PortalGunPortalBaseBlockEntity base)) { + level.setBlock(placement.masterPos(), Blocks.AIR.defaultBlockState(), 3); + level.setBlock(placement.basePos(), Blocks.AIR.defaultBlockState(), 3); + return false; + } + master.configure(ownerId, portal.getUUID(), side, placement.facing(), placement.upAxis(), placement.basePos(), placement.portalSpots(), placement.compensatedSpots(), level.getServer().getTickCount()); + base.configure(ownerId, portal.getUUID(), side, placement.masterPos()); + return true; + } + + private void syncPortalBlocks(ServerLevel level, PortalGunPortalEntity portal) { + if (level.getBlockEntity(portal.getMasterPos()) instanceof PortalGunPortalMasterBlockEntity master) { + master.updatePair(portal.getLinkedPortalId(), portal.getPairTime()); + } + if (level.getBlockEntity(portal.getBasePos()) instanceof PortalGunPortalBaseBlockEntity base) { + base.updatePair(portal.getLinkedPortalId(), portal.getPairTime()); + } + } + + private void setLastSide(ItemStack stack, PortalGunPortalEntity.PortalSide side) { + if (side == null) { + stack.getOrCreateTag().remove(LAST_SIDE_TAG); + return; + } + stack.getOrCreateTag().putString(LAST_SIDE_TAG, side.name()); + } + + private void setMoonSide(ItemStack stack, PortalGunPortalEntity.PortalSide side) { + if (side == null) { + stack.getOrCreateTag().remove(MOON_SIDE_TAG); + return; + } + stack.getOrCreateTag().putString(MOON_SIDE_TAG, side.name()); + } + + private PortalGunPortalEntity.PortalSide getLastSide(ItemStack stack) { + net.minecraft.nbt.CompoundTag customData = stack.getTag(); + if (customData == null) { + return null; + } + String sideName = customData.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 boolean isMoonSideArmed(ItemStack stack, PortalGunPortalEntity.PortalSide side) { + net.minecraft.nbt.CompoundTag customData = stack.getTag(); + if (customData == null) { + return false; + } + String sideName = customData.getString(MOON_SIDE_TAG); + return side.name().equals(sideName); + } + + private UUID ensureGunId(ItemStack stack) { + net.minecraft.nbt.CompoundTag customData = stack.getTag(); + if (customData != null && customData.hasUUID(GUN_ID_TAG)) { + return customData.getUUID(GUN_ID_TAG); + } + UUID gunId = UUID.randomUUID(); + stack.getOrCreateTag().putUUID(GUN_ID_TAG, gunId); + return gunId; + } + + private boolean matchesGunId(ItemStack stack, UUID gunId) { + if (stack.isEmpty() || stack.getItem() != this) { + return false; + } + net.minecraft.nbt.CompoundTag customData = stack.getTag(); + return customData != null && customData.hasUUID(GUN_ID_TAG) && gunId.equals(customData.getUUID(GUN_ID_TAG)); + } + + 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, Level level, 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; + } + + 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; + } + }); + } + + public void createRenderer(Consumer consumer) { + createGeoRenderer(provider -> consumer.accept(provider.getGeoItemRenderer())); + } + + public java.util.function.Supplier getRenderProvider() { + return () -> { final Object[] value = new Object[1]; createGeoRenderer(provider -> value[0] = provider.getGeoItemRenderer()); return value[0]; }; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalAssailantArmorItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalAssailantArmorItem.java new file mode 100644 index 00000000..feb5cdf6 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalAssailantArmorItem.java @@ -0,0 +1,142 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.item.royal.RoyalGearHelper; +import java.util.List; +import net.minecraft.ChatFormatting; +import net.minecraft.core.Holder; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.ai.attributes.AttributeModifier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ArmorItem; +import net.minecraft.world.item.ArmorMaterial; +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 class RoyalAssailantArmorItem extends ArmorItem { + private final Type armorType; + + public RoyalAssailantArmorItem(ArmorMaterial material, Type type, Properties properties) { + super(material, type, properties.stacksTo(1)); + this.armorType = type; + } + + public Type getArmorType() { + return this.armorType; + } + + @Override + public int getDefense() { + return switch (this.armorType) { + case HELMET -> AntarchySettings.royalAssailantHelmetArmorValue(); + case CHESTPLATE -> AntarchySettings.royalAssailantChestplateArmorValue(); + case LEGGINGS -> AntarchySettings.royalAssailantLeggingsArmorValue(); + case BOOTS -> AntarchySettings.royalAssailantBootsArmorValue(); + }; + } + + @Override + public float getToughness() { + return (float) AntarchySettings.royalAssailantArmorToughness(); + } + + private double getDoubleDamageChance() { + return switch (this.armorType) { + case HELMET -> AntarchySettings.royalAssailantHelmetDoubleDamageChance(); + case CHESTPLATE -> AntarchySettings.royalAssailantChestplateDoubleDamageChance(); + case LEGGINGS -> AntarchySettings.royalAssailantLeggingsDoubleDamageChance(); + case BOOTS -> AntarchySettings.royalAssailantBootsDoubleDamageChance(); + }; + } + + @Override + public com.google.common.collect.Multimap getDefaultAttributeModifiers(EquipmentSlot slot) { + return super.getDefaultAttributeModifiers(slot); + } + + @Override + public boolean isEnchantable(ItemStack stack) { + return stack.getCount() == 1; + } + + @Override + public int getEnchantmentValue() { + return AntarchySettings.royalArmorEnchantability(); + } + + @Override + public void inventoryTick(ItemStack stack, Level level, Entity entity, int slotId, boolean isSelected) { + super.inventoryTick(stack, level, entity, slotId, isSelected); + RoyalGearHelper.ensureRoyalArmorEnchantments(stack, level.registryAccess()); + + if (level.isClientSide || this.armorType != Type.CHESTPLATE || !(entity instanceof LivingEntity living)) { + return; + } + if (!isWearingChestplate(living)) { + clearToggledInversion(living); + } + } + + @Override + public void onCraftedBy(ItemStack stack, Level level, Player player) { + super.onCraftedBy(stack, level, player); + RoyalGearHelper.ensureRoyalArmorEnchantments(stack, level.registryAccess()); + } + + @Override + public void appendHoverText(ItemStack stack, Level level, List tooltipComponents, TooltipFlag tooltipFlag) { + int pct = (int) Math.round(getDoubleDamageChance() * 100); + tooltipComponents.add(Component.translatable("tooltip.antarchy.nightmare_armor_double_damage", pct).withStyle(ChatFormatting.LIGHT_PURPLE)); + if (this.armorType == Type.CHESTPLATE) { + tooltipComponents.add(Component.translatable("tooltip.antarchy.royal_assailant_chestplate.invert").withStyle(ChatFormatting.AQUA)); + } + if (this.armorType == Type.BOOTS) { + tooltipComponents.add(Component.translatable("tooltip.antarchy.royal_assailant_boots.fall").withStyle(ChatFormatting.AQUA)); + } + super.appendHoverText(stack, level, tooltipComponents, tooltipFlag); + } + + public static boolean isWearingChestplate(LivingEntity entity) { + return entity.getItemBySlot(EquipmentSlot.CHEST).getItem() instanceof RoyalAssailantArmorItem armor + && armor.armorType == Type.CHESTPLATE; + } + + public static void toggleInversion(ServerPlayer player) { + if (!isWearingChestplate(player)) { + return; + } + MobEffectInstance existing = player.getEffect(AntarchyObjects.INVERTED_EFFECT.get()); + if (existing != null && existing.isInfiniteDuration()) { + Antarchy.LOGGER.info( + "[antarchy-gravity] royal chestplate toggling inversion off player={} uuid={} pos=({}, {}, {}) dim={} existingDuration={} gameTime={}", + player.getGameProfile().getName(), player.getUUID(), player.getX(), player.getY(), player.getZ(), + player.level().dimension().location(), existing.getDuration(), player.level().getGameTime() + ); + player.removeEffect(AntarchyObjects.INVERTED_EFFECT.get()); + } else { + Antarchy.LOGGER.info( + "[antarchy-gravity] royal chestplate toggling inversion on player={} uuid={} pos=({}, {}, {}) dim={} existingDuration={} gameTime={}", + player.getGameProfile().getName(), player.getUUID(), player.getX(), player.getY(), player.getZ(), + player.level().dimension().location(), existing != null ? existing.getDuration() : -1, player.level().getGameTime() + ); + player.addEffect(new MobEffectInstance(AntarchyObjects.INVERTED_EFFECT.get(), -1, 0, false, false, true)); + } + } + + private static void clearToggledInversion(LivingEntity entity) { + MobEffectInstance existing = entity.getEffect(AntarchyObjects.INVERTED_EFFECT.get()); + if (existing != null && existing.isInfiniteDuration()) { + entity.removeEffect(AntarchyObjects.INVERTED_EFFECT.get()); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalAssailantBattleAxeItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalAssailantBattleAxeItem.java new file mode 100644 index 00000000..1f899596 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalAssailantBattleAxeItem.java @@ -0,0 +1,83 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.content.effect.RoyalEffectHooks; +import com.craisinlord.antarchy.content.entity.royal.RoyalAssailantBlackHoleEntity; +import com.craisinlord.antarchy.config.AntarchySettings; +import java.util.List; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.ai.attributes.AttributeModifier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.item.AxeItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Tier; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; + +public class RoyalAssailantBattleAxeItem extends AxeItem { + private static final int BLACK_HOLE_COOLDOWN_TICKS = 20 * 20; + private static final int DILATED_DURATION_TICKS = 100; + private final Tier tier; + + public RoyalAssailantBattleAxeItem(Tier tier, Item.Properties properties) { + super(tier, (float) AntarchySettings.royalAssailantBattleAxeAttackDamage(), (float) AntarchySettings.royalAssailantBattleAxeAttackSpeed(), properties); + this.tier = tier; + } + + @Override + public boolean isEnchantable(ItemStack stack) { + return stack.getCount() == 1; + } + + @Override + public int getEnchantmentValue() { + return AntarchySettings.royalWeaponEnchantability(); + } + + @Override + public void appendHoverText(ItemStack stack, Level level, List tooltipComponents, TooltipFlag tooltipFlag) { + tooltipComponents.add(Component.translatable("tooltip.antarchy.royal_assailant_battleaxe.black_hole") + .withStyle(ChatFormatting.GOLD)); + tooltipComponents.add(Component.translatable("tooltip.antarchy.royal_assailant_battleaxe.dilation") + .withStyle(ChatFormatting.GOLD)); + super.appendHoverText(stack, level, tooltipComponents, tooltipFlag); + } + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + if (player.getCooldowns().isOnCooldown(this)) { + return InteractionResultHolder.fail(stack); + } + if (level.isClientSide) { + return InteractionResultHolder.sidedSuccess(stack, true); + } + if (level instanceof ServerLevel serverLevel) { + RoyalAssailantBlackHoleEntity blackHole = RoyalAssailantBlackHoleEntity.create( + serverLevel, + player.position().add(player.getLookAngle().normalize().scale(2.0D)), + player.getUUID()); + serverLevel.addFreshEntity(blackHole); + player.getCooldowns().addCooldown(this, BLACK_HOLE_COOLDOWN_TICKS); + return InteractionResultHolder.success(stack); + } + return InteractionResultHolder.pass(stack); + } + + @Override + public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) { + boolean hurt = super.hurtEnemy(stack, target, attacker); + if (hurt && attacker instanceof Player player && !attacker.level().isClientSide + && RoyalEffectHooks.dilatedHolder() != null) { + target.addEffect(new MobEffectInstance(RoyalEffectHooks.dilatedHolder(), DILATED_DURATION_TICKS), player); + } + return hurt; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalAssailantStaffItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalAssailantStaffItem.java new file mode 100644 index 00000000..5d891b36 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalAssailantStaffItem.java @@ -0,0 +1,113 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.content.entity.portal.DimensionalTearEntity; +import com.craisinlord.antarchy.content.client.model.ResourceBackedGeoItemModel; +import com.craisinlord.antarchy.content.client.renderer.AnimatedHeldItemRenderer; +import java.util.List; +import java.util.function.Consumer; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +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.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; +import software.bernie.geckolib.animatable.GeoItem; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.core.animation.RawAnimation; +import software.bernie.geckolib.util.GeckoLibUtil; + +public final class RoyalAssailantStaffItem extends Item implements GeoItem { + private static final int COOLDOWN_TICKS = 20 * 30; + private static final int TEAR_LIFETIME_TICKS = 20 * 6; + private static final ResourceLocation MODEL_LOCATION = new ResourceLocation("antarchy", "geo/royal_assailant_staff.geo.json"); + private static final ResourceLocation TEXTURE_LOCATION = new ResourceLocation("antarchy", "textures/models/item/royal_assailant_staff.png"); + private static final ResourceLocation ANIMATION_LOCATION = new ResourceLocation("antarchy", "animations/royal_assailant_staff.animation.json"); + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + + public RoyalAssailantStaffItem(Properties properties) { + super(properties); + GeoItem.registerSyncedAnimatable(this); + } + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + if (player.getCooldowns().isOnCooldown(this)) { + return InteractionResultHolder.fail(stack); + } + if (level.isClientSide) { + return InteractionResultHolder.sidedSuccess(stack, true); + } + ServerLevel serverLevel = (ServerLevel) level; + Vec3 forward = player.getLookAngle().normalize(); + Vec3 perpendicular = new Vec3(-forward.z, 0.0D, forward.x); + if (perpendicular.lengthSqr() < 0.01D) { + perpendicular = new Vec3(1.0D, 0.0D, 0.0D); + } + perpendicular = perpendicular.normalize().scale(4.0D); + Vec3 center = player.position().add(0.0D, player.getBbHeight() + 2.0D, 0.0D); + DimensionalTearEntity first = DimensionalTearEntity.createStaffSummonTear(serverLevel, center.add(perpendicular), player.getYRot(), TEAR_LIFETIME_TICKS, player.getUUID(), 2); + DimensionalTearEntity second = DimensionalTearEntity.createStaffSummonTear(serverLevel, center.subtract(perpendicular), player.getYRot() + 180.0F, TEAR_LIFETIME_TICKS, player.getUUID(), 2); + first.linkTo(second); + second.linkTo(first); + serverLevel.addFreshEntity(first); + serverLevel.addFreshEntity(second); + player.getCooldowns().addCooldown(this, COOLDOWN_TICKS); + triggerAnim(player, GeoItem.getOrAssignId(stack, serverLevel), "use_controller", "use"); + level.playSound(null, player.blockPosition(), SoundEvents.RESPAWN_ANCHOR_CHARGE, SoundSource.HOSTILE, 1.0F, 0.75F); + return InteractionResultHolder.success(stack); + } + + 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; + } + }); + } + + public void createRenderer(Consumer consumer) { + createGeoRenderer(provider -> consumer.accept(provider.getGeoItemRenderer())); + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } + + @Override + public void appendHoverText(ItemStack stack, Level level, List tooltipComponents, TooltipFlag tooltipFlag) { + tooltipComponents.add(Component.translatable("tooltip.antarchy.royal_assailant_staff").withStyle(ChatFormatting.LIGHT_PURPLE)); + super.appendHoverText(stack, level, tooltipComponents, tooltipFlag); + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "idle_controller", state -> + state.setAndContinue(RawAnimation.begin().thenLoop("idle")))); + controllers.add(new AnimationController<>(this, "use_controller", state -> PlayState.STOP) + .triggerableAnim("use", RawAnimation.begin().thenPlay("use"))); + } + + public java.util.function.Supplier getRenderProvider() { + return () -> { final Object[] value = new Object[1]; createGeoRenderer(provider -> value[0] = provider.getGeoItemRenderer()); return value[0]; }; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalBoatOnlyItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalBoatOnlyItem.java new file mode 100644 index 00000000..2ad9ae00 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalBoatOnlyItem.java @@ -0,0 +1,31 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.content.entity.RoyalBoatEntity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.vehicle.Boat; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; + +public class RoyalBoatOnlyItem extends OuranwoodBoatItem { + private final EntityType entityType; + + public RoyalBoatOnlyItem(EntityType entityType, Properties properties) { + super(properties); + this.entityType = entityType; + } + + @Override + protected Boat createBoat(Level level, HitResult hitResult, ItemStack stack, Player player) { + Vec3 pos = hitResult.getLocation(); + RoyalBoatEntity boat = new RoyalBoatEntity(this.entityType, level); + boat.setPos(pos.x, pos.y, pos.z); + boat.xo = pos.x; + boat.yo = pos.y; + boat.zo = pos.z; + this.applyDefaultStackConfig(level, stack, player, boat); + return boat; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalChestBoatItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalChestBoatItem.java new file mode 100644 index 00000000..e22aac82 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalChestBoatItem.java @@ -0,0 +1,31 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.content.entity.RoyalChestBoatEntity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.vehicle.Boat; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; + +public class RoyalChestBoatItem extends OuranwoodBoatItem { + private final EntityType entityType; + + public RoyalChestBoatItem(EntityType entityType, Properties properties) { + super(properties); + this.entityType = entityType; + } + + @Override + protected Boat createBoat(Level level, HitResult hitResult, ItemStack stack, Player player) { + Vec3 pos = hitResult.getLocation(); + RoyalChestBoatEntity boat = new RoyalChestBoatEntity(this.entityType, level); + boat.setPos(pos.x, pos.y, pos.z); + boat.xo = pos.x; + boat.yo = pos.y; + boat.zo = pos.z; + this.applyDefaultStackConfig(level, stack, player, boat); + return boat; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianArmorItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianArmorItem.java new file mode 100644 index 00000000..58ad0afa --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianArmorItem.java @@ -0,0 +1,68 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.item.royal.RoyalGearHelper; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.ai.attributes.AttributeModifier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ArmorItem; +import net.minecraft.world.item.ArmorMaterial; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; + +public class RoyalGuardianArmorItem extends ArmorItem { + private final Type armorType; + + public RoyalGuardianArmorItem(ArmorMaterial material, Type type, Properties properties) { + super(material, type, properties.stacksTo(1)); + this.armorType = type; + } + + public Type getArmorType() { + return this.armorType; + } + + @Override + public int getDefense() { + return switch (this.armorType) { + case HELMET -> AntarchySettings.royalGuardianHelmetArmorValue(); + case CHESTPLATE -> AntarchySettings.royalGuardianChestplateArmorValue(); + case LEGGINGS -> AntarchySettings.royalGuardianLeggingsArmorValue(); + case BOOTS -> AntarchySettings.royalGuardianBootsArmorValue(); + }; + } + + @Override + public float getToughness() { + return (float) AntarchySettings.royalGuardianArmorToughness(); + } + + @Override + public com.google.common.collect.Multimap getDefaultAttributeModifiers(EquipmentSlot slot) { + return super.getDefaultAttributeModifiers(slot); + } + + @Override + public boolean isEnchantable(ItemStack stack) { + return stack.getCount() == 1; + } + + @Override + public int getEnchantmentValue() { + return AntarchySettings.royalArmorEnchantability(); + } + + @Override + public void inventoryTick(ItemStack stack, Level level, Entity entity, int slotId, boolean isSelected) { + super.inventoryTick(stack, level, entity, slotId, isSelected); + RoyalGearHelper.ensureRoyalArmorEnchantments(stack, level.registryAccess()); + } + + @Override + public void onCraftedBy(ItemStack stack, Level level, Player player) { + super.onCraftedBy(stack, level, player); + RoyalGearHelper.ensureRoyalArmorEnchantments(stack, level.registryAccess()); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianShieldItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianShieldItem.java new file mode 100644 index 00000000..20bc8a00 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianShieldItem.java @@ -0,0 +1,79 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.content.effect.RoyalEffectEligibility; +import com.craisinlord.antarchy.content.effect.RoyalEffectHooks; +import com.craisinlord.antarchy.config.AntarchySettings; +import java.util.List; +import java.util.Comparator; +import java.util.function.Supplier; +import net.minecraft.core.Holder; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.ShieldItem; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.network.chat.Component; +import net.minecraft.ChatFormatting; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.AABB; + +public class RoyalGuardianShieldItem extends ShieldItem { + private static final int COMMAND_COOLDOWN_TICKS = 20 * 15; + private static final int COMMAND_DURATION_TICKS = 20 * 30; + private static final double COMMAND_RANGE = 16.0D; + private final Supplier repairIngredient; + + public RoyalGuardianShieldItem(Item.Properties properties, Supplier repairIngredient) { + super(properties); + this.repairIngredient = repairIngredient; + } + + @Override + public boolean isValidRepairItem(ItemStack stack, ItemStack repairCandidate) { + return this.repairIngredient.get().test(repairCandidate) || super.isValidRepairItem(stack, repairCandidate); + } + + @Override + public int getEnchantmentValue() { + return AntarchySettings.royalWeaponEnchantability(); + } + + @Override + public void appendHoverText(ItemStack stack, Level level, List tooltipComponents, TooltipFlag tooltipFlag) { + tooltipComponents.add(Component.translatable("tooltip.antarchy.royal_guardian_shield.command") + .withStyle(ChatFormatting.GOLD)); + super.appendHoverText(stack, level, tooltipComponents, tooltipFlag); + } + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + if (player.getCooldowns().isOnCooldown(this)) { + return InteractionResultHolder.fail(stack); + } + if (level.isClientSide) { + return InteractionResultHolder.sidedSuccess(stack, true); + } + net.minecraft.world.effect.MobEffect commanded = RoyalEffectHooks.commandedHolder(); + if (commanded == null) { + return InteractionResultHolder.fail(stack); + } + Mob target = level.getEntitiesOfClass(Mob.class, + new AABB(player.blockPosition()).inflate(COMMAND_RANGE), + mob -> RoyalEffectEligibility.canApplyCommanded(mob)) + .stream() + .min(Comparator.comparingDouble((Mob mob) -> player.distanceToSqr(mob)).thenComparingInt(Mob::getId)) + .orElse(null); + if (target == null || !target.addEffect(new MobEffectInstance(commanded, COMMAND_DURATION_TICKS), player)) { + return InteractionResultHolder.fail(stack); + } + player.getCooldowns().addCooldown(this, COMMAND_COOLDOWN_TICKS); + return InteractionResultHolder.success(stack); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianSwordItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianSwordItem.java new file mode 100644 index 00000000..0589360b --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianSwordItem.java @@ -0,0 +1,76 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.client.model.ResourceBackedGeoItemModel; +import com.craisinlord.antarchy.content.client.renderer.AnimatedHeldItemRenderer; +import java.util.function.Consumer; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.ai.attributes.AttributeModifier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.SwordItem; +import net.minecraft.world.item.Tier; +import software.bernie.geckolib.animatable.GeoItem; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.util.GeckoLibUtil; + +public class RoyalGuardianSwordItem extends SwordItem implements GeoItem { + private static final ResourceLocation MODEL_LOCATION = new ResourceLocation("antarchy", "geo/royal_guardian_sword.geo.json"); + private static final ResourceLocation TEXTURE_LOCATION = new ResourceLocation("antarchy", "textures/item/royal_guardian/royal_guardian_sword.png"); + private static final ResourceLocation ANIMATION_LOCATION = new ResourceLocation("antarchy", "animations/static_item.animation.json"); + private static final ResourceLocation REACH_MODIFIER_ID = new ResourceLocation("antarchy", "royal_guardian_sword_reach"); + private static final ResourceLocation KNOCKBACK_MODIFIER_ID = new ResourceLocation("antarchy", "royal_guardian_sword_knockback"); + private final Tier tier; + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + + public RoyalGuardianSwordItem(Tier tier, Item.Properties properties) { + super(tier, 3, -2.4F, properties); + this.tier = tier; + GeoItem.registerSyncedAnimatable(this); + } + + @Override + public boolean isEnchantable(ItemStack stack) { + return stack.getCount() == 1; + } + + @Override + public int getEnchantmentValue() { + return AntarchySettings.royalWeaponEnchantability(); + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } + + 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; + } + }); + } + + public void createRenderer(Consumer consumer) { + createGeoRenderer(provider -> consumer.accept(provider.getGeoItemRenderer())); + } + + public java.util.function.Supplier getRenderProvider() { + return () -> { final Object[] value = new Object[1]; createGeoRenderer(provider -> value[0] = provider.getGeoItemRenderer()); return value[0]; }; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/TruffaloBoatOnlyItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/TruffaloBoatOnlyItem.java new file mode 100644 index 00000000..985a1b1b --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/TruffaloBoatOnlyItem.java @@ -0,0 +1,31 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.content.entity.TruffaloBoatEntity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.vehicle.Boat; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; + +public class TruffaloBoatOnlyItem extends OuranwoodBoatItem { + private final EntityType entityType; + + public TruffaloBoatOnlyItem(EntityType entityType, Properties properties) { + super(properties); + this.entityType = entityType; + } + + @Override + protected Boat createBoat(Level level, HitResult hitResult, ItemStack stack, Player player) { + Vec3 pos = hitResult.getLocation(); + TruffaloBoatEntity boat = new TruffaloBoatEntity(this.entityType, level); + boat.setPos(pos.x, pos.y, pos.z); + boat.xo = pos.x; + boat.yo = pos.y; + boat.zo = pos.z; + this.applyDefaultStackConfig(level, stack, player, boat); + return boat; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/TruffaloChestBoatItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/TruffaloChestBoatItem.java new file mode 100644 index 00000000..6ddce3c4 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/TruffaloChestBoatItem.java @@ -0,0 +1,31 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.content.entity.TruffaloChestBoatEntity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.vehicle.Boat; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; + +public class TruffaloChestBoatItem extends OuranwoodBoatItem { + private final EntityType entityType; + + public TruffaloChestBoatItem(EntityType entityType, Properties properties) { + super(properties); + this.entityType = entityType; + } + + @Override + protected Boat createBoat(Level level, HitResult hitResult, ItemStack stack, Player player) { + Vec3 pos = hitResult.getLocation(); + TruffaloChestBoatEntity boat = new TruffaloChestBoatEntity(this.entityType, level); + boat.setPos(pos.x, pos.y, pos.z); + boat.xo = pos.x; + boat.yo = pos.y; + boat.zo = pos.z; + this.applyDefaultStackConfig(level, stack, player, boat); + return boat; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/VortexChargeItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/VortexChargeItem.java new file mode 100644 index 00000000..6ae4a1c7 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/VortexChargeItem.java @@ -0,0 +1,50 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.content.entity.vortex.VortexChargeProjectileEntity; +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.EntityType; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; + +import java.util.function.Supplier; + +public class VortexChargeItem extends Item { + private final Supplier> projectileType; + + public VortexChargeItem(Properties properties, + Supplier> projectileType) { + super(properties); + this.projectileType = projectileType; + } + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand usedHand) { + ItemStack itemStack = player.getItemInHand(usedHand); + if (player.getCooldowns().isOnCooldown(this)) { + return InteractionResultHolder.fail(itemStack); + } + + level.playSound(null, player.getX(), player.getY(), player.getZ(), + SoundEvents.SNOWBALL_THROW, SoundSource.NEUTRAL, 0.6F, + 0.8F + level.getRandom().nextFloat() * 0.4F); + + if (!level.isClientSide) { + VortexChargeProjectileEntity projectile = new VortexChargeProjectileEntity(projectileType.get(), player, level); + projectile.shootFromRotation(player, player.getXRot(), player.getYRot(), 0.0F, 1.5F, 1.0F); + level.addFreshEntity(projectile); + if (!player.getAbilities().instabuild) { + itemStack.shrink(1); + } + } + + player.awardStat(Stats.ITEM_USED.get(this)); + player.getCooldowns().addCooldown(this, 20); + return InteractionResultHolder.consume(itemStack); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/VortexLensBlockItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/VortexLensBlockItem.java new file mode 100644 index 00000000..8ee0bed6 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/VortexLensBlockItem.java @@ -0,0 +1,23 @@ +package com.craisinlord.antarchy.content.item; + +import java.util.List; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.Level; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.block.Block; + +public class VortexLensBlockItem extends BlockItem { + public VortexLensBlockItem(Block block, Properties properties) { + super(block, properties); + } + + @Override + public void appendHoverText(ItemStack stack, Level level, List tooltipComponents, TooltipFlag tooltipFlag) { + tooltipComponents.add(Component.translatable("tooltip.antarchy.vortex_lens").withStyle(ChatFormatting.DARK_AQUA)); + super.appendHoverText(stack, level, tooltipComponents, tooltipFlag); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookItem.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookItem.java new file mode 100644 index 00000000..bf2b762f --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookItem.java @@ -0,0 +1,53 @@ +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); + WormHookTetherManager.launch(serverPlayer, hook); + + stack.hurtAndBreak(1, serverPlayer, p -> serverPlayer.broadcastBreakEvent(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, Level level, 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, level, tooltipComponents, tooltipFlag); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookTetherManager.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookTetherManager.java new file mode 100644 index 00000000..5edf26af --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookTetherManager.java @@ -0,0 +1,214 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.content.AntarchySoundEvents; +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. + * + * A tether entry is created the moment the hook is thrown (so the rope can be rendered following + * the flying projectile) and only gains real swing physics once the hook sticks into a block. + */ +public final class WormHookTetherManager { + private static final double MIN_LEN = 2.0D; + private static final double REEL_SPEED = 0.12D; + private static final double REEL_PULL_STRENGTH = 0.16D; + private static final double BREAK_RANGE_MULTIPLIER = 1.5D; + private static final double DEFAULT_BREAK_RANGE = 48.0D; + private static final double SNAP_BUFFER = 4.0D; + private static final double PULL_CORRECTION = 0.35D; + private static final double FLYING_SOUND_MIN_SPEED_SQR = 0.1D * 0.1D; + private static final int FLYING_SOUND_INTERVAL_TICKS = 24; + + 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; + } + + /** Registers the hook the moment it's thrown, purely so the rope can be rendered following it. */ + public static void launch(ServerPlayer player, WormHookProjectileEntity hook) { + clear(player); + TETHERS.put(player.getUUID(), new TetherState(hook.getId())); + WormHookTetherSync.send(player, hook.getId()); + } + + /** Called once the hook sticks into a block; turns the cosmetic tether into real swing physics. */ + public static boolean attach(ServerPlayer player, WormHookProjectileEntity hook) { + TetherState state = TETHERS.get(player.getUUID()); + if (state == null || state.hookEntityId != hook.getId()) { + return false; + } + + double dist = player.getEyePosition().distanceTo(hook.position()); + if (dist < MIN_LEN) { + clear(player); + return false; + } + + state.maxLen = Math.max(MIN_LEN, dist); + state.rope = new WormHookRope(hook.position(), player.getEyePosition()); + 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 (state.rope == null) { + // Hook is still flying; nothing to simulate yet, just tracking it for the render sync. + return; + } + + boolean reeling = player.isShiftKeyDown(); + if (reeling) { + 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); + tickFlyingSound(player, state); + + 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; + } + + Vec3 towardPivot = toPlayer.scale(1.0D / dist); + + // Sneaking actively winds the player in toward the anchor, not just shortening + // the max length (which alone has no effect until the rope goes taut). + if (reeling && dist > MIN_LEN) { + Vec3 pull = towardPivot.scale(-REEL_PULL_STRENGTH); + Vec3 reelMotion = player.getDeltaMovement().add(pull); + reelMotion = new Vec3(reelMotion.x, Mth.clamp(reelMotion.y, -0.6D, 0.6D), reelMotion.z); + player.setDeltaMovement(reelMotion); + player.hurtMarked = true; + player.fallDistance = 0; + } + + 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 motion = player.getDeltaMovement(); + double outward = motion.dot(towardPivot); + if (outward > 0) { + motion = motion.subtract(towardPivot.scale(outward)); + } + + Vec3 correction = towardPivot.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 void tickFlyingSound(ServerPlayer player, TetherState state) { + if (state.flyingSoundCooldown > 0) { + state.flyingSoundCooldown--; + return; + } + if (player.getDeltaMovement().horizontalDistanceSqr() < FLYING_SOUND_MIN_SPEED_SQR) { + return; + } + state.flyingSoundCooldown = FLYING_SOUND_INTERVAL_TICKS; + player.level().playSound(null, player.blockPosition(), AntarchySoundEvents.WORM_HOOK_FLYING.get(), + SoundSource.PLAYERS, 0.6F, 1.0F); + } + + private static boolean isValid(ServerPlayer player, WormHookProjectileEntity hook, TetherState state) { + double breakRange = (state.rope == null ? DEFAULT_BREAK_RANGE : state.maxLen) * BREAK_RANGE_MULTIPLIER; + return player.isAlive() + && hook != null + && hook.isAlive() + && !hook.isRemoved() + && 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 int flyingSoundCooldown; + + private TetherState(int hookEntityId) { + this.hookEntityId = hookEntityId; + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookTetherSync.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/WormHookTetherSync.java new file mode 100644 index 00000000..81e51d9a --- /dev/null +++ b/common-1.20.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.20.1/src/main/java/com/craisinlord/antarchy/content/item/royal/RoyalGearHelper.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/royal/RoyalGearHelper.java new file mode 100644 index 00000000..a294e2f9 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/item/royal/RoyalGearHelper.java @@ -0,0 +1,45 @@ +package com.craisinlord.antarchy.content.item.royal; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.item.RoyalAssailantArmorItem; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.EnchantmentHelper; +import net.minecraft.world.item.enchantment.Enchantments; + +public final class RoyalGearHelper { + private RoyalGearHelper() { + } + + public static ItemStack createRoyalArmorStack(net.minecraft.world.item.Item item, net.minecraft.core.RegistryAccess registries) { + ItemStack stack = new ItemStack(item); + ensureRoyalArmorEnchantments(stack, registries); + return stack; + } + + public static void ensureRoyalArmorEnchantments(ItemStack stack, net.minecraft.core.RegistryAccess registries) { + if (!AntarchySettings.royalArmorComesEnchanted()) { + return; + } + int level = AntarchySettings.royalArmorProtectionLevel(); + java.util.Map enchantments = new java.util.HashMap<>(EnchantmentHelper.getEnchantments(stack)); + setLevel(enchantments, Enchantments.ALL_DAMAGE_PROTECTION, level); + setLevel(enchantments, Enchantments.FIRE_PROTECTION, level); + setLevel(enchantments, Enchantments.PROJECTILE_PROTECTION, level); + setLevel(enchantments, Enchantments.BLAST_PROTECTION, level); + EnchantmentHelper.setEnchantments(enchantments, stack); + } + + private static void setLevel(java.util.Map enchantments, Enchantment enchantment, int level) { + if (enchantments.getOrDefault(enchantment, 0) < level) { + enchantments.put(enchantment, level); + } + } + + public static boolean hasUpwardFallImmunityBoots(LivingEntity entity) { + return entity.getItemBySlot(EquipmentSlot.FEET).getItem() instanceof RoyalAssailantArmorItem armor + && armor.getArmorType() == net.minecraft.world.item.ArmorItem.Type.BOOTS; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/menu/RoyalJudgmentMenu.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/menu/RoyalJudgmentMenu.java new file mode 100644 index 00000000..5a732f52 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/menu/RoyalJudgmentMenu.java @@ -0,0 +1,66 @@ +package com.craisinlord.antarchy.content.menu; + +import com.craisinlord.antarchy.content.AntarchyObjects; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; + +public final class RoyalJudgmentMenu extends AbstractContainerMenu { + public RoyalJudgmentMenu(int containerId, Inventory inventory) { + super(AntarchyObjects.ROYAL_JUDGMENT_MENU.get(), containerId); + for (int row = 0; row < 3; row++) { + for (int column = 0; column < 9; column++) { + int inventorySlot = column + row * 9 + 9; + this.addSlot(new Slot(inventory, inventorySlot, 8 + column * 18, 18 + row * 18) { + @Override + public boolean mayPickup(Player player) { + return !RoyalJudgmentState.isSealed(player.getUUID(), this.getContainerSlot()) + && super.mayPickup(player); + } + + @Override + public boolean mayPlace(ItemStack stack) { + return !RoyalJudgmentState.isSealed(inventory.player.getUUID(), this.getContainerSlot()) + && super.mayPlace(stack); + } + }); + } + } + for (int column = 0; column < 9; column++) { + int inventorySlot = column; + this.addSlot(new Slot(inventory, inventorySlot, 8 + column * 18, 76) { + @Override + public boolean mayPickup(Player player) { + return !RoyalJudgmentState.isSealed(player.getUUID(), this.getContainerSlot()) + && super.mayPickup(player); + } + + @Override + public boolean mayPlace(ItemStack stack) { + return !RoyalJudgmentState.isSealed(inventory.player.getUUID(), this.getContainerSlot()) + && super.mayPlace(stack); + } + }); + } + } + + @Override + public boolean stillValid(Player player) { + return player.isAlive(); + } + + @Override + public ItemStack quickMoveStack(Player player, int index) { + if (index < 0 || index >= this.slots.size()) return ItemStack.EMPTY; + Slot slot = this.slots.get(index); + if (!slot.hasItem()) return ItemStack.EMPTY; + ItemStack original = slot.getItem().copy(); + ItemStack moved = slot.getItem().copy(); + if (!this.moveItemStackTo(moved, 0, this.slots.size(), true)) return ItemStack.EMPTY; + slot.setByPlayer(moved.isEmpty() ? ItemStack.EMPTY : moved); + slot.onTake(player, moved); + return original; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/menu/RoyalJudgmentState.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/menu/RoyalJudgmentState.java new file mode 100644 index 00000000..678c79db --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/menu/RoyalJudgmentState.java @@ -0,0 +1,25 @@ +package com.craisinlord.antarchy.content.menu; + +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.UUID; + +public final class RoyalJudgmentState { + private static final Map> SEALED_SLOTS = new HashMap<>(); + + private RoyalJudgmentState() { + } + + public static void seal(UUID playerId, Set slots) { + SEALED_SLOTS.put(playerId, Set.copyOf(slots)); + } + + public static boolean isSealed(UUID playerId, int inventorySlot) { + return SEALED_SLOTS.getOrDefault(playerId, Set.of()).contains(inventorySlot); + } + + public static void clear(UUID playerId) { + SEALED_SLOTS.remove(playerId); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/EyeOfStormPrimaryPayload.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/EyeOfStormPrimaryPayload.java new file mode 100644 index 00000000..f2390e8d --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/EyeOfStormPrimaryPayload.java @@ -0,0 +1,17 @@ +package com.craisinlord.antarchy.content.network; + +import com.craisinlord.antarchy.Antarchy; +import io.netty.buffer.ByteBuf; +import com.craisinlord.antarchy.compat.network.StreamCodec; +import com.craisinlord.antarchy.compat.network.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public record EyeOfStormPrimaryPayload() implements CustomPacketPayload { + public static final Type TYPE = new Type<>(new ResourceLocation(Antarchy.MODID, "eye_of_storm_primary")); + public static final StreamCodec STREAM_CODEC = StreamCodec.unit(new EyeOfStormPrimaryPayload()); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/PortalGunPrimaryPayload.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/PortalGunPrimaryPayload.java new file mode 100644 index 00000000..9df55eb5 --- /dev/null +++ b/common-1.20.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 com.craisinlord.antarchy.compat.network.StreamCodec; +import com.craisinlord.antarchy.compat.network.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public record PortalGunPrimaryPayload() implements CustomPacketPayload { + public static final Type TYPE = new Type<>(new ResourceLocation(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.20.1/src/main/java/com/craisinlord/antarchy/content/network/RoyalMountActionPayload.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/RoyalMountActionPayload.java new file mode 100644 index 00000000..6e6f3829 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/RoyalMountActionPayload.java @@ -0,0 +1,26 @@ +package com.craisinlord.antarchy.content.network; + +import com.craisinlord.antarchy.Antarchy; +import io.netty.buffer.ByteBuf; +import com.craisinlord.antarchy.compat.network.ByteBufCodecs; +import com.craisinlord.antarchy.compat.network.StreamCodec; +import com.craisinlord.antarchy.compat.network.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public record RoyalMountActionPayload(int action) implements CustomPacketPayload { + public static final int FLIGHT_TOGGLE = 0; + public static final int BITE = 1; + public static final int SPIT = 2; + + public static final Type TYPE = + new Type<>(new ResourceLocation(Antarchy.MODID, "royal_mount_action")); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.VAR_INT, RoyalMountActionPayload::action, + RoyalMountActionPayload::new + ); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/RoyalMountVerticalPayload.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/RoyalMountVerticalPayload.java new file mode 100644 index 00000000..780ff2d9 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/RoyalMountVerticalPayload.java @@ -0,0 +1,23 @@ +package com.craisinlord.antarchy.content.network; + +import com.craisinlord.antarchy.Antarchy; +import io.netty.buffer.ByteBuf; +import com.craisinlord.antarchy.compat.network.ByteBufCodecs; +import com.craisinlord.antarchy.compat.network.StreamCodec; +import com.craisinlord.antarchy.compat.network.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public record RoyalMountVerticalPayload(boolean ascend, boolean descend) implements CustomPacketPayload { + public static final Type TYPE = + new Type<>(new ResourceLocation(Antarchy.MODID, "royal_mount_vertical")); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.BOOL, RoyalMountVerticalPayload::ascend, + ByteBufCodecs.BOOL, RoyalMountVerticalPayload::descend, + RoyalMountVerticalPayload::new + ); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/TimeDilationFieldsPayload.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/TimeDilationFieldsPayload.java new file mode 100644 index 00000000..519e076f --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/TimeDilationFieldsPayload.java @@ -0,0 +1,30 @@ +package com.craisinlord.antarchy.content.network; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.compat.network.CustomPacketPayload; +import com.craisinlord.antarchy.compat.network.StreamCodec; +import com.craisinlord.antarchy.content.time.TimeDilationFieldSnapshot; +import java.util.ArrayList; +import java.util.List; +import io.netty.buffer.ByteBuf; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; + +public record TimeDilationFieldsPayload(List fields) implements CustomPacketPayload { + public static final Type TYPE = new Type<>(new ResourceLocation(Antarchy.MODID, "time_dilation_fields")); + public static final StreamCodec STREAM_CODEC = new StreamCodec<>() { + @Override public TimeDilationFieldsPayload decode(ByteBuf buf) { + int count = Math.min(buf.readInt(), 128); + List fields = new ArrayList<>(count); + for (int i = 0; i < count; i++) fields.add(new TimeDilationFieldSnapshot(buf.readDouble(), buf.readDouble(), buf.readDouble(), buf.readDouble(), buf.readDouble(), buf.readInt(), buf.readInt())); + return new TimeDilationFieldsPayload(fields); + } + @Override public void encode(ByteBuf buf, TimeDilationFieldsPayload value) { + int count = Math.min(value.fields().size(), 128); + buf.writeInt(count); + for (int i = 0; i < count; i++) { TimeDilationFieldSnapshot f = value.fields().get(i); buf.writeDouble(f.x()); buf.writeDouble(f.y()); buf.writeDouble(f.z()); buf.writeDouble(f.radius()); buf.writeDouble(f.rate()); buf.writeInt(f.age()); buf.writeInt(f.durationTicks()); } + } + }; + public TimeDilationFieldsPayload { fields = List.copyOf(fields); } + @Override public Type type() { return TYPE; } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/TimeDilationRatePayload.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/TimeDilationRatePayload.java new file mode 100644 index 00000000..b1b51c92 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/TimeDilationRatePayload.java @@ -0,0 +1,36 @@ +package com.craisinlord.antarchy.content.network; + +import com.craisinlord.antarchy.Antarchy; +import io.netty.buffer.ByteBuf; +import java.util.UUID; +import com.craisinlord.antarchy.compat.network.ByteBufCodecs; +import com.craisinlord.antarchy.compat.network.StreamCodec; +import com.craisinlord.antarchy.compat.network.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public record TimeDilationRatePayload(UUID entityUuid, double rate) implements CustomPacketPayload { + public static final Type TYPE = + new Type<>(new ResourceLocation(Antarchy.MODID, "time_dilation_rate")); + private static final StreamCodec UUID_CODEC = new StreamCodec<>() { + @Override + public UUID decode(ByteBuf buf) { + return new UUID(buf.readLong(), buf.readLong()); + } + + @Override + public void encode(ByteBuf buf, UUID uuid) { + buf.writeLong(uuid.getMostSignificantBits()); + buf.writeLong(uuid.getLeastSignificantBits()); + } + }; + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + UUID_CODEC, TimeDilationRatePayload::entityUuid, + ByteBufCodecs.DOUBLE, TimeDilationRatePayload::rate, + TimeDilationRatePayload::new + ); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/ToggleRoyalInversionPayload.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/ToggleRoyalInversionPayload.java new file mode 100644 index 00000000..3296c1fd --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/ToggleRoyalInversionPayload.java @@ -0,0 +1,18 @@ +package com.craisinlord.antarchy.content.network; + +import com.craisinlord.antarchy.Antarchy; +import io.netty.buffer.ByteBuf; +import com.craisinlord.antarchy.compat.network.StreamCodec; +import com.craisinlord.antarchy.compat.network.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public record ToggleRoyalInversionPayload() implements CustomPacketPayload { + public static final Type TYPE = + new Type<>(new ResourceLocation(Antarchy.MODID, "toggle_royal_inversion")); + public static final StreamCodec STREAM_CODEC = StreamCodec.unit(new ToggleRoyalInversionPayload()); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/WormHookTetherPayload.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/network/WormHookTetherPayload.java new file mode 100644 index 00000000..41fee91b --- /dev/null +++ b/common-1.20.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 com.craisinlord.antarchy.compat.network.ByteBufCodecs; +import com.craisinlord.antarchy.compat.network.StreamCodec; +import com.craisinlord.antarchy.compat.network.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public record WormHookTetherPayload(int playerId, int hookId) implements CustomPacketPayload { + public static final Type TYPE = + new Type<>(new ResourceLocation(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.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunBlackHoleEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunBlackHoleEntity.java new file mode 100644 index 00000000..291b1805 --- /dev/null +++ b/common-1.20.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.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.AnimationState; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.core.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() { + } + + 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.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunCollisionHelper.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunCollisionHelper.java new file mode 100644 index 00000000..e659d73b --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunCollisionHelper.java @@ -0,0 +1,203 @@ +package com.craisinlord.antarchy.content.portalgun; + +import java.util.List; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; + +public final class PortalGunCollisionHelper { + private static final double SEARCH_PADDING = 1.5D; + private static final double PLANE_TOLERANCE = 0.06D; + private static final double EDGE_PADDING = 0.2D; + private static final double DEPTH_PADDING = 0.45D; + private static final double BORDER_TOLERANCE = 0.02D; + private static final double BORDER_THICKNESS = 0.0125D; + + private PortalGunCollisionHelper() { + } + + public static Vec3 resolveCollision(Entity entity, AABB startBox, Vec3 movement, Vec3 collided) { + if (movement.lengthSqr() <= 1.0E-7D) { + return collided; + } + AABB pathBox = startBox.expandTowards(movement).inflate(SEARCH_PADDING); + List nearby = entity.level().getEntities(entity, pathBox, candidate -> candidate instanceof PortalGunPortalEntity && candidate.isAlive()); + if (nearby.isEmpty()) { + return collided; + } + Vec3 adjusted = collided; + for (Entity candidate : nearby) { + PortalGunPortalEntity portal = (PortalGunPortalEntity) candidate; + Vec3 candidateAdjusted = resolveCollisionAgainstPortal(entity, startBox, movement, adjusted, portal); + if (candidateAdjusted.distanceToSqr(movement) < adjusted.distanceToSqr(movement)) { + adjusted = candidateAdjusted; + } + } + return adjusted; + } + + private static Vec3 resolveCollisionAgainstPortal(Entity entity, AABB startBox, Vec3 movement, Vec3 collided, PortalGunPortalEntity portal) { + PortalGunWorldPortalShape shape = portal.getWorldPortalShape(); + Vec3 normal = portal.getNormalVec().normalize(); + double desiredNormal = movement.dot(normal); + double collidedNormal = collided.dot(normal); + if (desiredNormal >= -1.0E-5D || desiredNormal >= collidedNormal - 1.0E-5D) { + return collided; + } + if (!canUsePortalPassThrough(entity, startBox, movement, portal, shape)) { + return collided; + } + double restoreAmount = desiredNormal - collidedNormal; + Vec3 adjusted = collided.add(normal.scale(restoreAmount)); + return applyBorderCollision(entity, startBox, adjusted, portal); + } + + private static boolean canUsePortalPassThrough(Entity entity, AABB startBox, Vec3 movement, PortalGunPortalEntity portal, PortalGunWorldPortalShape shape) { + AABB endBox = startBox.move(movement); + if (!portal.getPortalInsides(entity).intersects(startBox) + && !portal.getPortalInsides(entity).intersects(endBox) + && !intersectsPortalWindow(startBox, shape) + && !intersectsPortalWindow(endBox, shape) + && !segmentIntersectsPortalWindow(shape, startBox, endBox)) { + return false; + } + if (crossesPortal(shape, entity, startBox, movement)) { + return true; + } + Vec3 startCenter = startBox.getCenter(); + Vec3 endCenter = endBox.getCenter(); + PortalGunWorldPortalShape.PortalLocalCoords startCoords = shape.localCoords(startCenter); + PortalGunWorldPortalShape.PortalLocalCoords endCoords = shape.localCoords(endCenter); + return startCoords.depth() > 0.0D + && endCoords.depth() >= -PLANE_TOLERANCE + && Math.abs(endCoords.horizontal()) <= shape.halfWidth() + EDGE_PADDING + && Math.abs(endCoords.vertical()) <= shape.halfHeight() + EDGE_PADDING + && projectedWindowOverlap(shape, startBox, endBox); + } + + private static boolean intersectsPortalWindow(AABB box, PortalGunWorldPortalShape shape) { + for (Vec3 corner : corners(box)) { + PortalGunWorldPortalShape.PortalLocalCoords coords = shape.localCoords(corner); + if (Math.abs(coords.horizontal()) <= shape.halfWidth() + EDGE_PADDING + && Math.abs(coords.vertical()) <= shape.halfHeight() + EDGE_PADDING + && coords.depth() <= DEPTH_PADDING + && coords.depth() >= -PLANE_TOLERANCE) { + return true; + } + } + return false; + } + + private static boolean segmentIntersectsPortalWindow(PortalGunWorldPortalShape shape, AABB startBox, AABB endBox) { + for (Vec3 startCorner : corners(startBox)) { + Vec3 endCorner = matchSample(startCorner, startBox, endBox); + if (shape.crosses(startCorner, endCorner)) { + return true; + } + } + return false; + } + + private static boolean projectedWindowOverlap(PortalGunWorldPortalShape shape, AABB startBox, AABB endBox) { + double minHorizontal = Double.POSITIVE_INFINITY; + double maxHorizontal = Double.NEGATIVE_INFINITY; + double minVertical = Double.POSITIVE_INFINITY; + double maxVertical = Double.NEGATIVE_INFINITY; + for (Vec3 corner : corners(startBox)) { + PortalGunWorldPortalShape.PortalLocalCoords coords = shape.localCoords(corner); + minHorizontal = Math.min(minHorizontal, coords.horizontal()); + maxHorizontal = Math.max(maxHorizontal, coords.horizontal()); + minVertical = Math.min(minVertical, coords.vertical()); + maxVertical = Math.max(maxVertical, coords.vertical()); + } + for (Vec3 corner : corners(endBox)) { + PortalGunWorldPortalShape.PortalLocalCoords coords = shape.localCoords(corner); + minHorizontal = Math.min(minHorizontal, coords.horizontal()); + maxHorizontal = Math.max(maxHorizontal, coords.horizontal()); + minVertical = Math.min(minVertical, coords.vertical()); + maxVertical = Math.max(maxVertical, coords.vertical()); + } + return maxHorizontal >= -shape.halfWidth() - BORDER_TOLERANCE + && minHorizontal <= shape.halfWidth() + BORDER_TOLERANCE + && maxVertical >= -shape.halfHeight() - BORDER_TOLERANCE + && minVertical <= shape.halfHeight() + BORDER_TOLERANCE; + } + + private static Vec3 applyBorderCollision(Entity entity, AABB startBox, Vec3 movement, PortalGunPortalEntity portal) { + if (movement.lengthSqr() <= 1.0E-7D) { + return movement; + } + AABB endBox = startBox.move(movement); + if (!portal.getPortalInsides(entity).intersects(startBox) + && !portal.getPortalInsides(entity).intersects(endBox) + && !intersectsPortalWindow(startBox, portal.getWorldPortalShape()) + && !intersectsPortalWindow(endBox, portal.getWorldPortalShape())) { + return movement; + } + List shapes = portal.getWorldPortalShape().getCollisionBoundaries(BORDER_THICKNESS).stream() + .map(Shapes::create) + .toList(); + Vec3 collided = Entity.collideBoundingBox(entity, movement, startBox, entity.level(), shapes); + return collided.distanceToSqr(movement) < 1.0E-7D ? movement : collided; + } + + private static boolean crossesPortal(PortalGunWorldPortalShape shape, Entity entity, AABB startBox, Vec3 movement) { + AABB endBox = startBox.move(movement); + for (Vec3 startSample : portalSamples(entity, startBox, true)) { + Vec3 endSample = matchSample(startSample, startBox, endBox); + if (shape.crosses(startSample, endSample)) { + return true; + } + } + return false; + } + + private static List portalSamples(Entity entity, AABB box, boolean includeEye) { + Vec3 center = new Vec3((box.minX + box.maxX) * 0.5D, (box.minY + box.maxY) * 0.5D, (box.minZ + box.maxZ) * 0.5D); + Vec3 topCenter = new Vec3(center.x, box.maxY, center.z); + Vec3 bottomCenter = new Vec3(center.x, box.minY, center.z); + if (includeEye) { + Vec3 eye = new Vec3(entity.getX(), entity.getY() + entity.getEyeHeight(), entity.getZ()); + return List.of(center, eye, topCenter, bottomCenter); + } + return List.of(center, topCenter, bottomCenter); + } + + private static Vec3 matchSample(Vec3 startSample, AABB startBox, AABB endBox) { + double xLerp = axisRatio(startSample.x, startBox.minX, startBox.maxX); + double yLerp = axisRatio(startSample.y, startBox.minY, startBox.maxY); + double zLerp = axisRatio(startSample.z, startBox.minZ, startBox.maxZ); + return new Vec3( + lerp(endBox.minX, endBox.maxX, xLerp), + lerp(endBox.minY, endBox.maxY, yLerp), + lerp(endBox.minZ, endBox.maxZ, zLerp) + ); + } + + private static double axisRatio(double value, double min, double max) { + double size = max - min; + if (Math.abs(size) < 1.0E-6D) { + return 0.5D; + } + return (value - min) / size; + } + + private static double lerp(double min, double max, double delta) { + return min + (max - min) * delta; + } + + private static Vec3[] corners(AABB box) { + return new Vec3[] { + new Vec3(box.minX, box.minY, box.minZ), + new Vec3(box.minX, box.minY, box.maxZ), + new Vec3(box.minX, box.maxY, box.minZ), + new Vec3(box.minX, box.maxY, box.maxZ), + new Vec3(box.maxX, box.minY, box.minZ), + new Vec3(box.maxX, box.minY, box.maxZ), + new Vec3(box.maxX, box.maxY, box.minZ), + new Vec3(box.maxX, box.maxY, box.maxZ) + }; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunPlacement.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunPlacement.java new file mode 100644 index 00000000..944f4291 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunPlacement.java @@ -0,0 +1,50 @@ +package com.craisinlord.antarchy.content.portalgun; + +import java.util.Set; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.phys.Vec3; + +public record PortalGunPlacement( + Vec3 center, + Direction facing, + Direction upAxis, + Direction widthAxis, + float yaw, + BlockPos supportOrigin, + BlockPos masterPos, + BlockPos basePos, + BlockPos[] portalSpots, + Set compensatedSpots +) { + public static PortalGunPlacement fromStored(Direction facing, Direction upAxis, BlockPos masterPos, BlockPos basePos, Set compensatedSpots) { + Direction widthAxis = widthAxis(facing, upAxis); + BlockPos supportOrigin = masterPos.relative(facing.getOpposite()); + Vec3 center = masterPos.getCenter() + .add(Vec3.atLowerCornerOf(upAxis.getNormal()).scale(0.5D)) + .subtract(Vec3.atLowerCornerOf(facing.getNormal()).scale(0.5D)); + return new PortalGunPlacement( + center, + facing, + upAxis, + widthAxis, + yawFor(facing, upAxis), + supportOrigin, + masterPos, + basePos, + new BlockPos[] {masterPos, basePos}, + compensatedSpots + ); + } + + public static Direction widthAxis(Direction facing, Direction upAxis) { + Vec3 normal = Vec3.atLowerCornerOf(facing.getNormal()); + Vec3 up = Vec3.atLowerCornerOf(upAxis.getNormal()); + Vec3 width = normal.cross(up); + return Direction.getNearest(width.x, width.y, width.z); + } + + public static float yawFor(Direction facing, Direction upAxis) { + return facing.getAxis() == Direction.Axis.Y ? upAxis.toYRot() : facing.toYRot(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunPortalEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunPortalEntity.java new file mode 100644 index 00000000..4313589d --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunPortalEntity.java @@ -0,0 +1,864 @@ +package com.craisinlord.antarchy.content.portalgun; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.block.entity.PortalGunPortalBaseBlockEntity; +import com.craisinlord.antarchy.content.block.entity.PortalGunPortalMasterBlockEntity; +import com.craisinlord.antarchy.mixins.AbstractArrowAccessor; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +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.nbt.ListTag; +import net.minecraft.nbt.Tag; +import net.minecraft.network.protocol.game.ClientboundSetEntityMotionPacket; +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.entity.player.Player; +import net.minecraft.world.entity.projectile.AbstractArrow; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import software.bernie.geckolib.animatable.GeoEntity; +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.AnimationState; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.core.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 EntityDataAccessor> LINKED_PORTAL = SynchedEntityData.defineId(PortalGunPortalEntity.class, EntityDataSerializers.OPTIONAL_UUID); + private static final EntityDataAccessor CHANNEL_RED = SynchedEntityData.defineId(PortalGunPortalEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor CHANNEL_GREEN = SynchedEntityData.defineId(PortalGunPortalEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor CHANNEL_BLUE = SynchedEntityData.defineId(PortalGunPortalEntity.class, EntityDataSerializers.INT); + 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 = 40; + private static final double PLAYER_PORTAL_INSIDE_SHIFT = 0.05D; + 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 static final double MIN_EXIT_MOMENTUM = 0.42D; + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + private final Map teleportCooldowns = new HashMap<>(); + private final Map portalEntityDepths = new HashMap<>(); + private Set lastScanEntities = new HashSet<>(); + private UUID ownerId; + private UUID linkedPortalId; + private int ageTicks; + private int pairTime; + private BlockPos supportOrigin = BlockPos.ZERO; + private BlockPos masterPos = BlockPos.ZERO; + private BlockPos basePos = BlockPos.ZERO; + private BlockPos[] portalSpots = new BlockPos[] {BlockPos.ZERO, BlockPos.ZERO}; + private Set compensatedSpots = Set.of(); + + public PortalGunPortalEntity(EntityType entityType, Level level) { + super(entityType, level); + this.setInvulnerable(true); + this.noPhysics = true; + this.noCulling = true; + } + + @Override + protected void defineSynchedData() { + this.entityData.define(SIDE, PortalSide.BLUE.ordinal()); + this.entityData.define(FACING, Direction.NORTH.get3DDataValue()); + this.entityData.define(UP_AXIS, Direction.UP.get3DDataValue()); + this.entityData.define(CLOSING, false); + this.entityData.define(LINKED_PORTAL, Optional.empty()); + this.entityData.define(CHANNEL_RED, 58); + this.entityData.define(CHANNEL_GREEN, 166); + this.entityData.define(CHANNEL_BLUE, 255); + } + + public void configure(UUID ownerId, PortalSide side, PortalGunPlacement placement) { + this.ownerId = ownerId; + this.entityData.set(SIDE, side.ordinal()); + this.entityData.set(FACING, placement.facing().get3DDataValue()); + this.entityData.set(UP_AXIS, placement.upAxis().get3DDataValue()); + int[] channelColor = generateChannelColor(ownerId, side); + this.entityData.set(CHANNEL_RED, channelColor[0]); + this.entityData.set(CHANNEL_GREEN, channelColor[1]); + this.entityData.set(CHANNEL_BLUE, channelColor[2]); + this.supportOrigin = placement.supportOrigin().immutable(); + this.masterPos = placement.masterPos().immutable(); + this.basePos = placement.basePos().immutable(); + this.portalSpots = new BlockPos[] {placement.portalSpots()[0].immutable(), placement.portalSpots()[1].immutable()}; + this.compensatedSpots = Set.copyOf(placement.compensatedSpots()); + } + + public void linkTo(PortalGunPortalEntity other) { + this.linkedPortalId = other.getUUID(); + this.entityData.set(LINKED_PORTAL, Optional.of(other.getUUID())); + this.pairTime = (int) this.level().getGameTime(); + } + + public void restorePair(UUID linkedPortalId, int pairTime) { + this.linkedPortalId = linkedPortalId; + this.entityData.set(LINKED_PORTAL, Optional.ofNullable(linkedPortalId)); + this.pairTime = pairTime; + } + + 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 UUID getLinkedPortalId() { + return this.entityData.get(LINKED_PORTAL).orElse(this.linkedPortalId); + } + + public BlockPos getMasterPos() { + return this.masterPos; + } + + public UUID getOwnerId() { + return this.ownerId; + } + + public int getChannelRed() { + return this.entityData.get(CHANNEL_RED); + } + + public int getChannelGreen() { + return this.entityData.get(CHANNEL_GREEN); + } + + public int getChannelBlue() { + return this.entityData.get(CHANNEL_BLUE); + } + + public BlockPos getBasePos() { + return this.basePos; + } + + public BlockPos[] getPortalSpots() { + return new BlockPos[] {this.portalSpots[0], this.portalSpots[1]}; + } + + public Set getCompensatedSpots() { + return Set.copyOf(this.compensatedSpots); + } + + public int getPairTime() { + return this.pairTime; + } + + public PortalGunPortalEntity getLinkedPortal() { + UUID linkedId = this.getLinkedPortalId(); + if (linkedId == null) { + return null; + } + List entities = this.level().getEntities(this, new AABB(-3.0E7D, -3.0E7D, -3.0E7D, 3.0E7D, 3.0E7D, 3.0E7D), entity -> linkedId.equals(entity.getUUID())); + if (entities.isEmpty()) { + return null; + } + Entity entity = entities.get(0); + return entity instanceof PortalGunPortalEntity portal ? portal : null; + } + + 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(); + } + + public PortalGunWorldPortalShape getWorldPortalShape() { + return new PortalGunWorldPortalShape(this.position(), this.getNormalVec().normalize(), this.getUpVec().normalize(), this.getWidthVec().normalize(), HALF_WIDTH, HALF_HEIGHT, HALF_DEPTH); + } + + public AABB getPlane() { + return this.getWorldPortalShape().getPlane(); + } + + public AABB getFlatPlane() { + return this.getWorldPortalShape().getFlatPlane(); + } + + public AABB getScanRange() { + return this.getWorldPortalShape().getScanRange(); + } + + public AABB getPortalInsides() { + return this.getWorldPortalShape().getPortalInsides(); + } + + public AABB getPortalInsides(Entity entity) { + if (!(entity instanceof Player)) { + return this.getPortalInsides(); + } + double shiftAmount = Math.min(PLAYER_PORTAL_INSIDE_SHIFT, Math.abs(this.getWorldPortalShape().localCoords(entity.position()).depth())); + return this.getPortalInsides().move(this.getNormalVec().normalize().scale(shiftAmount)); + } + + public AABB getTeleportPlane(double offset) { + return this.getWorldPortalShape().getTeleportPlane(offset); + } + + public AABB getCollisionRemovalAabbForEntity(Entity entity) { + double speed = entity.getDeltaMovement().length(); + double extent = Math.max(1.0D, Math.max(entity.getBbWidth(), entity.getBbHeight()) + speed); + return this.getFlatPlane().expandTowards(this.getNormalVec().normalize().scale(extent)); + } + + public Vec3 teleportProbePosition(Entity entity) { + if (entity instanceof Player player) { + return player.getEyePosition(); + } + if (entity instanceof LivingEntity living) { + return entity.position().add(0.0D, living.getBbHeight() * 0.5D, 0.0D); + } + return entity.position(); + } + + public Vec3 previousTeleportProbePosition(Entity entity) { + double prevX = entity.xo; + double prevY = entity.yo; + double prevZ = entity.zo; + if (entity instanceof Player player) { + return new Vec3(prevX, prevY + player.getEyeHeight(player.getPose()), prevZ); + } + if (entity instanceof LivingEntity living) { + return new Vec3(prevX, prevY + living.getBbHeight() * 0.5D, prevZ); + } + return new Vec3(prevX, prevY, prevZ); + } + + public Vec3 resolveCrossingProbe(Entity entity) { + AABB currentBox = entity.getBoundingBox(); + AABB previousBox = currentBox.move(entity.xo - entity.getX(), entity.yo - entity.getY(), entity.zo - entity.getZ()); + for (Vec3 currentSample : portalSamples(entity, currentBox, false)) { + Vec3 previousSample = matchPreviousSample(currentSample, currentBox, previousBox); + if (this.crossesPortal(previousSample, currentSample)) { + return currentSample; + } + } + Vec3 previousProbe = this.previousTeleportProbePosition(entity); + Vec3 currentProbe = this.teleportProbePosition(entity); + if (this.crossesPortal(previousProbe, currentProbe)) { + return currentProbe; + } + return this.overlapsPortalVolume(entity) ? this.portalVolumeProbe(entity) : null; + } + + public boolean containsPoint(Vec3 position) { + return this.getWorldPortalShape().contains(position, 0.0D); + } + + public boolean intersectsEntityBounds(Entity entity) { + AABB bounds = entity.getBoundingBox(); + for (Vec3 corner : new Vec3[] { + new Vec3(bounds.minX, bounds.minY, bounds.minZ), + new Vec3(bounds.minX, bounds.minY, bounds.maxZ), + new Vec3(bounds.minX, bounds.maxY, bounds.minZ), + new Vec3(bounds.minX, bounds.maxY, bounds.maxZ), + new Vec3(bounds.maxX, bounds.minY, bounds.minZ), + new Vec3(bounds.maxX, bounds.minY, bounds.maxZ), + new Vec3(bounds.maxX, bounds.maxY, bounds.minZ), + new Vec3(bounds.maxX, bounds.maxY, bounds.maxZ) + }) { + if (this.getWorldPortalShape().contains(corner, 0.08D)) { + return true; + } + } + return this.getPortalInsides(entity).intersects(bounds); + } + + public boolean crossesPortal(Vec3 previousProbePosition, Vec3 currentProbePosition) { + return this.getWorldPortalShape().crosses(previousProbePosition, currentProbePosition); + } + + public boolean shouldRenderFront(Vec3 cameraPos) { + return this.getWorldPortalShape().shouldRenderFront(cameraPos); + } + + @Override + public void tick() { + super.tick(); + this.ageTicks++; + this.yRotO = this.getYRot(); + this.xRotO = this.getXRot(); + if (this.level().isClientSide) { + return; + } + if (!(this.level() instanceof ServerLevel serverLevel)) { + return; + } + this.tickTeleportCooldowns(); + 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()) { + if (this.ageTicks % 100 == 0) { + Antarchy.LOGGER.info("Portal gun portal has no loaded linked portal portal={} owner={} side={} linked={}", this.getUUID(), this.ownerId, this.getPortalSide(), this.linkedPortalId); + } + return; + } + if (this.ageTicks % 80 == 0) { + this.level().playSound(null, this.blockPosition(), sound("portal_ambient", SoundEvents.PORTAL_AMBIENT), SoundSource.BLOCKS, 0.18F, this.getPortalSide() == PortalSide.BLUE ? 1.05F : 0.92F); + } + 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(); + for (int i = 0; i < this.portalSpots.length; i++) { + BlockPos portalSpot = this.portalSpots[i]; + BlockPos supportPos = portalSpot.relative(facing.getOpposite()); + BlockState supportState = this.level().getBlockState(supportPos); + if (!supportState.isFaceSturdy(this.level(), supportPos, facing)) { + return false; + } + BlockEntity blockEntity = this.level().getBlockEntity(portalSpot); + if (i == 0) { + if (!(blockEntity instanceof PortalGunPortalMasterBlockEntity master) || !master.matches(this.ownerId, this.getUUID(), this.getPortalSide())) { + return false; + } + } else { + if (!(blockEntity instanceof PortalGunPortalBaseBlockEntity base) || !base.matches(this.ownerId, this.getUUID(), this.getPortalSide())) { + return false; + } + } + } + return true; + } + + private void tickTeleport(PortalGunPortalEntity linked) { + List entities = this.level().getEntities(this, this.getScanRange(), this::canTeleportEntity); + this.updatePortalEntityScan(linked, entities); + if (!entities.isEmpty() && this.ageTicks % 20 == 0) { + Antarchy.LOGGER.info("Portal gun teleport scan portal={} side={} linked={} count={} scan={}", this.getUUID(), this.getPortalSide(), linked.getUUID(), entities.size(), this.getScanRange()); + } + for (Entity entity : entities) { + Vec3 crossingProbe = this.resolveCrossingProbe(entity); + if (crossingProbe == null) { + if (this.ageTicks % 40 == 0) { + PortalGunWorldPortalShape.PortalLocalCoords coords = this.getWorldPortalShape().localCoords(this.teleportProbePosition(entity)); + PortalBounds bounds = this.portalBounds(entity.getBoundingBox()); + Antarchy.LOGGER.info("Portal gun entity in scan did not cross portal={} entity={} entityType={} depth={} horizontal={} vertical={} boxDepthMin={} boxDepthMax={} boxHorizontalMin={} boxHorizontalMax={} boxVerticalMin={} boxVerticalMax={} movement={}", this.getUUID(), entity.getUUID(), EntityType.getKey(entity.getType()), coords.depth(), coords.horizontal(), coords.vertical(), bounds.minDepth(), bounds.maxDepth(), bounds.minHorizontal(), bounds.maxHorizontal(), bounds.minVertical(), bounds.maxVertical(), entity.getDeltaMovement()); + } + continue; + } + Antarchy.LOGGER.info("Portal gun teleport crossing portal={} side={} linked={} entity={} entityType={} probe={}", this.getUUID(), this.getPortalSide(), linked.getUUID(), entity.getUUID(), EntityType.getKey(entity.getType()), crossingProbe); + this.teleportEntity(entity, linked, crossingProbe); + } + } + + private void updatePortalEntityScan(PortalGunPortalEntity linked, List entities) { + Set currentScan = new HashSet<>(); + for (Entity entity : entities) { + UUID entityId = entity.getUUID(); + currentScan.add(entityId); + PortalBounds bounds = this.portalBounds(entity.getBoundingBox()); + int depthBucket = (int) Math.round(bounds.minDepth() * 1000.0D); + this.portalEntityDepths.put(entityId, depthBucket); + if (!this.lastScanEntities.contains(entityId)) { + Antarchy.LOGGER.info("Portal gun entity entered scan portal={} linked={} entity={} entityType={} minDepth={} maxDepth={} minHorizontal={} maxHorizontal={} minVertical={} maxVertical={} motion={}", this.getUUID(), linked.getUUID(), entityId, EntityType.getKey(entity.getType()), bounds.minDepth(), bounds.maxDepth(), bounds.minHorizontal(), bounds.maxHorizontal(), bounds.minVertical(), bounds.maxVertical(), entity.getDeltaMovement()); + } + } + for (UUID previous : this.lastScanEntities) { + if (!currentScan.contains(previous)) { + Integer depth = this.portalEntityDepths.remove(previous); + Antarchy.LOGGER.info("Portal gun entity left scan portal={} linked={} entity={} lastDepth={}", this.getUUID(), linked.getUUID(), previous, depth); + } + } + this.lastScanEntities = currentScan; + } + + private boolean canTeleportEntity(Entity entity) { + if (!entity.isAlive() || entity instanceof PortalGunPortalEntity || entity.isPassenger() || entity.isVehicle()) { + return false; + } + return !this.teleportCooldowns.containsKey(entity.getUUID()); + } + + private boolean isInsidePortal(Vec3 position) { + return this.getWorldPortalShape().contains(position, 0.0D); + } + + private PortalLocalCoords localCoords(Vec3 position) { + PortalGunWorldPortalShape.PortalLocalCoords coords = this.getWorldPortalShape().localCoords(position); + return new PortalLocalCoords(coords.horizontal(), coords.vertical(), coords.depth()); + } + + private boolean overlapsPortalVolume(Entity entity) { + PortalBounds bounds = this.portalBounds(entity.getBoundingBox()); + double edgePadding = entity instanceof Player ? 0.22D : 0.14D; + double frontDepth = entity instanceof Player ? 0.5D : 0.36D; + double backDepth = entity instanceof Player ? 0.28D : 0.22D; + double normalVelocity = entity.getDeltaMovement().dot(this.getNormalVec().normalize()); + boolean movingIntoPortal = normalVelocity < -0.01D; + boolean straddlingPlane = bounds.minDepth() <= 0.03D && bounds.maxDepth() >= -0.03D; + boolean inFrame = bounds.maxHorizontal() >= -HALF_WIDTH - edgePadding + && bounds.minHorizontal() <= HALF_WIDTH + edgePadding + && bounds.maxVertical() >= -HALF_HEIGHT - edgePadding + && bounds.minVertical() <= HALF_HEIGHT + edgePadding + && bounds.maxDepth() >= -backDepth + && bounds.minDepth() <= frontDepth; + return inFrame && (movingIntoPortal || straddlingPlane); + } + + private Vec3 portalVolumeProbe(Entity entity) { + Vec3 probe = this.teleportProbePosition(entity); + PortalGunWorldPortalShape shape = this.getWorldPortalShape(); + PortalGunWorldPortalShape.PortalLocalCoords coords = shape.localCoords(probe); + double horizontal = clamp(coords.horizontal(), -HALF_WIDTH + 0.05D, HALF_WIDTH - 0.05D); + double vertical = clamp(coords.vertical(), -HALF_HEIGHT + 0.05D, HALF_HEIGHT - 0.05D); + return shape.center() + .add(shape.right().scale(horizontal)) + .add(shape.up().scale(vertical)) + .subtract(shape.normal().scale(0.01D)); + } + + private PortalBounds portalBounds(AABB bounds) { + PortalGunWorldPortalShape shape = this.getWorldPortalShape(); + double minHorizontal = Double.POSITIVE_INFINITY; + double maxHorizontal = Double.NEGATIVE_INFINITY; + double minVertical = Double.POSITIVE_INFINITY; + double maxVertical = Double.NEGATIVE_INFINITY; + double minDepth = Double.POSITIVE_INFINITY; + double maxDepth = Double.NEGATIVE_INFINITY; + for (Vec3 corner : boxCorners(bounds)) { + PortalGunWorldPortalShape.PortalLocalCoords coords = shape.localCoords(corner); + minHorizontal = Math.min(minHorizontal, coords.horizontal()); + maxHorizontal = Math.max(maxHorizontal, coords.horizontal()); + minVertical = Math.min(minVertical, coords.vertical()); + maxVertical = Math.max(maxVertical, coords.vertical()); + minDepth = Math.min(minDepth, coords.depth()); + maxDepth = Math.max(maxDepth, coords.depth()); + } + return new PortalBounds(minHorizontal, maxHorizontal, minVertical, maxVertical, minDepth, maxDepth); + } + + private static Vec3[] boxCorners(AABB bounds) { + return new Vec3[] { + new Vec3(bounds.minX, bounds.minY, bounds.minZ), + new Vec3(bounds.minX, bounds.minY, bounds.maxZ), + new Vec3(bounds.minX, bounds.maxY, bounds.minZ), + new Vec3(bounds.minX, bounds.maxY, bounds.maxZ), + new Vec3(bounds.maxX, bounds.minY, bounds.minZ), + new Vec3(bounds.maxX, bounds.minY, bounds.maxZ), + new Vec3(bounds.maxX, bounds.maxY, bounds.minZ), + new Vec3(bounds.maxX, bounds.maxY, bounds.maxZ) + }; + } + + private static double clamp(double value, double min, double max) { + return Math.max(min, Math.min(max, value)); + } + + private List portalSamples(Entity entity, AABB box, boolean previous) { + Vec3 center = new Vec3((box.minX + box.maxX) * 0.5D, (box.minY + box.maxY) * 0.5D, (box.minZ + box.maxZ) * 0.5D); + Vec3 topCenter = new Vec3(center.x, box.maxY, center.z); + Vec3 bottomCenter = new Vec3(center.x, box.minY, center.z); + if (entity instanceof Player player) { + Vec3 eye = previous ? this.previousTeleportProbePosition(player) : this.teleportProbePosition(player); + return List.of(center, eye, topCenter, bottomCenter); + } + if (entity instanceof LivingEntity) { + return List.of(center, topCenter, bottomCenter); + } + return List.of(center); + } + + private Vec3 matchPreviousSample(Vec3 currentSample, AABB currentBox, AABB previousBox) { + double xLerp = axisRatio(currentSample.x, currentBox.minX, currentBox.maxX); + double yLerp = axisRatio(currentSample.y, currentBox.minY, currentBox.maxY); + double zLerp = axisRatio(currentSample.z, currentBox.minZ, currentBox.maxZ); + return new Vec3( + lerp(previousBox.minX, previousBox.maxX, xLerp), + lerp(previousBox.minY, previousBox.maxY, yLerp), + lerp(previousBox.minZ, previousBox.maxZ, zLerp) + ); + } + + private static double axisRatio(double value, double min, double max) { + double size = max - min; + if (Math.abs(size) < 1.0E-6D) { + return 0.5D; + } + return (value - min) / size; + } + + private static double lerp(double min, double max, double delta) { + return min + (max - min) * delta; + } + + private void teleportEntity(Entity entity, PortalGunPortalEntity destination, Vec3 currentProbe) { + Vec3 relativeProbe = currentProbe.subtract(this.position()); + Vec3 transformedProbe = PortalGunTransformUtil.transformPosition(this, destination, relativeProbe); + Vec3 entityOffsetFromProbe = entity.position().subtract(currentProbe); + Vec3 transformedEntityOffset = PortalGunTransformUtil.transformVector(this, destination, entityOffsetFromProbe); + Vec3 transformedLook = PortalGunTransformUtil.transformVector(this, destination, entity.getLookAngle()).normalize(); + Vec3 entryMotion = this.portalEntryMomentum(entity, currentProbe); + Vec3 transformedMotion = this.exitMomentum(entity, destination, PortalGunTransformUtil.transformVector(this, destination, entryMotion)); + double exitClearance = Math.max(0.35D, entity.getBbWidth() * 0.5D + 0.16D); + Vec3 exitProbe = destination.position().add(transformedProbe).add(destination.getNormalVec().normalize().scale(exitClearance - transformedProbe.dot(destination.getNormalVec().normalize()))); + Vec3 requestedExitPos = exitProbe.add(transformedEntityOffset); + Vec3 exitPos = this.resolveSafeExitPosition(entity, destination, requestedExitPos); + float yaw = PortalGunTransformUtil.yawFromLook(transformedLook); + float pitch = PortalGunTransformUtil.pitchFromLook(transformedLook); + this.applyTeleportCooldown(entity, destination); + this.level().playSound(null, this.getX(), this.getY(), this.getZ(), sound("portal_enter", SoundEvents.PORTAL_TRAVEL), SoundSource.PLAYERS, 0.7F, 0.96F + this.random.nextFloat() * 0.08F); + if (entity instanceof ServerPlayer player && destination.level() instanceof ServerLevel destinationLevel) { + player.teleportTo(destinationLevel, exitPos.x, exitPos.y, exitPos.z, yaw, pitch); + } else { + entity.teleportTo(exitPos.x, exitPos.y, exitPos.z); + entity.setYRot(yaw); + entity.setXRot(pitch); + entity.setYHeadRot(yaw); + entity.setYBodyRot(yaw); + } + entity.setDeltaMovement(transformedMotion); + entity.hasImpulse = true; + entity.hurtMarked = true; + if (entity instanceof ServerPlayer player) { + player.connection.send(new ClientboundSetEntityMotionPacket(player)); + } + entity.fallDistance = 0.0F; + destination.level().playSound(null, exitPos.x, exitPos.y, exitPos.z, sound("portal_exit", SoundEvents.PORTAL_TRAVEL), SoundSource.PLAYERS, 0.7F, 0.96F + this.random.nextFloat() * 0.08F); + this.handleSpecialEntityPostTeleport(entity); + Antarchy.LOGGER.info("Portal gun teleported entity source={} destination={} entity={} entityType={} requestedExit={} exit={} inputVelocity={} outputVelocity={} yaw={} pitch={} sourceFacing={} sourceUp={} destinationFacing={} destinationUp={}", this.getUUID(), destination.getUUID(), entity.getUUID(), EntityType.getKey(entity.getType()), requestedExitPos, exitPos, entryMotion, transformedMotion, yaw, pitch, this.getFacingDirection(), this.getUpAxis(), destination.getFacingDirection(), destination.getUpAxis()); + } + + private Vec3 portalEntryMomentum(Entity entity, Vec3 currentProbe) { + Vec3 velocity = entity.getDeltaMovement(); + Vec3 probeVelocity = currentProbe.subtract(this.previousTeleportProbePosition(entity)); + Vec3 positionVelocity = entity.position().subtract(entity.xo, entity.yo, entity.zo); + Vec3 selected = velocity; + if (probeVelocity.lengthSqr() > selected.lengthSqr()) { + selected = probeVelocity; + } + if (positionVelocity.lengthSqr() > selected.lengthSqr()) { + selected = positionVelocity; + } + return selected; + } + + private Vec3 exitMomentum(Entity entity, PortalGunPortalEntity destination, Vec3 transformedMotion) { + Vec3 normal = destination.getNormalVec().normalize(); + double outward = transformedMotion.dot(normal); + if (outward >= MIN_EXIT_MOMENTUM) { + return transformedMotion; + } + if (entity.getDeltaMovement().lengthSqr() <= 1.0E-5D && transformedMotion.lengthSqr() <= 1.0E-5D) { + return normal.scale(MIN_EXIT_MOMENTUM); + } + return transformedMotion.add(normal.scale(MIN_EXIT_MOMENTUM - outward)); + } + + private Vec3 resolveSafeExitPosition(Entity entity, PortalGunPortalEntity destination, Vec3 requestedExitPos) { + Vec3 normal = destination.getNormalVec().normalize(); + if (this.canPlaceEntityAt(entity, requestedExitPos)) { + return requestedExitPos; + } + for (int i = 1; i <= 24; i++) { + Vec3 candidate = requestedExitPos.add(normal.scale(i * 0.125D)); + if (this.canPlaceEntityAt(entity, candidate)) { + Antarchy.LOGGER.info("Portal gun adjusted blocked exit entity={} destination={} requested={} adjusted={} distance={}", entity.getUUID(), destination.getUUID(), requestedExitPos, candidate, i * 0.125D); + return candidate; + } + } + Vec3 fallback = destination.position().add(normal.scale(Math.max(1.0D, entity.getBbWidth() + 0.5D))); + Antarchy.LOGGER.info("Portal gun could not find clear exit entity={} destination={} requested={} fallback={}", entity.getUUID(), destination.getUUID(), requestedExitPos, fallback); + return fallback; + } + + private boolean canPlaceEntityAt(Entity entity, Vec3 position) { + AABB movedBounds = entity.getBoundingBox().move(position.x - entity.getX(), position.y - entity.getY(), position.z - entity.getZ()); + return this.level().noCollision(entity, movedBounds); + } + + private void tickTeleportCooldowns() { + Iterator> iterator = this.teleportCooldowns.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry entry = iterator.next(); + int cooldown = entry.getValue() - 1; + if (cooldown < 0) { + iterator.remove(); + } else { + entry.setValue(cooldown); + } + } + } + + private void applyTeleportCooldown(Entity entity, PortalGunPortalEntity destination) { + UUID entityId = entity.getUUID(); + this.teleportCooldowns.put(entityId, TELEPORT_COOLDOWN_TICKS); + destination.teleportCooldowns.put(entityId, TELEPORT_COOLDOWN_TICKS); + } + + private void handleSpecialEntityPostTeleport(Entity entity) { + if (entity instanceof AbstractArrow arrow) { + ((AbstractArrowAccessor) arrow).antarchy$setInGround(false); + ((AbstractArrowAccessor) arrow).antarchy$setInGroundTime(0); + ((AbstractArrowAccessor) arrow).antarchy$setShakeTime(0); + arrow.setNoPhysics(false); + } + } + + 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.getWorldPortalShape().getBoundsForCulling(); + } + + @Override + protected AABB makeBoundingBox() { + return this.getPortalInsides(); + } + + @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("PairTime", this.pairTime); + tag.putInt("Side", this.getPortalSide().ordinal()); + tag.putInt("Facing", this.getFacingDirection().get3DDataValue()); + tag.putInt("UpAxis", this.getUpAxis().get3DDataValue()); + tag.putInt("ChannelRed", this.getChannelRed()); + tag.putInt("ChannelGreen", this.getChannelGreen()); + tag.putInt("ChannelBlue", this.getChannelBlue()); + tag.putInt("SupportX", this.supportOrigin.getX()); + tag.putInt("SupportY", this.supportOrigin.getY()); + tag.putInt("SupportZ", this.supportOrigin.getZ()); + tag.putInt("MasterX", this.masterPos.getX()); + tag.putInt("MasterY", this.masterPos.getY()); + tag.putInt("MasterZ", this.masterPos.getZ()); + tag.putInt("BaseX", this.basePos.getX()); + tag.putInt("BaseY", this.basePos.getY()); + tag.putInt("BaseZ", this.basePos.getZ()); + ListTag spots = new ListTag(); + for (BlockPos portalSpot : this.portalSpots) { + CompoundTag spot = new CompoundTag(); + spot.putInt("X", portalSpot.getX()); + spot.putInt("Y", portalSpot.getY()); + spot.putInt("Z", portalSpot.getZ()); + spots.add(spot); + } + tag.put("PortalSpots", spots); + ListTag compensated = new ListTag(); + for (BlockPos compensatedSpot : this.compensatedSpots) { + CompoundTag spot = new CompoundTag(); + spot.putInt("X", compensatedSpot.getX()); + spot.putInt("Y", compensatedSpot.getY()); + spot.putInt("Z", compensatedSpot.getZ()); + compensated.add(spot); + } + tag.put("CompensatedSpots", compensated); + } + + @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.entityData.set(LINKED_PORTAL, Optional.of(this.linkedPortalId)); + } + this.ageTicks = tag.getInt("AgeTicks"); + this.pairTime = tag.getInt("PairTime"); + this.entityData.set(SIDE, tag.getInt("Side")); + this.entityData.set(FACING, tag.getInt("Facing")); + this.entityData.set(UP_AXIS, tag.getInt("UpAxis")); + if (tag.contains("ChannelRed")) { + this.entityData.set(CHANNEL_RED, tag.getInt("ChannelRed")); + this.entityData.set(CHANNEL_GREEN, tag.getInt("ChannelGreen")); + this.entityData.set(CHANNEL_BLUE, tag.getInt("ChannelBlue")); + } else if (this.ownerId != null) { + int[] channelColor = generateChannelColor(this.ownerId, this.getPortalSide()); + this.entityData.set(CHANNEL_RED, channelColor[0]); + this.entityData.set(CHANNEL_GREEN, channelColor[1]); + this.entityData.set(CHANNEL_BLUE, channelColor[2]); + } + this.supportOrigin = new BlockPos(tag.getInt("SupportX"), tag.getInt("SupportY"), tag.getInt("SupportZ")); + this.masterPos = new BlockPos(tag.getInt("MasterX"), tag.getInt("MasterY"), tag.getInt("MasterZ")); + this.basePos = new BlockPos(tag.getInt("BaseX"), tag.getInt("BaseY"), tag.getInt("BaseZ")); + ListTag spots = tag.getList("PortalSpots", Tag.TAG_COMPOUND); + for (int i = 0; i < Math.min(2, spots.size()); i++) { + CompoundTag spot = spots.getCompound(i); + this.portalSpots[i] = new BlockPos(spot.getInt("X"), spot.getInt("Y"), spot.getInt("Z")); + } + ListTag compensated = tag.getList("CompensatedSpots", Tag.TAG_COMPOUND); + Set compensatedSpots = new HashSet<>(); + for (int i = 0; i < compensated.size(); i++) { + CompoundTag spot = compensated.getCompound(i); + compensatedSpots.add(new BlockPos(spot.getInt("X"), spot.getInt("Y"), spot.getInt("Z"))); + } + this.compensatedSpots = compensatedSpots; + } + + @Override + public void remove(Entity.RemovalReason reason) { + Level level = this.level(); + UUID ownerId = this.ownerId; + super.remove(reason); + if (!level.isClientSide && ownerId != null && level instanceof ServerLevel serverLevel) { + PortalGunSavedData.clearPortal(serverLevel.getServer(), ownerId, this.getPortalSide(), this.getUUID()); + this.clearPortalBlocks(serverLevel); + } + } + + private void clearPortalBlocks(ServerLevel level) { + for (BlockPos portalSpot : this.portalSpots) { + if (level.getBlockEntity(portalSpot) instanceof PortalGunPortalMasterBlockEntity master && this.getUUID().equals(master.getPortalId())) { + level.removeBlock(portalSpot, false); + continue; + } + if (level.getBlockEntity(portalSpot) instanceof PortalGunPortalBaseBlockEntity base && this.getUUID().equals(base.getPortalId())) { + level.removeBlock(portalSpot, false); + } + } + } + + @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(new ResourceLocation(Antarchy.MODID, path)).orElse(fallback); + } + + private static int[] generateChannelColor(UUID ownerId, PortalSide side) { + int seed = ownerId == null ? side.ordinal() : ownerId.hashCode() ^ side.ordinal() * 0x45d9f3b; + int wobbleA = Math.floorMod(seed, 54); + int wobbleB = Math.floorMod(seed >> 8, 46); + int wobbleC = Math.floorMod(seed >> 16, 38); + if (side == PortalSide.BLUE) { + return new int[] {42 + wobbleC, 128 + wobbleB, 218 + wobbleA / 3}; + } + return new int[] {230 + wobbleA / 5, 108 + wobbleB, 28 + wobbleC}; + } + + private record PortalLocalCoords(double horizontal, double vertical, double depth) { + } + + private record PortalBounds(double minHorizontal, double maxHorizontal, double minVertical, double maxVertical, double minDepth, double maxDepth) { + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunProjectileEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunProjectileEntity.java new file mode 100644 index 00000000..6d9569c6 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunProjectileEntity.java @@ -0,0 +1,244 @@ +package com.craisinlord.antarchy.content.portalgun; + +import com.craisinlord.antarchy.content.item.PortalGunItem; +import java.util.UUID; +import net.minecraft.core.BlockPos; +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.server.level.ServerLevel; +import net.minecraft.world.entity.Entity; +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.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.EntityHitResult; +import net.minecraft.world.phys.Vec3; + +public class PortalGunProjectileEntity extends ThrowableItemProjectile { + private static final EntityDataAccessor SIDE = SynchedEntityData.defineId(PortalGunProjectileEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor SHOOTER_ID = SynchedEntityData.defineId(PortalGunProjectileEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor DISTANCE = SynchedEntityData.defineId(PortalGunProjectileEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor SPAWN_X = SynchedEntityData.defineId(PortalGunProjectileEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor SPAWN_Y = SynchedEntityData.defineId(PortalGunProjectileEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor SPAWN_Z = SynchedEntityData.defineId(PortalGunProjectileEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor VELOCITY_X = SynchedEntityData.defineId(PortalGunProjectileEntity.class, EntityDataSerializers.FLOAT); + private static final EntityDataAccessor VELOCITY_Y = SynchedEntityData.defineId(PortalGunProjectileEntity.class, EntityDataSerializers.FLOAT); + private static final EntityDataAccessor VELOCITY_Z = SynchedEntityData.defineId(PortalGunProjectileEntity.class, EntityDataSerializers.FLOAT); + private static final int MAX_FLIGHT_TICKS = 80; + private UUID gunId; + private boolean spawnSynced; + public int portalWidth = 1; + public int portalHeight = 2; + + public PortalGunProjectileEntity(EntityType entityType, Level level) { + super(entityType, level); + this.configureProjectile(); + } + + public PortalGunProjectileEntity(EntityType entityType, LivingEntity owner, Level level) { + super(entityType, owner, level); + this.configureProjectile(); + } + + private void configureProjectile() { + this.setNoGravity(true); + this.noCulling = true; + } + + @Override + protected void defineSynchedData() { + super.defineSynchedData(); + this.entityData.define(SIDE, PortalGunPortalEntity.PortalSide.BLUE.ordinal()); + this.entityData.define(SHOOTER_ID, -1); + this.entityData.define(DISTANCE, 0); + this.entityData.define(SPAWN_X, 0); + this.entityData.define(SPAWN_Y, 0); + this.entityData.define(SPAWN_Z, 0); + this.entityData.define(VELOCITY_X, 0.0F); + this.entityData.define(VELOCITY_Y, 0.0F); + this.entityData.define(VELOCITY_Z, 0.0F); + } + + public void configure(PortalGunPortalEntity.PortalSide side, UUID gunId, ItemStack gunStack) { + this.entityData.set(SIDE, side.ordinal()); + this.gunId = gunId; + this.setItem(gunStack.copyWithCount(1)); + Entity owner = this.getOwner(); + this.entityData.set(SHOOTER_ID, owner == null ? -1 : owner.getId()); + this.syncSpawnPosition(this.blockPosition()); + this.syncVelocity(); + } + + public PortalGunPortalEntity.PortalSide getPortalSide() { + return this.entityData.get(SIDE) == PortalGunPortalEntity.PortalSide.ORANGE.ordinal() ? PortalGunPortalEntity.PortalSide.ORANGE : PortalGunPortalEntity.PortalSide.BLUE; + } + + public int getShooterId() { + return this.entityData.get(SHOOTER_ID); + } + + public int getSyncedDistance() { + return this.entityData.get(DISTANCE); + } + + public BlockPos getSyncedSpawnPos() { + return new BlockPos(this.entityData.get(SPAWN_X), this.entityData.get(SPAWN_Y), this.entityData.get(SPAWN_Z)); + } + + public Vec3 getSyncedVelocity() { + return new Vec3(this.entityData.get(VELOCITY_X), this.entityData.get(VELOCITY_Y), this.entityData.get(VELOCITY_Z)); + } + + @Override + protected Item getDefaultItem() { + return Items.AIR; + } + + protected double getDefaultGravity() { + return 0.0D; + } + + @Override + protected boolean canHitEntity(Entity target) { + return false; + } + + @Override + public boolean canBeCollidedWith() { + return false; + } + + @Override + public boolean isAttackable() { + return false; + } + + @Override + public void tick() { + super.tick(); + if (!this.spawnSynced) { + this.syncSpawnPosition(this.blockPosition()); + } + this.syncVelocity(); + this.entityData.set(DISTANCE, this.tickCount); + if (this.tickCount > MAX_FLIGHT_TICKS) { + this.discard(); + return; + } + Vec3 motion = this.getDeltaMovement(); + if (motion.lengthSqr() > 1.0E-6D) { + double horizontal = Math.sqrt(motion.x * motion.x + motion.z * motion.z); + this.setYRot((float) (net.minecraft.util.Mth.atan2(motion.z, motion.x) * (180.0D / Math.PI)) - 90.0F); + this.setXRot((float) (-(net.minecraft.util.Mth.atan2(motion.y, horizontal) * (180.0D / Math.PI)))); + } + if (this.level().isClientSide) { + Vec3 point = this.position(); + if (this.getPortalSide() == PortalGunPortalEntity.PortalSide.BLUE) { + this.level().addParticle(net.minecraft.core.particles.ParticleTypes.SOUL_FIRE_FLAME, point.x, point.y, point.z, 0.0D, 0.0D, 0.0D); + this.level().addParticle(net.minecraft.core.particles.ParticleTypes.END_ROD, point.x, point.y, point.z, 0.0D, 0.0D, 0.0D); + } else { + this.level().addParticle(net.minecraft.core.particles.ParticleTypes.FLAME, point.x, point.y, point.z, 0.0D, 0.0D, 0.0D); + this.level().addParticle(net.minecraft.core.particles.ParticleTypes.CRIT, point.x, point.y, point.z, 0.0D, 0.0D, 0.0D); + } + } + } + + @Override + protected void onHitEntity(EntityHitResult result) { + } + + @Override + protected void onHitBlock(BlockHitResult result) { + if (!this.level().isClientSide && this.level() instanceof ServerLevel serverLevel) { + this.spawnImpactParticles(serverLevel, result.getLocation()); + ItemStack sourceStack = this.resolveSourceStack(); + if (this.getOwner() instanceof Player player && sourceStack.getItem() instanceof PortalGunItem portalGunItem) { + portalGunItem.handlePortalImpact(serverLevel, player, sourceStack, this.getPortalSide(), result, this.position()); + } + } + this.discard(); + } + + private void spawnImpactParticles(ServerLevel level, Vec3 impactPos) { + if (this.getPortalSide() == PortalGunPortalEntity.PortalSide.BLUE) { + level.sendParticles(net.minecraft.core.particles.ParticleTypes.SOUL_FIRE_FLAME, impactPos.x, impactPos.y, impactPos.z, 10, 0.08D, 0.08D, 0.08D, 0.01D); + level.sendParticles(net.minecraft.core.particles.ParticleTypes.END_ROD, impactPos.x, impactPos.y, impactPos.z, 6, 0.04D, 0.04D, 0.04D, 0.01D); + return; + } + level.sendParticles(net.minecraft.core.particles.ParticleTypes.FLAME, impactPos.x, impactPos.y, impactPos.z, 10, 0.08D, 0.08D, 0.08D, 0.01D); + level.sendParticles(net.minecraft.core.particles.ParticleTypes.CRIT, impactPos.x, impactPos.y, impactPos.z, 6, 0.04D, 0.04D, 0.04D, 0.01D); + } + + private void syncSpawnPosition(BlockPos pos) { + this.entityData.set(SPAWN_X, pos.getX()); + this.entityData.set(SPAWN_Y, pos.getY()); + this.entityData.set(SPAWN_Z, pos.getZ()); + this.spawnSynced = true; + } + + private void syncVelocity() { + Vec3 velocity = this.getDeltaMovement(); + this.entityData.set(VELOCITY_X, (float) velocity.x); + this.entityData.set(VELOCITY_Y, (float) velocity.y); + this.entityData.set(VELOCITY_Z, (float) velocity.z); + } + + private ItemStack resolveSourceStack() { + ItemStack projectileStack = this.getItem(); + if (!(this.getOwner() instanceof Player player) || !(projectileStack.getItem() instanceof PortalGunItem portalGunItem) || this.gunId == null) { + return projectileStack; + } + ItemStack matching = portalGunItem.findMatchingGunStack(player, this.gunId); + return matching.isEmpty() ? projectileStack : matching; + } + + @Override + public void addAdditionalSaveData(CompoundTag tag) { + super.addAdditionalSaveData(tag); + tag.putInt("Side", this.entityData.get(SIDE)); + tag.putInt("ShooterId", this.entityData.get(SHOOTER_ID)); + tag.putInt("Distance", this.entityData.get(DISTANCE)); + tag.putInt("SpawnX", this.entityData.get(SPAWN_X)); + tag.putInt("SpawnY", this.entityData.get(SPAWN_Y)); + tag.putInt("SpawnZ", this.entityData.get(SPAWN_Z)); + tag.putFloat("VelocityX", this.entityData.get(VELOCITY_X)); + tag.putFloat("VelocityY", this.entityData.get(VELOCITY_Y)); + tag.putFloat("VelocityZ", this.entityData.get(VELOCITY_Z)); + tag.putInt("PortalWidth", this.portalWidth); + tag.putInt("PortalHeight", this.portalHeight); + if (this.gunId != null) { + tag.putUUID("GunId", this.gunId); + } + } + + @Override + public void readAdditionalSaveData(CompoundTag tag) { + super.readAdditionalSaveData(tag); + this.entityData.set(SIDE, tag.getInt("Side")); + this.entityData.set(SHOOTER_ID, tag.getInt("ShooterId")); + this.entityData.set(DISTANCE, tag.getInt("Distance")); + this.entityData.set(SPAWN_X, tag.getInt("SpawnX")); + this.entityData.set(SPAWN_Y, tag.getInt("SpawnY")); + this.entityData.set(SPAWN_Z, tag.getInt("SpawnZ")); + this.entityData.set(VELOCITY_X, tag.getFloat("VelocityX")); + this.entityData.set(VELOCITY_Y, tag.getFloat("VelocityY")); + this.entityData.set(VELOCITY_Z, tag.getFloat("VelocityZ")); + this.portalWidth = Math.max(1, tag.getInt("PortalWidth")); + this.portalHeight = Math.max(2, tag.getInt("PortalHeight")); + this.spawnSynced = true; + if (tag.hasUUID("GunId")) { + this.gunId = tag.getUUID("GunId"); + } + ItemStack itemStack = this.getItem(); + if (this.gunId != null && !itemStack.isEmpty()) { + itemStack.getOrCreateTag().putUUID(PortalGunItem.GUN_ID_TAG, this.gunId); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunSavedData.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunSavedData.java new file mode 100644 index 00000000..f4935684 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunSavedData.java @@ -0,0 +1,151 @@ +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.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.Entity; +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) { + 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) { + 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( + PortalGunSavedData::load, + PortalGunSavedData::create, + 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()); + } + + public static PortalGunPortalEntity findLoadedPortal(MinecraftServer server, UUID owner, PortalGunPortalEntity.PortalSide side) { + Optional portalId = getPortalId(server, owner, side); + if (portalId.isEmpty()) { + return null; + } + for (ServerLevel level : server.getAllLevels()) { + Entity entity = level.getEntity(portalId.get()); + if (entity instanceof PortalGunPortalEntity portal && !portal.isRemoved()) { + return portal; + } + } + return null; + } + + 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.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunTransformUtil.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunTransformUtil.java new file mode 100644 index 00000000..3ad4ec8b --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunTransformUtil.java @@ -0,0 +1,117 @@ +package com.craisinlord.antarchy.content.portalgun; + +import net.minecraft.util.Mth; +import net.minecraft.world.phys.Vec3; +import org.joml.Matrix3f; +import org.joml.Quaternionf; +import org.joml.Vector3f; + +public final class PortalGunTransformUtil { + private static final Vec3 WORLD_UP = new Vec3(0.0D, 1.0D, 0.0D); + private static final Vec3 WORLD_FORWARD_FALLBACK = new Vec3(0.0D, 0.0D, 1.0D); + + private PortalGunTransformUtil() { + } + + public static Quaternionf createTransform(PortalGunPortalEntity sourcePortal, PortalGunPortalEntity destinationPortal) { + return createTransform(sourcePortal.getWidthVec(), sourcePortal.getUpVec(), sourcePortal.getNormalVec().scale(-1.0D), destinationPortal.getWidthVec(), destinationPortal.getUpVec(), destinationPortal.getNormalVec()); + } + + public static Quaternionf createTransform(Vec3 sourceWidth, Vec3 sourceUp, Vec3 sourceForward, Vec3 destinationWidth, Vec3 destinationUp, Vec3 destinationForward) { + Matrix3f sourceBasis = new Matrix3f( + (float) sourceWidth.x, (float) sourceUp.x, (float) sourceForward.x, + (float) sourceWidth.y, (float) sourceUp.y, (float) sourceForward.y, + (float) sourceWidth.z, (float) sourceUp.z, (float) sourceForward.z + ); + Matrix3f destinationBasis = new Matrix3f( + (float) destinationWidth.x, (float) destinationUp.x, (float) destinationForward.x, + (float) destinationWidth.y, (float) destinationUp.y, (float) destinationForward.y, + (float) destinationWidth.z, (float) destinationUp.z, (float) destinationForward.z + ); + Matrix3f transform = destinationBasis.mul(sourceBasis.transpose(new Matrix3f()), new Matrix3f()); + return transform.getNormalizedRotation(new Quaternionf()); + } + + public static Vec3 transform(Vec3 vector, Quaternionf quaternion) { + Vector3f rotated = new Vector3f((float) vector.x, (float) vector.y, (float) vector.z).rotate(quaternion); + return new Vec3(rotated.x(), rotated.y(), rotated.z()); + } + + public static Vec3 transformRelativePosition(PortalGunPortalEntity sourcePortal, PortalGunPortalEntity destinationPortal, Vec3 relativePosition) { + return transformPosition(sourcePortal, destinationPortal, relativePosition); + } + + public static Vec3 transformPosition(PortalGunPortalEntity sourcePortal, PortalGunPortalEntity destinationPortal, Vec3 relativePosition) { + Vec3 sourceWidth = sourcePortal.getWidthVec().normalize(); + Vec3 sourceUp = sourcePortal.getUpVec().normalize(); + Vec3 sourceNormal = sourcePortal.getNormalVec().normalize(); + Vec3 destinationWidth = destinationPortal.getWidthVec().normalize(); + Vec3 destinationUp = destinationPortal.getUpVec().normalize(); + Vec3 destinationNormal = destinationPortal.getNormalVec().normalize(); + return destinationWidth.scale(relativePosition.dot(sourceWidth)) + .add(destinationUp.scale(relativePosition.dot(sourceUp))) + .add(destinationNormal.scale(relativePosition.dot(sourceNormal))); + } + + public static Vec3 transformVector(PortalGunPortalEntity sourcePortal, PortalGunPortalEntity destinationPortal, Vec3 vector) { + Vec3 sourceWidth = sourcePortal.getWidthVec().normalize(); + Vec3 sourceUp = sourcePortal.getUpVec().normalize(); + Vec3 sourceInto = sourcePortal.getNormalVec().normalize().scale(-1.0D); + Vec3 destinationWidth = destinationPortal.getWidthVec().normalize(); + Vec3 destinationUp = destinationPortal.getUpVec().normalize(); + Vec3 destinationOut = destinationPortal.getNormalVec().normalize(); + return destinationWidth.scale(vector.dot(sourceWidth)) + .add(destinationUp.scale(vector.dot(sourceUp))) + .add(destinationOut.scale(vector.dot(sourceInto))); + } + + public static float yawFromLook(Vec3 look) { + return (float) Math.toDegrees(Math.atan2(-look.x, look.z)); + } + + public static float pitchFromLook(Vec3 look) { + return (float) Math.toDegrees(-Math.asin(Mth.clamp(look.y, -1.0D, 1.0D))); + } + + public static Vec3 upVectorFromLookAndRoll(Vec3 look, float rollDegrees) { + Vec3 normalizedLook = look.normalize(); + Vec3 referenceUp = Math.abs(normalizedLook.dot(WORLD_UP)) > 0.999D ? WORLD_FORWARD_FALLBACK : WORLD_UP; + Vec3 right = referenceUp.cross(normalizedLook).normalize(); + Vec3 up = normalizedLook.cross(right).normalize(); + if (Math.abs(rollDegrees) <= 1.0E-4F) { + return up; + } + Quaternionf roll = new Quaternionf().fromAxisAngleDeg((float) normalizedLook.x, (float) normalizedLook.y, (float) normalizedLook.z, rollDegrees); + return transform(up, roll).normalize(); + } + + public static float rollFromOrientation(Vec3 look, Vec3 up) { + Vec3 normalizedLook = look.normalize(); + Vec3 normalizedUp = up.normalize(); + Vec3 baseUp = upVectorFromLookAndRoll(normalizedLook, 0.0F); + Vec3 projectedUp = normalizedUp.subtract(normalizedLook.scale(normalizedUp.dot(normalizedLook))); + if (projectedUp.lengthSqr() < 1.0E-8D) { + return 0.0F; + } + projectedUp = projectedUp.normalize(); + double sin = normalizedLook.dot(baseUp.cross(projectedUp)); + double cos = Mth.clamp(baseUp.dot(projectedUp), -1.0D, 1.0D); + return normalizeDegrees((float) Math.toDegrees(Math.atan2(sin, cos))); + } + + public static Quaternionf orientationQuaternion(Vec3 look, Vec3 up) { + Vec3 forward = look.normalize(); + Vec3 correctedUp = up.subtract(forward.scale(up.dot(forward))).normalize(); + Vec3 right = correctedUp.cross(forward).normalize(); + Matrix3f basis = new Matrix3f( + (float) right.x, (float) correctedUp.x, (float) (-forward.x), + (float) right.y, (float) correctedUp.y, (float) (-forward.y), + (float) right.z, (float) correctedUp.z, (float) (-forward.z) + ); + return basis.getNormalizedRotation(new Quaternionf()); + } + + public static float normalizeDegrees(float degrees) { + return Mth.wrapDegrees(degrees); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunWorldPortalShape.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunWorldPortalShape.java new file mode 100644 index 00000000..a8394276 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunWorldPortalShape.java @@ -0,0 +1,189 @@ +package com.craisinlord.antarchy.content.portalgun; + +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import java.util.List; + +public record PortalGunWorldPortalShape( + Vec3 center, + Vec3 normal, + Vec3 up, + Vec3 right, + double halfWidth, + double halfHeight, + double halfDepth +) { + public static final double DEFAULT_SCAN_DISTANCE = 3.0D; + + public AABB getPlane() { + return this.createPlaneAround(0.0D, 0.0125D); + } + + public AABB getFlatPlane() { + return this.createPlaneAround(0.0D, 0.0D); + } + + public AABB getScanRange() { + return this.getFlatPlane().expandTowards(this.normal.scale(DEFAULT_SCAN_DISTANCE)); + } + + public AABB getPortalInsides() { + return this.createPlaneAround(0.0D, this.halfDepth); + } + + public AABB getTeleportPlane(double offset) { + return this.createPlaneAround(offset, this.halfDepth); + } + + public Vec3[] getCorners(double normalOffset) { + Vec3 center = this.center.add(this.normal.scale(normalOffset)); + Vec3 width = this.right.scale(this.halfWidth); + Vec3 height = this.up.scale(this.halfHeight); + return new Vec3[] { + center.subtract(width).subtract(height), + center.subtract(width).add(height), + center.add(width).add(height), + center.add(width).subtract(height) + }; + } + + public PortalLocalCoords localCoords(Vec3 position) { + Vec3 relative = position.subtract(this.center); + return new PortalLocalCoords(relative.dot(this.right), relative.dot(this.up), relative.dot(this.normal)); + } + + public boolean contains(Vec3 position, double depthPadding) { + PortalLocalCoords coords = this.localCoords(position); + return Math.abs(coords.horizontal()) <= this.halfWidth + && Math.abs(coords.vertical()) <= this.halfHeight + && Math.abs(coords.depth()) <= this.halfDepth + depthPadding; + } + + public boolean crosses(Vec3 previousPosition, Vec3 currentPosition) { + PortalLocalCoords previous = this.localCoords(previousPosition); + PortalLocalCoords current = this.localCoords(currentPosition); + double depthDelta = current.depth() - previous.depth(); + if (depthDelta > -1.0E-6D || previous.depth() <= 0.0D || current.depth() > 0.0D) { + return false; + } + double t = -previous.depth() / depthDelta; + if (t < 0.0D || t > 1.0D) { + return false; + } + double horizontal = previous.horizontal() + (current.horizontal() - previous.horizontal()) * t; + double vertical = previous.vertical() + (current.vertical() - previous.vertical()) * t; + return Math.abs(horizontal) <= this.halfWidth && Math.abs(vertical) <= this.halfHeight; + } + + public boolean shouldRenderFront(Vec3 cameraPos) { + PortalLocalCoords coords = this.localCoords(cameraPos); + if (coords.depth() <= -0.25D) { + return false; + } + double depthScale = Math.min(DEFAULT_SCAN_DISTANCE, Math.max(0.0D, coords.depth())); + return Math.abs(coords.horizontal()) <= this.halfWidth + depthScale + && Math.abs(coords.vertical()) <= this.halfHeight + depthScale; + } + + public boolean intersectsFront(AABB box, double tolerance) { + double maxDepth = Double.NEGATIVE_INFINITY; + for (Vec3 corner : corners(box)) { + maxDepth = Math.max(maxDepth, this.localCoords(corner).depth()); + if (maxDepth >= -tolerance) { + return true; + } + } + return false; + } + + public boolean intersectsPortalColumn(AABB box, double horizontalPadding, double verticalPadding, double depthPadding) { + double minHorizontal = Double.POSITIVE_INFINITY; + double maxHorizontal = Double.NEGATIVE_INFINITY; + double minVertical = Double.POSITIVE_INFINITY; + double maxVertical = Double.NEGATIVE_INFINITY; + double minDepth = Double.POSITIVE_INFINITY; + double maxDepth = Double.NEGATIVE_INFINITY; + for (Vec3 corner : corners(box)) { + PortalLocalCoords coords = this.localCoords(corner); + minHorizontal = Math.min(minHorizontal, coords.horizontal()); + maxHorizontal = Math.max(maxHorizontal, coords.horizontal()); + minVertical = Math.min(minVertical, coords.vertical()); + maxVertical = Math.max(maxVertical, coords.vertical()); + minDepth = Math.min(minDepth, coords.depth()); + maxDepth = Math.max(maxDepth, coords.depth()); + } + return maxHorizontal >= -this.halfWidth - horizontalPadding + && minHorizontal <= this.halfWidth + horizontalPadding + && maxVertical >= -this.halfHeight - verticalPadding + && minVertical <= this.halfHeight + verticalPadding + && maxDepth >= -this.halfDepth - depthPadding + && minDepth <= this.halfDepth + depthPadding; + } + + public AABB getBoundsForCulling() { + return this.createPlaneAround(0.0D, this.halfDepth).inflate(1.5D); + } + + public List getCollisionBoundaries(double borderThickness) { + double horizontalOuter = this.halfWidth + borderThickness; + double verticalOuter = this.halfHeight + borderThickness; + return List.of( + this.createLocalBox(-horizontalOuter, this.halfWidth, -verticalOuter, verticalOuter, -this.halfDepth, this.halfDepth), + this.createLocalBox(-this.halfWidth, horizontalOuter, -verticalOuter, verticalOuter, -this.halfDepth, this.halfDepth), + this.createLocalBox(-this.halfWidth, this.halfWidth, -verticalOuter, -this.halfHeight, -this.halfDepth, this.halfDepth), + this.createLocalBox(-this.halfWidth, this.halfWidth, this.halfHeight, verticalOuter, -this.halfDepth, this.halfDepth) + ); + } + + private AABB createPlaneAround(double planeOffset, double thickness) { + Vec3 boxCenter = this.center.add(this.normal.scale(planeOffset)); + double halfX = this.halfWidth * Math.abs(this.right.x) + this.halfHeight * Math.abs(this.up.x) + thickness * Math.abs(this.normal.x); + double halfY = this.halfWidth * Math.abs(this.right.y) + this.halfHeight * Math.abs(this.up.y) + thickness * Math.abs(this.normal.y); + double halfZ = this.halfWidth * Math.abs(this.right.z) + this.halfHeight * Math.abs(this.up.z) + thickness * Math.abs(this.normal.z); + return new AABB(boxCenter.x - halfX, boxCenter.y - halfY, boxCenter.z - halfZ, boxCenter.x + halfX, boxCenter.y + halfY, boxCenter.z + halfZ); + } + + private AABB createLocalBox(double minHorizontal, double maxHorizontal, double minVertical, double maxVertical, double minDepth, double maxDepth) { + Vec3[] corners = new Vec3[] { + this.center.add(this.right.scale(minHorizontal)).add(this.up.scale(minVertical)).add(this.normal.scale(minDepth)), + this.center.add(this.right.scale(minHorizontal)).add(this.up.scale(minVertical)).add(this.normal.scale(maxDepth)), + this.center.add(this.right.scale(minHorizontal)).add(this.up.scale(maxVertical)).add(this.normal.scale(minDepth)), + this.center.add(this.right.scale(minHorizontal)).add(this.up.scale(maxVertical)).add(this.normal.scale(maxDepth)), + this.center.add(this.right.scale(maxHorizontal)).add(this.up.scale(minVertical)).add(this.normal.scale(minDepth)), + this.center.add(this.right.scale(maxHorizontal)).add(this.up.scale(minVertical)).add(this.normal.scale(maxDepth)), + this.center.add(this.right.scale(maxHorizontal)).add(this.up.scale(maxVertical)).add(this.normal.scale(minDepth)), + this.center.add(this.right.scale(maxHorizontal)).add(this.up.scale(maxVertical)).add(this.normal.scale(maxDepth)) + }; + double minX = Double.POSITIVE_INFINITY; + double minY = Double.POSITIVE_INFINITY; + double minZ = Double.POSITIVE_INFINITY; + double maxX = Double.NEGATIVE_INFINITY; + double maxY = Double.NEGATIVE_INFINITY; + double maxZ = Double.NEGATIVE_INFINITY; + for (Vec3 corner : corners) { + minX = Math.min(minX, corner.x); + minY = Math.min(minY, corner.y); + minZ = Math.min(minZ, corner.z); + maxX = Math.max(maxX, corner.x); + maxY = Math.max(maxY, corner.y); + maxZ = Math.max(maxZ, corner.z); + } + return new AABB(minX, minY, minZ, maxX, maxY, maxZ); + } + + private static Vec3[] corners(AABB box) { + return new Vec3[] { + new Vec3(box.minX, box.minY, box.minZ), + new Vec3(box.minX, box.minY, box.maxZ), + new Vec3(box.minX, box.maxY, box.minZ), + new Vec3(box.minX, box.maxY, box.maxZ), + new Vec3(box.maxX, box.minY, box.minZ), + new Vec3(box.maxX, box.minY, box.maxZ), + new Vec3(box.maxX, box.maxY, box.minZ), + new Vec3(box.maxX, box.maxY, box.maxZ) + }; + } + + public record PortalLocalCoords(double horizontal, double vertical, double depth) { + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationApi.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationApi.java new file mode 100644 index 00000000..ab83067f --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationApi.java @@ -0,0 +1,122 @@ +package com.craisinlord.antarchy.content.time; + +import java.util.function.BiConsumer; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.List; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.phys.Vec3; + +public final class TimeDilationApi { + private static final ThreadLocal ROTATION_BYPASS = ThreadLocal.withInitial(() -> false); + private static BiConsumer syncDispatcher = (entity, rate) -> { + }; + private static BiConsumer> fieldSyncDispatcher = (player, fields) -> { + }; + private static final Map SYNCED_CLIENT_RATES = new ConcurrentHashMap<>(); + + private TimeDilationApi() { + } + + public static void setSyncDispatcher(BiConsumer dispatcher) { + syncDispatcher = dispatcher != null ? dispatcher : (entity, rate) -> { + }; + } + + public static void setFieldSyncDispatcher(BiConsumer> dispatcher) { + fieldSyncDispatcher = dispatcher != null ? dispatcher : (player, fields) -> { + }; + } + + public static TimeDilationFieldEntity createField(ServerLevel level, Vec3 center, double radius, double rate, int durationTicks) { + return createField(level, center, radius, rate, durationTicks, null); + } + + public static TimeDilationFieldEntity createField(ServerLevel level, Vec3 center, double radius, double rate, int durationTicks, UUID ownerId) { + TimeDilationFieldEntity field = TimeDilationFieldEntity.create(level, center, radius, rate, durationTicks, ownerId); + level.addFreshEntity(field); + return field; + } + + public static double getRate(Entity entity) { + if (entity instanceof TimeDilationEntityAccess access) { + if (entity.level().isClientSide) { + Double syncedRate = SYNCED_CLIENT_RATES.get(entity.getUUID()); + if (syncedRate != null) { + return syncedRate; + } + } + return access.antarchy$getTimeDilationRate(); + } + return TimeDilationMath.NORMAL_RATE; + } + + public static boolean isDilated(Entity entity) { + return getRate(entity) < TimeDilationMath.NORMAL_RATE; + } + + public static void setInheritedRate(Entity entity, double rate) { + if (entity instanceof TimeDilationEntityAccess access) { + access.antarchy$setInheritedTimeDilationRate(rate); + } + } + + public static void applySyncedRate(Entity entity, double rate) { + applySyncedRate(entity.getUUID(), rate); + if (entity instanceof TimeDilationEntityAccess access) { + access.antarchy$setTimeDilationRate(rate); + } + } + + public static void applySyncedRate(UUID entityUuid, double rate) { + double clampedRate = TimeDilationMath.clampRate(rate); + SYNCED_CLIENT_RATES.put(entityUuid, clampedRate); + } + + /** Clears both the authoritative entity state and any client-side UUID cache. */ + public static void clearRate(Entity entity) { + if (entity instanceof TimeDilationEntityAccess access) { + boolean wasDilated = access.antarchy$getTimeDilationRate() < TimeDilationMath.NORMAL_RATE; + access.antarchy$setTimeDilationRate(TimeDilationMath.NORMAL_RATE); + if (wasDilated) { + syncEntityRate(entity, TimeDilationMath.NORMAL_RATE); + } + } + SYNCED_CLIENT_RATES.remove(entity.getUUID()); + } + + public static void clearSyncedClientRates() { + SYNCED_CLIENT_RATES.clear(); + } + + public static void syncEntityRate(Entity entity, double rate) { + syncDispatcher.accept(entity, TimeDilationMath.clampRate(rate)); + } + + public static void syncFields(ServerPlayer player, List fields) { + fieldSyncDispatcher.accept(player, fields); + } + + public static boolean consumeTick(Entity entity, String timerKey) { + double rate = getRate(entity); + if (rate >= TimeDilationMath.NORMAL_RATE || !(entity instanceof TimeDilationEntityAccess access)) { + return true; + } + return access.antarchy$consumeTimeDilationTick(timerKey, rate); + } + + public static int scaleCooldownTicks(Entity entity, int ticks) { + double rate = getRate(entity); + if (ticks <= 0 || rate >= TimeDilationMath.NORMAL_RATE) { + return ticks; + } + return (int) Math.ceil(ticks / Math.max(TimeDilationMath.MIN_RATE, rate)); + } + + public static void enterRotationBypass() { ROTATION_BYPASS.set(true); } + public static void exitRotationBypass() { ROTATION_BYPASS.set(false); } + public static boolean isRotationBypassActive() { return ROTATION_BYPASS.get(); } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationCommand.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationCommand.java new file mode 100644 index 00000000..891c5258 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationCommand.java @@ -0,0 +1,101 @@ +package com.craisinlord.antarchy.content.time; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.DoubleArgumentType; +import com.mojang.brigadier.arguments.IntegerArgumentType; +import com.mojang.brigadier.context.CommandContext; +import java.util.ArrayList; +import java.util.List; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.commands.arguments.coordinates.Vec3Argument; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.phys.Vec3; + +public final class TimeDilationCommand { + private TimeDilationCommand() { + } + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("timedilation") + .requires(source -> source.hasPermission(2)) + .then(Commands.literal("create") + .then(Commands.argument("center", Vec3Argument.vec3()) + .then(Commands.argument("radius", DoubleArgumentType.doubleArg(0.5D, 128.0D)) + .then(Commands.argument("rate", DoubleArgumentType.doubleArg(TimeDilationMath.MIN_RATE, 1.0D)) + .then(Commands.argument("durationTicks", IntegerArgumentType.integer(-1)) + .executes(TimeDilationCommand::create)))))) + .then(Commands.literal("create_here") + .then(Commands.argument("radius", DoubleArgumentType.doubleArg(0.5D, 128.0D)) + .then(Commands.argument("rate", DoubleArgumentType.doubleArg(TimeDilationMath.MIN_RATE, 1.0D)) + .then(Commands.argument("durationTicks", IntegerArgumentType.integer(-1)) + .executes(TimeDilationCommand::createHere))))) + .then(Commands.literal("list").executes(TimeDilationCommand::list)) + .then(Commands.literal("clear").executes(TimeDilationCommand::clear)) + ); + } + + private static int create(CommandContext context) { + return createField(context, Vec3Argument.getVec3(context, "center")); + } + + private static int createHere(CommandContext context) { + return createField(context, context.getSource().getPosition()); + } + + private static int createField(CommandContext context, Vec3 center) { + ServerLevel level = context.getSource().getLevel(); + double radius = DoubleArgumentType.getDouble(context, "radius"); + double rate = DoubleArgumentType.getDouble(context, "rate"); + int durationTicks = IntegerArgumentType.getInteger(context, "durationTicks"); + TimeDilationFieldEntity field = TimeDilationApi.createField(level, center, radius, rate, durationTicks); + context.getSource().sendSuccess( + () -> Component.literal("Created time dilation field " + field.getUUID() + " radius=" + radius + + " rate=" + rate + " durationTicks=" + durationTicks), + true + ); + return 1; + } + + private static int list(CommandContext context) { + int count = 0; + for (ServerLevel level : context.getSource().getServer().getAllLevels()) { + for (Entity entity : level.getAllEntities()) { + if (!(entity instanceof TimeDilationFieldEntity field)) { + continue; + } + count++; + context.getSource().sendSuccess( + () -> Component.literal(field.getUUID() + " " + level.dimension().location() + " @ " + + format(field.position()) + " radius=" + field.fieldRadius() + " rate=" + field.fieldRate() + + " age=" + field.fieldAge() + + (field.isInfinite() ? " duration=infinite" : " duration=" + field.fieldDurationTicks())), + false + ); + } + } + return count; + } + + private static int clear(CommandContext context) { + List fields = new ArrayList<>(); + for (ServerLevel level : context.getSource().getServer().getAllLevels()) { + for (Entity entity : level.getAllEntities()) { + if (entity instanceof TimeDilationFieldEntity field) { + fields.add(field); + } + } + } + fields.forEach(Entity::discard); + int count = fields.size(); + context.getSource().sendSuccess(() -> Component.literal("Cleared " + count + " time dilation field(s)"), true); + return count; + } + + private static String format(Vec3 vec) { + return String.format(java.util.Locale.ROOT, "%.2f %.2f %.2f", vec.x, vec.y, vec.z); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationEntityAccess.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationEntityAccess.java new file mode 100644 index 00000000..af7ed8af --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationEntityAccess.java @@ -0,0 +1,21 @@ +package com.craisinlord.antarchy.content.time; + +public interface TimeDilationEntityAccess { + double antarchy$getTimeDilationRate(); + + void antarchy$setTimeDilationRate(double rate); + + double antarchy$getInheritedTimeDilationRate(); + + void antarchy$setInheritedTimeDilationRate(double rate); + + boolean antarchy$consumeTimeDilationTick(String timerKey, double rate); + + boolean antarchy$isInTimeDilationMove(); + + void antarchy$setInTimeDilationMove(boolean inMove); + + boolean antarchy$isApplyingExternalImpulse(); + + void antarchy$setApplyingExternalImpulse(boolean applying); +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationFieldEntity.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationFieldEntity.java new file mode 100644 index 00000000..b7a9d7af --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationFieldEntity.java @@ -0,0 +1,132 @@ +package com.craisinlord.antarchy.content.time; + +import com.craisinlord.antarchy.content.AntarchyObjects; +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.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; +import java.util.UUID; + +public class TimeDilationFieldEntity extends Entity { + private static final EntityDataAccessor RADIUS = + SynchedEntityData.defineId(TimeDilationFieldEntity.class, EntityDataSerializers.FLOAT); + private static final EntityDataAccessor RATE = + SynchedEntityData.defineId(TimeDilationFieldEntity.class, EntityDataSerializers.FLOAT); + + private static final String RADIUS_KEY = "Radius"; + private static final String RATE_KEY = "Rate"; + private static final String DURATION_KEY = "DurationTicks"; + private static final String AGE_KEY = "Age"; + + private int durationTicks = -1; + private int age; + private UUID ownerId; + + public TimeDilationFieldEntity(EntityType entityType, Level level) { + super(entityType, level); + this.noPhysics = true; + this.noCulling = true; + } + + public static TimeDilationFieldEntity create(Level level, Vec3 center, double radius, double rate, int durationTicks) { + return create(level, center, radius, rate, durationTicks, null); + } + + public static TimeDilationFieldEntity create(Level level, Vec3 center, double radius, double rate, int durationTicks, UUID ownerId) { + TimeDilationFieldEntity field = new TimeDilationFieldEntity(AntarchyObjects.TIME_DILATION_FIELD.get(), level); + field.setPos(center.x, center.y, center.z); + field.setFieldRadius(radius); + field.setFieldRate(rate); + field.durationTicks = durationTicks; + field.ownerId = ownerId; + return field; + } + + public boolean isOwnedBy(Entity entity) { + return this.ownerId != null && entity != null && this.ownerId.equals(entity.getUUID()); + } + + @Override + protected void defineSynchedData() { + this.entityData.define(RADIUS, 8.0F); + this.entityData.define(RATE, (float) TimeDilationMath.NORMAL_RATE); + } + + @Override + public void tick() { + super.tick(); + if (this.level().isClientSide) { + return; + } + this.age++; + if (this.durationTicks >= 0 && this.age >= this.durationTicks) { + this.discard(); + } + } + + public void setFieldRadius(double radius) { + this.entityData.set(RADIUS, (float) Math.max(0.5D, radius)); + } + + public double fieldRadius() { + return this.entityData.get(RADIUS); + } + + public double fieldRadiusSqr() { + double radius = this.fieldRadius(); + return radius * radius; + } + + public void setFieldRate(double rate) { + this.entityData.set(RATE, (float) TimeDilationMath.clampRate(rate)); + } + + public double fieldRate() { + return TimeDilationMath.clampRate(this.entityData.get(RATE)); + } + + public double effectiveFieldRate() { + return TimeDilationMath.effectiveFieldRate(this.fieldRate(), this.age, this.durationTicks); + } + + public int fieldDurationTicks() { + return this.durationTicks; + } + + public int fieldAge() { + return this.age; + } + + public boolean isInfinite() { + return this.durationTicks < 0; + } + + @Override + public boolean isIgnoringBlockTriggers() { + return true; + } + + @Override + protected void readAdditionalSaveData(CompoundTag tag) { + this.setFieldRadius(tag.getDouble(RADIUS_KEY)); + this.setFieldRate(tag.getDouble(RATE_KEY)); + this.durationTicks = tag.contains(DURATION_KEY) ? tag.getInt(DURATION_KEY) : -1; + this.age = tag.getInt(AGE_KEY); + this.ownerId = tag.hasUUID("OwnerUuid") ? tag.getUUID("OwnerUuid") : null; + } + + @Override + protected void addAdditionalSaveData(CompoundTag tag) { + tag.putDouble(RADIUS_KEY, this.fieldRadius()); + tag.putDouble(RATE_KEY, this.fieldRate()); + tag.putInt(DURATION_KEY, this.durationTicks); + tag.putInt(AGE_KEY, this.age); + if (this.ownerId != null) { + tag.putUUID("OwnerUuid", this.ownerId); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationFieldSampler.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationFieldSampler.java new file mode 100644 index 00000000..5053c6db --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationFieldSampler.java @@ -0,0 +1,50 @@ +package com.craisinlord.antarchy.content.time; + +import java.util.List; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.phys.Vec3; + +public final class TimeDilationFieldSampler { + private TimeDilationFieldSampler() { + } + + public static double sample(List fields, Vec3 position) { + return sample(fields, position.x, position.y, position.z); + } + + public static double sample(List fields, double x, double y, double z) { + double combinedRate = TimeDilationMath.NORMAL_RATE; + for (TimeDilationFieldEntity field : fields) { + Vec3 center = field.position(); + double dx = center.x - x; + double dy = center.y - y; + double dz = center.z - z; + double distanceSqr = dx * dx + dy * dy + dz * dz; + if (distanceSqr >= field.fieldRadiusSqr()) { + continue; + } + double falloff = TimeDilationMath.gaussianFalloff(Math.sqrt(distanceSqr), field.fieldRadius()); + combinedRate *= TimeDilationMath.localFieldRate(field.effectiveFieldRate(), falloff); + } + return TimeDilationMath.clampRate(combinedRate); + } + + public static double sample(List fields, Entity entity) { + double combinedRate = TimeDilationMath.NORMAL_RATE; + for (TimeDilationFieldEntity field : fields) { + if (field.isOwnedBy(entity)) { + continue; + } + Vec3 center = field.position(); + double dx = center.x - entity.getX(); + double dy = center.y - entity.getY(); + double dz = center.z - entity.getZ(); + double distanceSqr = dx * dx + dy * dy + dz * dz; + if (distanceSqr < field.fieldRadiusSqr()) { + double falloff = TimeDilationMath.gaussianFalloff(Math.sqrt(distanceSqr), field.fieldRadius()); + combinedRate *= TimeDilationMath.localFieldRate(field.effectiveFieldRate(), falloff); + } + } + return TimeDilationMath.clampRate(combinedRate); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationFieldSnapshot.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationFieldSnapshot.java new file mode 100644 index 00000000..3a888752 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationFieldSnapshot.java @@ -0,0 +1,19 @@ +package com.craisinlord.antarchy.content.time; + +public record TimeDilationFieldSnapshot( + double x, + double y, + double z, + double radius, + double rate, + int age, + int durationTicks +) { + public double radiusSquared() { + return this.radius * this.radius; + } + + public double effectiveRate() { + return TimeDilationMath.effectiveFieldRate(this.rate, this.age, this.durationTicks); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationFieldSnapshotSampler.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationFieldSnapshotSampler.java new file mode 100644 index 00000000..96a27f27 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationFieldSnapshotSampler.java @@ -0,0 +1,22 @@ +package com.craisinlord.antarchy.content.time; + +public final class TimeDilationFieldSnapshotSampler { + private TimeDilationFieldSnapshotSampler() { + } + + public static double sample(Iterable fields, double x, double y, double z) { + double combinedRate = TimeDilationMath.NORMAL_RATE; + for (TimeDilationFieldSnapshot field : fields) { + double dx = field.x() - x; + double dy = field.y() - y; + double dz = field.z() - z; + double distanceSqr = dx * dx + dy * dy + dz * dz; + if (distanceSqr >= field.radiusSquared()) { + continue; + } + double falloff = TimeDilationMath.gaussianFalloff(Math.sqrt(distanceSqr), field.radius()); + combinedRate *= TimeDilationMath.localFieldRate(field.effectiveRate(), falloff); + } + return TimeDilationMath.clampRate(combinedRate); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationManager.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationManager.java new file mode 100644 index 00000000..92782c4d --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationManager.java @@ -0,0 +1,166 @@ +package com.craisinlord.antarchy.content.time; + +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.AntarchyTags; +import com.craisinlord.antarchy.content.effect.DilatedMobEffect; +import com.craisinlord.antarchy.content.effect.ContractedMobEffect; +import com.craisinlord.antarchy.content.effect.TimeDilationEligibility; +import java.util.ArrayList; +import java.util.Collections; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.WeakHashMap; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.projectile.Projectile; + +public final class TimeDilationManager { + private static final Map TRACKING = new WeakHashMap<>(); + + private TimeDilationManager() { + } + + public static void tickServer(MinecraftServer server) { + for (ServerLevel level : server.getAllLevels()) { + List fields = collectFields(level); + TrackingState tracking = TRACKING.computeIfAbsent(level, ignored -> new TrackingState()); + discoverFieldEntities(level, fields, tracking); + syncFieldSnapshots(level, fields, tracking); + updateEntities(level, fields, tracking); + if (fields.isEmpty() && tracking.entities.isEmpty()) { + TRACKING.remove(level); + } + if (!fields.isEmpty()) { + TimeDilationParticles.spawnFieldBorders(level, fields); + } + } + } + + public static void trackPotentiallyAffected(Entity entity) { + if (!(entity.level() instanceof ServerLevel level) || entity instanceof TimeDilationFieldEntity) { + return; + } + if (entity instanceof TimeDilationEntityAccess access + && Math.abs(access.antarchy$getTimeDilationRate() - TimeDilationMath.NORMAL_RATE) < 0.001D + && Math.abs(access.antarchy$getInheritedTimeDilationRate() - TimeDilationMath.NORMAL_RATE) < 0.001D + && (!(entity instanceof LivingEntity living) || !living.hasEffect(AntarchyObjects.DILATED_EFFECT.get()))) { + return; + } + TRACKING.computeIfAbsent(level, ignored -> new TrackingState()).entities.add(entity); + } + + private static void syncFieldSnapshots(ServerLevel level, List fields, TrackingState tracking) { + List snapshots = fields.stream() + .map(field -> new TimeDilationFieldSnapshot(field.getX(), field.getY(), field.getZ(), + field.fieldRadius(), field.fieldRate(), field.fieldAge(), field.fieldDurationTicks())) + .limit(128) + .toList(); + if (level.getGameTime() % 4L != 0L && snapshots.size() == tracking.lastSnapshots.size()) { + return; + } + tracking.lastSnapshots = snapshots; + for (ServerPlayer player : level.players()) { + TimeDilationApi.syncFields(player, snapshots); + } + } + + private static List collectFields(ServerLevel level) { + List fields = new ArrayList<>(); + for (Entity entity : level.getAllEntities()) { + if (entity instanceof TimeDilationFieldEntity field && field.isAlive()) { + fields.add(field); + } + } + return fields; + } + + private static void discoverFieldEntities(ServerLevel level, List fields, TrackingState tracking) { + for (TimeDilationFieldEntity field : fields) { + double radius = field.fieldRadius(); + var center = field.position(); + var area = new net.minecraft.world.phys.AABB(center.x - radius, center.y - radius, center.z - radius, + center.x + radius, center.y + radius, center.z + radius); + tracking.entities.addAll(level.getEntities(field, area, + entity -> entity.isAlive() && !(entity instanceof TimeDilationFieldEntity) + && entity instanceof TimeDilationEntityAccess)); + } + } + + private static void updateEntities(ServerLevel level, List fields, TrackingState tracking) { + var iterator = tracking.entities.iterator(); + while (iterator.hasNext()) { + Entity entity = iterator.next(); + if (!(entity instanceof TimeDilationEntityAccess access) || entity instanceof TimeDilationFieldEntity) { + continue; + } + boolean blocked = entity.getType().is(AntarchyTags.Entities.TIME_DILATION_IMMUNE) + || entity.getType().is(AntarchyTags.Entities.DILATED_BLACKLIST); + if (entity instanceof LivingEntity living) { + blocked = blocked || !TimeDilationEligibility.canApply(living); + } + if (blocked) { + if (entity instanceof LivingEntity living) { + living.removeEffect(AntarchyObjects.DILATED_EFFECT.get()); + } + TimeDilationApi.clearRate(entity); + iterator.remove(); + continue; + } + + double previousRate = access.antarchy$getTimeDilationRate(); + double fieldRate = TimeDilationFieldSampler.sample(fields, entity); + double effectRate = TimeDilationMath.NORMAL_RATE; + if (entity instanceof LivingEntity living) { + var effect = living.getEffect(AntarchyObjects.DILATED_EFFECT.get()); + if (effect != null) { + effectRate = DilatedMobEffect.rateForAmplifier(effect.getAmplifier()); + } + var contracted = living.getEffect(AntarchyObjects.CONTRACTED_EFFECT.get()); + if (contracted != null) { + effectRate = Math.max(effectRate, ContractedMobEffect.rateForAmplifier(contracted.getAmplifier())); + } + } + double inheritedRate = access.antarchy$getInheritedTimeDilationRate(); + if (entity instanceof Projectile projectile && projectile.getOwner() != null) { + double ownerRate = TimeDilationApi.getRate(projectile.getOwner()); + inheritedRate = ownerRate < TimeDilationMath.NORMAL_RATE + ? Math.min(inheritedRate, ownerRate) : Math.max(inheritedRate, ownerRate); + } + double slowRate = TimeDilationMath.NORMAL_RATE; + double fastRate = TimeDilationMath.NORMAL_RATE; + for (double candidate : new double[]{fieldRate, effectRate, inheritedRate}) { + if (candidate < TimeDilationMath.NORMAL_RATE) slowRate = Math.min(slowRate, candidate); + else fastRate = Math.max(fastRate, candidate); + } + double targetRate = slowRate < TimeDilationMath.NORMAL_RATE ? slowRate : fastRate; + double rate = TimeDilationMath.transitionRate(previousRate, targetRate); + if (Math.abs(targetRate - TimeDilationMath.NORMAL_RATE) < 0.001D + && Math.abs(rate - TimeDilationMath.NORMAL_RATE) < 0.001D) { + TimeDilationApi.clearRate(entity); + } else { + access.antarchy$setTimeDilationRate(rate); + } + if (Math.abs(previousRate - rate) > 0.001D) { + TimeDilationApi.syncEntityRate(entity, rate); + } + boolean hasEffect = entity instanceof LivingEntity living && living.hasEffect(AntarchyObjects.DILATED_EFFECT.get()); + boolean hasInheritedRate = Math.abs(access.antarchy$getInheritedTimeDilationRate() - TimeDilationMath.NORMAL_RATE) >= 0.001D; + boolean hasActiveRate = Math.abs(access.antarchy$getTimeDilationRate() - TimeDilationMath.NORMAL_RATE) >= 0.001D; + if (!hasEffect && !hasInheritedRate && !hasActiveRate + && Math.abs(targetRate - TimeDilationMath.NORMAL_RATE) < 0.001D) { + iterator.remove(); + } + } + tracking.entities.removeIf(entity -> !entity.isAlive() || entity.isRemoved()); + } + + private static final class TrackingState { + private final Set entities = Collections.newSetFromMap(new IdentityHashMap<>()); + private List lastSnapshots = List.of(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationMath.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationMath.java new file mode 100644 index 00000000..8a4c3e28 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationMath.java @@ -0,0 +1,66 @@ +package com.craisinlord.antarchy.content.time; + +public final class TimeDilationMath { + public static final double MIN_RATE = 0.05D; + public static final double NORMAL_RATE = 1.0D; + public static final int FIELD_TRANSITION_TICKS = 20; + public static final int EFFECT_TRANSITION_TICKS = 20; + private static final double GAUSSIAN_EDGE_EXPONENT = -4.5D; + + private TimeDilationMath() { + } + + public static double clampRate(double rate) { + if (Double.isNaN(rate) || Double.isInfinite(rate)) { + return NORMAL_RATE; + } + return Math.max(MIN_RATE, Math.min(NORMAL_RATE, rate)); + } + + /** Moves an entity's effective rate toward a new effect/field target without a hard step. */ + public static double transitionRate(double currentRate, double targetRate) { + double current = clampRate(currentRate); + double target = clampRate(targetRate); + double maximumStep = (NORMAL_RATE - MIN_RATE) / EFFECT_TRANSITION_TICKS; + double delta = Math.max(-maximumStep, Math.min(maximumStep, target - current)); + return clampRate(current + delta); + } + + public static double gaussianFalloff(double distance, double radius) { + if (distance < 0.0D || distance >= radius || radius <= 0.0D) { + return 0.0D; + } + double normalized = distance / radius; + return Math.exp(GAUSSIAN_EDGE_EXPONENT * normalized * normalized); + } + + public static double localFieldRate(double fieldRate, double falloff) { + double clampedRate = clampRate(fieldRate); + double clampedFalloff = Math.max(0.0D, Math.min(1.0D, falloff)); + if (clampedRate <= 0.0D) { + return 0.0D; + } + return Math.pow(clampedRate, clampedFalloff); + } + + public static double smoothStep(double value) { + double clamped = Math.max(0.0D, Math.min(1.0D, value)); + return clamped * clamped * (3.0D - 2.0D * clamped); + } + + public static double fieldStrength(int age, int durationTicks) { + double fadeIn = smoothStep((double) age / FIELD_TRANSITION_TICKS); + if (durationTicks < 0) { + return fadeIn; + } + + double remaining = durationTicks - age; + double fadeOut = smoothStep(remaining / FIELD_TRANSITION_TICKS); + return Math.min(fadeIn, fadeOut); + } + + public static double effectiveFieldRate(double fieldRate, int age, int durationTicks) { + double strength = fieldStrength(age, durationTicks); + return NORMAL_RATE + (clampRate(fieldRate) - NORMAL_RATE) * strength; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationParticles.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationParticles.java new file mode 100644 index 00000000..7bbee5c5 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/time/TimeDilationParticles.java @@ -0,0 +1,49 @@ +package com.craisinlord.antarchy.content.time; + +import java.util.List; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.Mth; +import net.minecraft.world.phys.Vec3; + +public final class TimeDilationParticles { + private static final int PARTICLE_INTERVAL_TICKS = 4; + private static final int MAX_RING_POINTS = 96; + + private TimeDilationParticles() { + } + + public static void spawnFieldBorders(ServerLevel level, List fields) { + if (level.getGameTime() % PARTICLE_INTERVAL_TICKS != 0L) { + return; + } + for (TimeDilationFieldEntity field : fields) { + spawnBorder(level, field.position(), field.fieldRadius()); + } + } + + private static void spawnBorder(ServerLevel level, Vec3 center, double radius) { + int points = Mth.clamp((int) Math.ceil(radius * 10.0D), 24, MAX_RING_POINTS); + double phase = (level.getGameTime() % 80L) * 0.07853981633974483D; + + for (int i = 0; i < points; i++) { + double angle = phase + (Math.PI * 2.0D * i / points); + double x = center.x + Math.cos(angle) * radius; + double z = center.z + Math.sin(angle) * radius; + spawnParticle(level, x, center.y, z); + + if (i % 4 == 0) { + spawnParticle(level, x, center.y + radius * 0.5D, z); + spawnParticle(level, x, center.y - radius * 0.5D, z); + } + if (i % 8 == 0) { + spawnParticle(level, center.x + Math.cos(angle) * radius * 0.7D, center.y + Math.sin(angle) * radius, center.z); + spawnParticle(level, center.x, center.y + Math.sin(angle) * radius, center.z + Math.cos(angle) * radius * 0.7D); + } + } + } + + private static void spawnParticle(ServerLevel level, double x, double y, double z) { + level.sendParticles(ParticleTypes.REVERSE_PORTAL, x, y, z, 1, 0.02D, 0.02D, 0.02D, 0.0D); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/util/WormHookRope.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/util/WormHookRope.java new file mode 100644 index 00000000..6912b529 --- /dev/null +++ b/common-1.20.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.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/GlimmeringReedFeature.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/GlimmeringReedFeature.java new file mode 100644 index 00000000..afa5cd0d --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/GlimmeringReedFeature.java @@ -0,0 +1,59 @@ +package com.craisinlord.antarchy.content.worldgen.elythia; + +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.AntarchyTags; +import com.craisinlord.antarchy.content.block.GlimmeringReedBlock; +import com.mojang.serialization.Codec; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.block.DoublePlantBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.Heightmap; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; + +public final class GlimmeringReedFeature extends Feature { + public GlimmeringReedFeature(Codec codec) { + super(codec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + WorldGenLevel level = context.level(); + RandomSource random = context.random(); + BlockPos origin = context.origin(); + BlockState reed = AntarchyObjects.GLIMMERING_REED.get().defaultBlockState(); + boolean placedAny = false; + + for (int i = 0; i < 18; i++) { + int x = origin.getX() + random.nextInt(17) - 8; + int z = origin.getZ() + random.nextInt(17) - 8; + int surfaceY = level.getHeight(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, x, z) - 1; + BlockPos groundPos = new BlockPos(x, surfaceY, z); + BlockPos reedPos = groundPos.above(); + if (!level.getBlockState(groundPos).isSolid() || !level.isEmptyBlock(reedPos) + || !level.isEmptyBlock(reedPos.above()) || !reed.canSurvive(level, reedPos)) { + continue; + } + + boolean besideLumen = false; + for (Direction direction : Direction.Plane.HORIZONTAL) { + if (level.getFluidState(groundPos.relative(direction)).is(AntarchyTags.Fluids.LUMEN) + && level.getFluidState(groundPos.relative(direction)).isSource()) { + besideLumen = true; + break; + } + } + if (!besideLumen) { + continue; + } + + DoublePlantBlock.placeAt(level, reed, reedPos, 2); + placedAny = true; + } + return placedAny; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/KingsTreeGrid.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/KingsTreeGrid.java new file mode 100644 index 00000000..93aae0a4 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/KingsTreeGrid.java @@ -0,0 +1,30 @@ +package com.craisinlord.antarchy.content.worldgen.elythia; + +import com.craisinlord.antarchy.Antarchy; +import net.minecraft.core.BlockPos; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.levelgen.structure.Structure; + +public final class KingsTreeGrid { + public static final int SPACING = 5_000; + public static final ResourceKey ELYTHIA = ResourceKey.create(Registries.DIMENSION, + new ResourceLocation(Antarchy.MODID, "elythia")); + public static final ResourceKey STRUCTURE_KEY = ResourceKey.create(Registries.STRUCTURE, + new ResourceLocation(Antarchy.MODID, "kings_tree")); + + private KingsTreeGrid() {} + + public static int nearestCoordinate(int coordinate, boolean permitZero) { + long gridIndex = Math.round(coordinate / (double) SPACING); + if (!permitZero && gridIndex == 0) gridIndex = coordinate < 0 ? -1 : 1; + return Math.toIntExact(gridIndex * SPACING); + } + + public static BlockPos nearestTreeCenter(BlockPos origin) { + return new BlockPos(nearestCoordinate(origin.getX(), false), origin.getY(), + nearestCoordinate(origin.getZ(), false)); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/KingsTreeGridFeature.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/KingsTreeGridFeature.java new file mode 100644 index 00000000..14643c93 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/KingsTreeGridFeature.java @@ -0,0 +1,72 @@ +package com.craisinlord.antarchy.content.worldgen.elythia; + +import com.craisinlord.antarchy.Antarchy; +import com.mojang.serialization.Codec; +import java.util.Optional; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.levelgen.Heightmap; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.structure.BoundingBox; +import net.minecraft.world.level.levelgen.structure.templatesystem.BlockIgnoreProcessor; +import net.minecraft.world.level.levelgen.structure.templatesystem.StructurePlaceSettings; +import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate; +import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplateManager; + +/** Places the authored King's Tree as independently generated chunk slices on a fixed world grid. */ +public final class KingsTreeGridFeature extends Feature { + private static final int TREE_MIN_X = -191, TREE_MAX_X = 192; + private static final int TREE_MIN_Z = -227, TREE_MAX_Z = 227; + private static final int TREE_BOTTOM_Y = -22, TREE_TOP_Y = 335; + + public KingsTreeGridFeature(Codec codec) { super(codec); } + + @Override + public boolean place(FeaturePlaceContext context) { + WorldGenLevel level = context.level(); + ChunkPos chunk = new ChunkPos(context.origin()); + int centerX = KingsTreeGrid.nearestCoordinate(chunk.getMiddleBlockX(), true); + int centerZ = KingsTreeGrid.nearestCoordinate(chunk.getMiddleBlockZ(), true); + if (centerX == 0 || centerZ == 0) return false; + int relativeMinX = chunk.getMinBlockX() - centerX, relativeMaxX = chunk.getMaxBlockX() - centerX; + int relativeMinZ = chunk.getMinBlockZ() - centerZ, relativeMaxZ = chunk.getMaxBlockZ() - centerZ; + if (relativeMaxX < TREE_MIN_X || relativeMinX > TREE_MAX_X + || relativeMaxZ < TREE_MIN_Z || relativeMinZ > TREE_MAX_Z) return false; + int minTileX = Math.floorDiv(relativeMinX, 16), maxTileX = Math.floorDiv(relativeMaxX, 16); + int minTileZ = Math.floorDiv(relativeMinZ, 16), maxTileZ = Math.floorDiv(relativeMaxZ, 16); + int surfaceY = context.chunkGenerator().getBaseHeight(centerX, centerZ, + Heightmap.Types.WORLD_SURFACE_WG, level, level.getLevel().getChunkSource().randomState()); + int minimumBaseY = level.getMinBuildHeight() - TREE_BOTTOM_Y; + int maximumBaseY = level.getMaxBuildHeight() - 1 - TREE_TOP_Y; + int baseY = Mth.clamp(surfaceY, minimumBaseY, maximumBaseY); + BlockPos treeBottomOrigin = new BlockPos(0, baseY + TREE_BOTTOM_Y, 0); + BoundingBox chunkBounds = new BoundingBox(chunk.getMinBlockX(), level.getMinBuildHeight(), chunk.getMinBlockZ(), + chunk.getMaxBlockX(), level.getMaxBuildHeight() - 1, chunk.getMaxBlockZ()); + StructurePlaceSettings settings = new StructurePlaceSettings().setBoundingBox(chunkBounds) + .addProcessor(BlockIgnoreProcessor.STRUCTURE_BLOCK); + StructureTemplateManager templates = level.getLevel().getStructureManager(); + RandomSource random = context.random(); + boolean placed = false; + for (int tileX = minTileX; tileX <= maxTileX; tileX++) { + for (int tileZ = minTileZ; tileZ <= maxTileZ; tileZ++) { + Optional template = templates.get(tileLocation(tileX, tileZ)); + if (template.isEmpty()) continue; + BlockPos tileOrigin = treeBottomOrigin.offset(centerX + tileX * 16, 0, centerZ + tileZ * 16); + placed |= template.get().placeInWorld(level, tileOrigin, tileOrigin, settings, random, 2); + } + } + return placed; + } + + private static ResourceLocation tileLocation(int tileX, int tileZ) { + return new ResourceLocation(Antarchy.MODID, "kings_tree_tiles/" + coordinateName(tileX) + "_" + coordinateName(tileZ)); + } + + private static String coordinateName(int coordinate) { return coordinate < 0 ? "m" + -coordinate : "p" + coordinate; } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/royal/RoyalTreeConfiguration.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/royal/RoyalTreeConfiguration.java new file mode 100644 index 00000000..5e8186aa --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/royal/RoyalTreeConfiguration.java @@ -0,0 +1,29 @@ +package com.craisinlord.antarchy.content.worldgen.royal; + +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 RoyalTreeConfiguration( + BlockStateProvider trunkProvider, + BlockStateProvider leavesProvider, + IntProvider height, + IntProvider trunkDrift, + IntProvider canopyRadius, + IntProvider canopyLayers, + IntProvider branchCount, + IntProvider strutCount +) implements FeatureConfiguration { + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + BlockStateProvider.CODEC.fieldOf("trunk_provider").forGetter(RoyalTreeConfiguration::trunkProvider), + BlockStateProvider.CODEC.fieldOf("leaves_provider").forGetter(RoyalTreeConfiguration::leavesProvider), + IntProvider.codec(6, 48).fieldOf("height").forGetter(RoyalTreeConfiguration::height), + IntProvider.codec(0, 12).fieldOf("trunk_drift").forGetter(RoyalTreeConfiguration::trunkDrift), + IntProvider.codec(2, 14).fieldOf("canopy_radius").forGetter(RoyalTreeConfiguration::canopyRadius), + IntProvider.codec(1, 8).fieldOf("canopy_layers").forGetter(RoyalTreeConfiguration::canopyLayers), + IntProvider.codec(0, 8).fieldOf("branch_count").forGetter(RoyalTreeConfiguration::branchCount), + IntProvider.codec(0, 4).fieldOf("strut_count").forGetter(RoyalTreeConfiguration::strutCount) + ).apply(instance, RoyalTreeConfiguration::new)); +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/royal/RoyalTreeFeature.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/royal/RoyalTreeFeature.java new file mode 100644 index 00000000..37d9700c --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/royal/RoyalTreeFeature.java @@ -0,0 +1,266 @@ +package com.craisinlord.antarchy.content.worldgen.royal; + +import com.craisinlord.antarchy.content.block.RoyalLeavesBlock; +import com.mojang.serialization.Codec; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Random; +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.WorldGenLevel; +import net.minecraft.world.level.block.LeavesBlock; +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 RoyalTreeFeature extends Feature { + public RoyalTreeFeature(Codec codec) { + super(codec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + WorldGenLevel level = context.level(); + BlockPos origin = context.origin(); + RandomSource random = context.random(); + RoyalTreeConfiguration config = context.config(); + + for (int dx = 0; dx <= 1; dx++) { + for (int dz = 0; dz <= 1; dz++) { + BlockPos ground = origin.offset(dx, -1, dz); + if (!level.getBlockState(ground).isFaceSturdy(level, ground, Direction.UP)) { + return false; + } + if (!canReplace(level, origin.offset(dx, 0, dz))) { + return false; + } + } + } + + Set logs = new HashSet<>(); + Set leaves = new HashSet<>(); + + int height = config.height().sample(random); + int drift = config.trunkDrift().sample(random); + int backBend = Math.round(drift * 0.45F); + Direction driftDir = Direction.Plane.HORIZONTAL.getRandomDirection(random); + + int splitLen = 2 + random.nextInt(3); + int splitStartY = Math.max(2, height - splitLen); + + int[] topOffset = curveOffset(splitStartY, height, drift, backBend, driftDir); + + for (int y = 0; y < splitStartY; y++) { + int[] off = curveOffset(y, height, drift, backBend, driftDir); + for (int dx = 0; dx <= 1; dx++) { + for (int dz = 0; dz <= 1; dz++) { + placeLog(level, random, config, origin.offset(off[0] + dx, y, off[1] + dz), logs); + } + } + } + + placeButtress(level, random, config, origin, logs); + + int struts = Mth.clamp(config.strutCount().sample(random), 0, 4); + int[][] corners = {{0, 0}, {1, 0}, {0, 1}, {1, 1}}; + List pool = new ArrayList<>(List.of(corners)); + Collections.shuffle(pool, new Random(random.nextLong())); + for (int i = 0; i < struts && i < pool.size(); i++) { + int[] corner = pool.get(i); + int outX = corner[0] == 1 ? 1 : -1; + int outZ = corner[1] == 1 ? 1 : -1; + for (int y = splitStartY; y <= height; y++) { + int spread = Math.min((y - splitStartY + 1) / 2, 2); + int sx = topOffset[0] + corner[0] + outX * spread; + int sz = topOffset[1] + corner[1] + outZ * spread; + placeLog(level, random, config, origin.offset(sx, y, sz), logs); + } + } + + int radius = config.canopyRadius().sample(random); + int layers = config.canopyLayers().sample(random); + BlockPos canopyCenter = origin.offset(topOffset[0], height, topOffset[1]); + placeCanopy(level, random, config, canopyCenter, radius, layers, 2, 2, leaves); + + int branches = Mth.clamp(config.branchCount().sample(random), 0, 8); + int branchSpan = Math.max(1, height - 6); + for (int b = 0; b < branches; b++) { + int startY = 3 + random.nextInt(branchSpan); + int[] branchOff = curveOffset(startY, height, drift, backBend, driftDir); + Direction branchDir = Direction.Plane.HORIZONTAL.getRandomDirection(random); + int branchLen = 2 + random.nextInt(5); + int bx = branchOff[0] + (branchDir.getStepX() > 0 ? 1 : 0); + int bz = branchOff[1] + (branchDir.getStepZ() > 0 ? 1 : 0); + BlockPos cursor = origin.offset(bx, startY, bz); + for (int s = 1; s <= branchLen; s++) { + cursor = cursor.relative(branchDir); + if (s % 2 == 0) { + cursor = cursor.above(); + } + placeLog(level, random, config, cursor, logs); + } + int padRadius = 2 + random.nextInt(3); + placeCanopy(level, random, config, cursor.above(), padRadius, Math.max(2, padRadius - 1), 1, 0, leaves); + } + + refreshLeafDistances(level, leaves, logs); + + return true; + } + + private void placeButtress(WorldGenLevel level, RandomSource random, RoyalTreeConfiguration config, BlockPos origin, Set logs) { + int legs = 2 + random.nextInt(3); + List dirs = new ArrayList<>(Direction.Plane.HORIZONTAL.stream().toList()); + Collections.shuffle(dirs, new Random(random.nextLong())); + for (int i = 0; i < legs && i < dirs.size(); i++) { + Direction dir = dirs.get(i); + int len = 2 + random.nextInt(3); + int startX = dir.getStepX() > 0 ? 1 : 0; + int startZ = dir.getStepZ() > 0 ? 1 : 0; + BlockPos cursor = origin.offset(startX, 0, startZ); + for (int s = 1; s <= len; s++) { + cursor = cursor.relative(dir); + int downY = -(s / 2); + BlockPos upper = cursor.offset(0, downY, 0); + BlockPos lower = cursor.offset(0, downY - 1, 0); + setBlock(level, upper, config.trunkProvider().getState(random, upper)); + setBlock(level, lower, config.trunkProvider().getState(random, lower)); + logs.add(upper.immutable()); + logs.add(lower.immutable()); + } + } + } + + private void placeCanopy( + WorldGenLevel level, + RandomSource random, + RoyalTreeConfiguration config, + BlockPos center, + int radius, + int layers, + int shell, + int bottomRecess, + Set leaves + ) { + float rf = Math.max(1.0F, radius); + for (int dx = -radius - 1; dx <= radius + 1; dx++) { + for (int dz = -radius - 1; dz <= radius + 1; dz++) { + float d = Mth.sqrt(dx * dx + dz * dz); + float norm = d / rf; + if (norm > 1.05F) { + continue; + } + + int rimCut = 0; + if (norm > 0.7F && random.nextFloat() < 0.38F) { + rimCut = 1; + } + if (d - rimCut > rf) { + continue; + } + + int topY = Math.round(layers * Mth.sqrt(Math.max(0.0F, 1.0F - norm * norm))); + if (topY < 1) { + topY = 1; + } + int bottomY = Math.round(bottomRecess * (1.0F - Math.min(1.0F, norm))); + if (bottomY > topY) { + continue; + } + + for (int y = bottomY; y <= topY; y++) { + boolean interior = topY - y >= shell && y - bottomY >= shell && rf - d >= shell; + if (interior) { + continue; + } + placeLeaf(level, random, config, center.offset(dx, y, dz), leaves); + } + } + } + } + + private void placeLog(WorldGenLevel level, RandomSource random, RoyalTreeConfiguration config, BlockPos pos, Set logs) { + if (!canReplace(level, pos)) { + return; + } + setBlock(level, pos, config.trunkProvider().getState(random, pos)); + logs.add(pos.immutable()); + } + + private void placeLeaf(WorldGenLevel level, RandomSource random, RoyalTreeConfiguration config, BlockPos pos, Set leaves) { + BlockState existing = level.getBlockState(pos); + if (!existing.isAir() && !existing.canBeReplaced() && !(existing.getBlock() instanceof LeavesBlock)) { + return; + } + setBlock(level, pos, config.leavesProvider().getState(random, pos)); + leaves.add(pos.immutable()); + } + + private void refreshLeafDistances(WorldGenLevel level, Set leafPositions, Set logPositions) { + ArrayDeque queue = new ArrayDeque<>(logPositions); + Map distances = new HashMap<>(); + for (BlockPos logPos : logPositions) { + distances.put(logPos, 0); + } + + while (!queue.isEmpty()) { + BlockPos current = queue.removeFirst(); + int currentDistance = distances.getOrDefault(current, 0); + if (currentDistance >= RoyalLeavesBlock.ROYAL_MAX_DISTANCE) { + continue; + } + + for (Direction direction : Direction.values()) { + BlockPos next = current.relative(direction); + if (distances.containsKey(next)) { + continue; + } + if (!(level.getBlockState(next).getBlock() instanceof LeavesBlock)) { + continue; + } + distances.put(next, currentDistance + 1); + queue.addLast(next); + } + } + + for (BlockPos pos : leafPositions) { + BlockState state = level.getBlockState(pos); + if (!(state.getBlock() instanceof RoyalLeavesBlock)) { + continue; + } + int distance = Math.min( + RoyalLeavesBlock.ROYAL_DECAY_DISTANCE, + distances.getOrDefault(pos, RoyalLeavesBlock.ROYAL_DECAY_DISTANCE) + ); + if (state.getValue(RoyalLeavesBlock.ROYAL_DISTANCE) != distance) { + setBlock(level, pos, RoyalLeavesBlock.setRoyalDistanceForWorldgen(state, distance)); + } + } + } + + private static boolean canReplace(WorldGenLevel level, BlockPos pos) { + BlockState state = level.getBlockState(pos); + return state.isAir() || state.canBeReplaced() || state.getBlock() instanceof LeavesBlock; + } + + private static int[] curveOffset(int y, int height, int drift, int backBend, Direction dir) { + float f = height <= 1 ? 0.0F : (float) y / (height - 1); + float outPhase = smoothstep(0.0F, 0.6F, f); + float backPhase = smoothstep(0.55F, 1.0F, f); + int step = Math.round(drift * outPhase - backBend * backPhase); + return new int[]{dir.getStepX() * step, dir.getStepZ() * step}; + } + + private static float smoothstep(float edge0, float edge1, float x) { + float t = Mth.clamp((x - edge0) / (edge1 - edge0), 0.0F, 1.0F); + return t * t * (3.0F - 2.0F * t); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/royal/RoyalTreeGrowers.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/royal/RoyalTreeGrowers.java new file mode 100644 index 00000000..32f551c1 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/royal/RoyalTreeGrowers.java @@ -0,0 +1,20 @@ +package com.craisinlord.antarchy.content.worldgen.royal; + +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 RoyalTreeGrowers { + public static final ResourceKey> ROYAL_TREE_SMALL = featureKey("royal_tree_small"); + public static final ResourceKey> ROYAL_TREE_MEDIUM = featureKey("royal_tree_medium"); + public static final ResourceKey> ROYAL_TREE_LARGE = featureKey("royal_tree_large"); + + private RoyalTreeGrowers() { + } + + private static ResourceKey> featureKey(String path) { + return ResourceKey.create(Registries.CONFIGURED_FEATURE, new ResourceLocation(Antarchy.MODID, path)); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NadirTreeConfiguration.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NadirTreeConfiguration.java new file mode 100644 index 00000000..df598f8a --- /dev/null +++ b/common-1.20.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.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NadirTreeFeature.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NadirTreeFeature.java new file mode 100644 index 00000000..de0d9cf5 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NadirTreeFeature.java @@ -0,0 +1,364 @@ +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.Column; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; +import java.util.Optional; +import java.util.OptionalInt; + +public class NadirTreeFeature extends Feature { + public NadirTreeFeature(Codec codec) { + super(codec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + WorldGenLevel level = context.level(); + BlockPos origin = findCeilingOrigin(level, context.origin(), 72); + 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<>(); + + int tierCount = Mth.clamp(2 + branchCount / 2, 3, 5); + int outerRadius = 4 + bottomRadius + random.nextInt(3); + + placeTrunk(spine, logs, random); + placeRootWaves(spine, bottomRadius, logs, foliage, random, veilRadius); + placeChandelierTiers(spine, tierCount, outerRadius, logs, foliage, random, veilRadius); + placeBranches(spine, Math.max(1, branchCount / 2), 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 static BlockPos findCeilingOrigin(WorldGenLevel level, BlockPos origin, int searchRange) { + if (level.getBlockState(origin).isAir() && level.getBlockState(origin.above()).isFaceSturdy(level, origin.above(), Direction.DOWN)) { + return origin; + } + Optional optional = Column.scan(level, origin, searchRange, state -> state.isAir(), state -> !state.isAir()); + if (optional.isEmpty()) { + return origin; + } + OptionalInt ceiling = optional.get().getCeiling(); + if (ceiling.isEmpty()) { + return origin; + } + return origin.atY(ceiling.getAsInt() - 1); + } + + 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, Map logs, RandomSource random) { + for (int index = 0; index < spine.size(); index++) { + fillTrunkLayer(spine.get(index), index < 2, logs, random); + } + } + + private void fillTrunkLayer(BlockPos center, boolean flare, Map logs, RandomSource random) { + for (int dx = 0; dx <= 1; dx++) { + for (int dz = 0; dz <= 1; dz++) { + putLog(logs, center.offset(dx, 0, dz), Direction.Axis.Y); + } + } + if (flare) { + for (int dx = -1; dx <= 2; dx++) { + for (int dz = -1; dz <= 2; dz++) { + if ((dx == -1 || dx == 2 || dz == -1 || dz == 2) && random.nextFloat() < 0.5F) { + putLog(logs, center.offset(dx, 0, dz), Direction.Axis.Y); + } + } + } + } + } + + private void placeRootWaves( + List spine, + int bottomRadius, + Map logs, + Set foliage, + RandomSource random, + int veilRadius + ) { + int waveCount = Math.max(4, bottomRadius + 3); + for (int wave = 0; wave < waveCount; wave++) { + int index = Mth.nextInt(random, 0, Math.max(0, spine.size() - 3)); + BlockPos center = spine.get(index); + Direction direction = Direction.Plane.HORIZONTAL.getRandomDirection(random); + int length = Mth.nextInt(random, 2, Math.max(3, bottomRadius + 3)); + BlockPos cursor = center; + BlockPos previous = center; + for (int step = 0; step < length; step++) { + cursor = cursor.relative(direction); + if (random.nextFloat() < 0.55F) { + cursor = cursor.below(); + } + if (step > 1 && random.nextFloat() < 0.38F) { + direction = random.nextBoolean() ? direction.getClockWise() : direction.getCounterClockWise(); + } + putLog(logs, cursor, axisForSegment(previous, cursor)); + previous = cursor; + } + if (random.nextFloat() < 0.75F) { + placeVeilRibbon(foliage, cursor, direction, Math.max(2, veilRadius + random.nextInt(2)), random); + } + } + } + + 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; + } + + placeVeilRibbon(foliage, cursor, direction, Math.max(2, veilRadius + random.nextInt(3)), random); + + 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; + } + placeVeilRibbon(foliage, fork, forkDirection, Math.max(2, veilRadius), random); + } + } + } + + private void placeChandelierTiers( + List spine, + int tierCount, + int outerRadius, + Map logs, + Set foliage, + RandomSource random, + int veilRadius + ) { + int top = Math.max(2, spine.size() / 5); + int bottom = Math.max(top + 1, spine.size() - 2); + for (int tier = 0; tier < tierCount; tier++) { + float progress = tierCount == 1 ? 0.0F : tier / (float) (tierCount - 1); + int index = Mth.clamp(Math.round(Mth.lerp(progress, top, bottom)), 0, spine.size() - 1); + BlockPos hub = spine.get(index); + int radius = Math.max(2, Math.round(Mth.lerp(progress, outerRadius, 2.0F)) + random.nextInt(2)); + int droop = 1 + random.nextInt(2); + BlockPos ringCenter = hub.below(droop); + + placeTierRing(ringCenter, radius, logs, random); + placeTierSpokes(hub, ringCenter, radius, logs); + + for (Direction spoke : Direction.Plane.HORIZONTAL) { + BlockPos rim = ringCenter.relative(spoke, radius); + Direction tangent = spoke.getClockWise(); + placeVeilRibbon(foliage, rim, tangent, Math.max(2, veilRadius + random.nextInt(2)), random); + } + } + } + + private void placeTierRing(BlockPos center, int radius, Map logs, RandomSource random) { + int outerSq = (radius + 1) * (radius + 1); + int innerSq = (radius - 1) * (radius - 1); + for (int dx = -radius - 1; dx <= radius + 1; dx++) { + for (int dz = -radius - 1; dz <= radius + 1; dz++) { + int distSq = dx * dx + dz * dz; + if (distSq > outerSq || distSq < innerSq) { + continue; + } + if (random.nextFloat() < 0.12F) { + continue; + } + Direction.Axis axis = Math.abs(dx) >= Math.abs(dz) ? Direction.Axis.X : Direction.Axis.Z; + putLog(logs, center.offset(dx, 0, dz), axis); + } + } + } + + private void placeTierSpokes(BlockPos hub, BlockPos ringCenter, int radius, Map logs) { + for (Direction spoke : Direction.Plane.HORIZONTAL) { + BlockPos previous = hub; + for (int step = 1; step <= radius; step++) { + float t = step / (float) radius; + int y = Math.round(Mth.lerp(t, hub.getY(), ringCenter.getY())); + BlockPos next = new BlockPos(hub.getX() + spoke.getStepX() * step, y, hub.getZ() + spoke.getStepZ() * step); + putLog(logs, next, axisForSegment(previous, next)); + previous = next; + } + } + } + + private void placeVeilCurtains(List spine, Set foliage, RandomSource random, int veilRadius) { + for (int index = 1; index < spine.size(); index++) { + if (random.nextFloat() > 0.24F) { + continue; + } + BlockPos anchor = spine.get(index); + Direction side = Direction.Plane.HORIZONTAL.getRandomDirection(random); + placeVeilRibbon(foliage, anchor.relative(side), side, Math.max(2, veilRadius + random.nextInt(3)), random); + } + } + + private void placeVeilRibbon(Set foliage, BlockPos start, Direction flow, int length, RandomSource random) { + Direction side = random.nextBoolean() ? flow.getClockWise() : flow.getCounterClockWise(); + int span = Math.max(4, length + 2); + int bands = 1 + random.nextInt(2); + float phase = random.nextFloat() * Mth.PI * 2.0F; + float frequency = 0.55F + random.nextFloat() * 0.45F; + for (int band = 0; band < bands; band++) { + BlockPos rowAnchor = start.relative(side, band); + float bandPhase = phase + band * 1.7F; + for (int step = 0; step < span; step++) { + float wave = Mth.sin(step * frequency + bandPhase); + int lift = Math.round(wave * 1.5F); + BlockPos top = rowAnchor.relative(flow, step).offset(0, lift, 0); + int strand = Math.max(2, 3 + Math.round((wave + 1.0F) * 2.0F) + random.nextInt(2) - (1 + random.nextInt(3))); + BlockPos cursor = top; + for (int drop = 0; drop < strand; drop++) { + foliage.add(cursor); + cursor = cursor.below(); + } + } + } + } + + 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) { + setBlock((LevelWriter) level, pos, state); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NadirTreeGrowers.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NadirTreeGrowers.java new file mode 100644 index 00000000..c8f08517 --- /dev/null +++ b/common-1.20.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, new ResourceLocation(Antarchy.MODID, path)); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NaturalDirectionalVineFeature.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NaturalDirectionalVineFeature.java new file mode 100644 index 00000000..c1fae0df --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/NaturalDirectionalVineFeature.java @@ -0,0 +1,63 @@ +package com.craisinlord.antarchy.content.worldgen.thoraxis; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.block.SimpleDirectionalVineBlock; +import com.mojang.serialization.Codec; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; + +/** Places the complete natural-grown shape so every segment gets the body state. */ +public final class NaturalDirectionalVineFeature extends Feature { + private final ResourceLocation blockId; + private final Direction direction; + private final int minimumLength; + private final int maximumLength; + + public NaturalDirectionalVineFeature(Codec codec, String blockName, + Direction direction, int minimumLength, int maximumLength) { + super(codec); + this.blockId = new ResourceLocation(Antarchy.MODID, blockName); + this.direction = direction; + this.minimumLength = minimumLength; + this.maximumLength = maximumLength; + } + + @Override + public boolean place(FeaturePlaceContext context) { + WorldGenLevel level = context.level(); + BlockPos origin = context.origin(); + Block block = BuiltInRegistries.BLOCK.get(this.blockId); + RandomSource random = context.random(); + int length = Mth.randomBetweenInclusive(random, this.minimumLength, this.maximumLength); + boolean placed = false; + + for (int index = 0; index < length; index++) { + BlockPos pos = origin.relative(this.direction, index); + if (!level.getBlockState(pos).isAir()) { + break; + } + + BlockState state = block.defaultBlockState() + .setValue(SimpleDirectionalVineBlock.GROWTH_DIRECTION, this.direction) + .setValue(SimpleDirectionalVineBlock.DISTANCE, Math.min(index, 15)) + .setValue(SimpleDirectionalVineBlock.TOP_CAP, this.direction == Direction.UP && index == length - 1) + .setValue(SimpleDirectionalVineBlock.BOTTOM_CAP, this.direction == Direction.DOWN && index == length - 1); + if (!state.canSurvive(level, pos)) { + break; + } + level.setBlock(pos, state, Block.UPDATE_CLIENTS); + placed = true; + } + return placed; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/ThoraxisIchorLakeFeature.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/ThoraxisIchorLakeFeature.java new file mode 100644 index 00000000..8f19a75a --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/ThoraxisIchorLakeFeature.java @@ -0,0 +1,63 @@ +package com.craisinlord.antarchy.content.worldgen.thoraxis; + +import com.craisinlord.antarchy.Antarchy; +import com.mojang.serialization.Codec; +import net.minecraft.core.BlockPos; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; + +/** + * Fills the low, open main-side Thoraxis basin with source ichor during chunk generation. + * The feature works one chunk at a time so it does not depend on runtime fluid spreading. + */ +public final class ThoraxisIchorLakeFeature extends Feature { + private static final int LAKE_FLOOR_Y = 1; + private static final int LAKE_SURFACE_Y = 8; + private static final ResourceLocation ICHOR_BLOCK_ID = + new ResourceLocation(Antarchy.MODID, "ichor"); + + public ThoraxisIchorLakeFeature(Codec codec) { + super(codec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + WorldGenLevel level = context.level(); + BlockPos origin = context.origin(); + BlockState ichorState = BuiltInRegistries.BLOCK.get(ICHOR_BLOCK_ID).defaultBlockState(); + if (ichorState.isAir() || ichorState.getFluidState().isEmpty()) { + return false; + } + + int chunkMinX = origin.getX() >> 4 << 4; + int chunkMinZ = origin.getZ() >> 4 << 4; + boolean placedAny = false; + BlockPos.MutableBlockPos mutable = new BlockPos.MutableBlockPos(); + + for (int x = chunkMinX; x < chunkMinX + 16; x++) { + for (int z = chunkMinZ; z < chunkMinZ + 16; z++) { + for (int y = LAKE_FLOOR_Y; y <= LAKE_SURFACE_Y; y++) { + mutable.set(x, y, z); + BlockState current = level.getBlockState(mutable); + if (!isOpenForLake(current)) { + continue; + } + + level.setBlock(mutable, ichorState, 2); + placedAny = true; + } + } + } + + return placedAny; + } + + private static boolean isOpenForLake(BlockState state) { + return state.isAir() || state.canBeReplaced() || !state.blocksMotion(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/ThoraxisUndersideManager.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/ThoraxisUndersideManager.java new file mode 100644 index 00000000..868e123d --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/ThoraxisUndersideManager.java @@ -0,0 +1,225 @@ +package com.craisinlord.antarchy.content.worldgen.thoraxis; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.block.DreamSandBlock; +import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi; +import com.craisinlord.antarchy.content.gravity.AntarchyGravityDirection; +import com.craisinlord.antarchy.content.gravity.AntarchyGravityTransition; +import java.util.Collections; +import java.util.IdentityHashMap; +import java.util.Map; +import java.util.Set; +import java.util.WeakHashMap; +import java.util.UUID; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.level.ServerLevelAccessor; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; + +public final class ThoraxisUndersideManager { + public static final int GRAVITY_FLIP_Y = 0; + private static final ResourceLocation THORAXIS_DIMENSION = new ResourceLocation(Antarchy.MODID, "thoraxis"); + private static final AntarchyGravityTransition TRANSITION = new AntarchyGravityTransition(12); + private static final int EFFECT_DURATION_TICKS = 50; + private static final int EFFECT_REFRESH_THRESHOLD_TICKS = 10; + private static final int DISCOVERY_INTERVAL_TICKS = 5; + private static final int SIMULATION_DISTANCE_MARGIN_CHUNKS = 1; + private static final int MAX_FLIPS_PER_TICK = 8; + private static final double SLOW_TICK_WARN_MS = 25.0D; + private static final long DIAGNOSTIC_INTERVAL_TICKS = 100L; + private static final int ENTER_UNDERSIDE_Y = GRAVITY_FLIP_Y - 4; + private static final int EXIT_UNDERSIDE_Y = GRAVITY_FLIP_Y + 4; + private static final int FLIP_COOLDOWN_TICKS = 40; + private static final Map STATES = new WeakHashMap<>(); + + private ThoraxisUndersideManager() { + } + + public static void tick(ServerLevel level) { + if (!isThoraxis(level)) { + return; + } + + TrackingState tracking = STATES.computeIfAbsent(level, ignored -> new TrackingState()); + if (level.players().isEmpty()) { + tracking.clear(); + STATES.remove(level); + return; + } + + long startNanos = System.nanoTime(); + long now = level.getGameTime(); + int discoveredLiving = 0; + int discoveredItems = 0; + if (now % DISCOVERY_INTERVAL_TICKS == 0L) { + DiscoveryStats stats = tracking.discover(level); + discoveredLiving = stats.livingEntities(); + discoveredItems = stats.itemEntities(); + } + + int flipsRemaining = MAX_FLIPS_PER_TICK; + int refreshedLiving = 0; + int flippedItems = 0; + int restoredItems = 0; + for (Entity entity : tracking.entities) { + if (!entity.isAlive() || entity.isSpectator()) { + continue; + } + + if (entity instanceof LivingEntity living) { + boolean hasEffect = living.hasEffect(AntarchyObjects.INVERTED_EFFECT.get()); + int threshold = hasEffect ? EXIT_UNDERSIDE_Y : ENTER_UNDERSIDE_Y; + if (living.getY() < threshold) { + refreshInvertedEffect(living); + refreshedLiving++; + } + continue; + } + + if (!(entity instanceof ItemEntity)) { + continue; + } + + UUID uuid = entity.getUUID(); + boolean tracked = tracking.forcedItems.contains(entity); + boolean shouldInvert = tracked ? entity.getY() < EXIT_UNDERSIDE_Y : entity.getY() < ENTER_UNDERSIDE_Y; + + if (shouldInvert) { + boolean needsFlip = AntarchyGravityApi.getGravityDirection(entity) != AntarchyGravityDirection.UP + || !AntarchyGravityApi.isGravityForced(entity); + tracking.forcedItems.add(entity); + if (needsFlip && (flipsRemaining <= 0 || !flipReady(tracking, uuid, now))) { + continue; + } + if (needsFlip) { + flipsRemaining--; + tracking.lastFlipTick.put(uuid, now); + AntarchyGravityApi.setForcedGravityDirection(entity, AntarchyGravityDirection.UP, TRANSITION); + flippedItems++; + } + continue; + } + + if (tracked) { + boolean isForcedUp = AntarchyGravityApi.getGravityDirection(entity) == AntarchyGravityDirection.UP + && AntarchyGravityApi.isGravityForced(entity); + if (isForcedUp && !flipReady(tracking, uuid, now)) { + continue; + } + tracking.forcedItems.remove(entity); + if (isForcedUp) { + tracking.lastFlipTick.put(uuid, now); + AntarchyGravityApi.setGravityDirection(entity, AntarchyGravityDirection.DOWN, false, TRANSITION); + restoredItems++; + } + } + } + + tracking.entities.removeIf(entity -> !entity.isAlive() || entity.isRemoved()); + tracking.forcedItems.removeIf(entity -> !entity.isAlive() || entity.isRemoved()); + tracking.lastFlipTick.entrySet().removeIf(entry -> now - entry.getValue() > FLIP_COOLDOWN_TICKS * 4L); + + double elapsedMs = (System.nanoTime() - startNanos) / 1_000_000.0D; + if (elapsedMs >= SLOW_TICK_WARN_MS && now - tracking.lastDiagnosticTick >= DIAGNOSTIC_INTERVAL_TICKS) { + tracking.lastDiagnosticTick = now; + Antarchy.LOGGER.warn( + "[antarchy-thoraxis] slow underside tick dim={} gameTime={} elapsedMs={} trackedEntities={} forcedItems={} discoveredLiving={} discoveredItems={} refreshedLiving={} flippedItems={} restoredItems={} players={}", + level.dimension().location(), now, elapsedMs, tracking.entities.size(), tracking.forcedItems.size(), + discoveredLiving, discoveredItems, refreshedLiving, flippedItems, restoredItems, level.players().size() + ); + } + } + + private static final class TrackingState { + private final Set entities = Collections.newSetFromMap(new IdentityHashMap<>()); + private final Set forcedItems = Collections.newSetFromMap(new IdentityHashMap<>()); + private final Map lastFlipTick = new java.util.HashMap<>(); + private long lastDiagnosticTick = Long.MIN_VALUE / 2L; + + private DiscoveryStats discover(ServerLevel level) { + int radius = (level.getServer().getPlayerList().getSimulationDistance() + SIMULATION_DISTANCE_MARGIN_CHUNKS) * 16; + int discoveredLiving = 0; + int discoveredItems = 0; + for (ServerPlayer player : level.players()) { + AABB area = new AABB( + player.getX() - radius, level.getMinBuildHeight(), player.getZ() - radius, + player.getX() + radius, level.getMaxBuildHeight(), player.getZ() + radius + ); + entities.add(player); + java.util.List livingEntities = level.getEntitiesOfClass(LivingEntity.class, area, + entity -> !entity.isSpectator() && entity.getY() < EXIT_UNDERSIDE_Y); + java.util.List itemEntities = level.getEntitiesOfClass(ItemEntity.class, area, + entity -> !entity.isSpectator() && entity.getY() < EXIT_UNDERSIDE_Y); + discoveredLiving += livingEntities.size(); + discoveredItems += itemEntities.size(); + entities.addAll(livingEntities); + entities.addAll(itemEntities); + } + return new DiscoveryStats(discoveredLiving, discoveredItems); + } + + private void clear() { + entities.clear(); + forcedItems.clear(); + lastFlipTick.clear(); + } + } + + private static boolean flipReady(TrackingState tracking, UUID uuid, long now) { + Long last = tracking.lastFlipTick.get(uuid); + return last == null || now - last >= FLIP_COOLDOWN_TICKS; + } + + private record DiscoveryStats(int livingEntities, int itemEntities) { + } + + public static void applyUndersideInversion(LivingEntity living) { + refreshInvertedEffect(living); + } + + private static void refreshInvertedEffect(LivingEntity living) { + MobEffectInstance current = living.getEffect(AntarchyObjects.INVERTED_EFFECT.get()); + if (current == null || current.getDuration() <= EFFECT_REFRESH_THRESHOLD_TICKS) { + living.addEffect(new MobEffectInstance(AntarchyObjects.INVERTED_EFFECT.get(), EFFECT_DURATION_TICKS, 0, true, false, false)); + } + } + + public static boolean shouldSpawnInvertedOnDreamSand(ServerLevelAccessor level, BlockPos pos) { + if (!isThoraxis(level.getLevel()) || pos.getY() >= GRAVITY_FLIP_Y) { + return false; + } + + BlockState bodyState = level.getBlockState(pos); + if (!bodyState.isAir() && !bodyState.getCollisionShape(level, pos).isEmpty()) { + return false; + } + + BlockPos supportPos = pos.above(); + BlockState supportState = level.getBlockState(supportPos); + if (!(supportState.getBlock() instanceof DreamSandBlock)) { + return false; + } + + return supportState.isFaceSturdy(level, supportPos, Direction.DOWN) + && level.getFluidState(pos).isEmpty() + && level.isEmptyBlock(pos.below()); + } + + public static boolean isThoraxis(Level level) { + return level.dimension().location().equals(THORAXIS_DIMENSION); + } + + public static boolean isAboveUndersideExit(Entity entity) { + return isThoraxis(entity.level()) && entity.getY() >= EXIT_UNDERSIDE_Y; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/TyphoniteSpikeConfiguration.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/TyphoniteSpikeConfiguration.java new file mode 100644 index 00000000..63593dff --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/TyphoniteSpikeConfiguration.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.world.level.levelgen.feature.configurations.FeatureConfiguration; + +public record TyphoniteSpikeConfiguration( + int floorToCeilingSearchRange, + int radius, + int maxColumnHeight, + int heightDeviation, + float chanceOfColumnAtMaxDistanceFromCenter, + int maxDistanceFromCenterAffectingChanceOfColumn, + int maxDistanceFromCenterAffectingHeightBias, + int maxHeightDifference +) implements FeatureConfiguration { + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + Codec.intRange(1, 128).fieldOf("floor_to_ceiling_search_range").forGetter(TyphoniteSpikeConfiguration::floorToCeilingSearchRange), + Codec.intRange(1, 32).fieldOf("radius").forGetter(TyphoniteSpikeConfiguration::radius), + Codec.intRange(1, 32).fieldOf("max_column_height").forGetter(TyphoniteSpikeConfiguration::maxColumnHeight), + Codec.intRange(1, 16).fieldOf("height_deviation").forGetter(TyphoniteSpikeConfiguration::heightDeviation), + Codec.floatRange(0.0F, 1.0F).fieldOf("chance_of_column_at_max_distance_from_center").forGetter(TyphoniteSpikeConfiguration::chanceOfColumnAtMaxDistanceFromCenter), + Codec.intRange(1, 64).fieldOf("max_distance_from_center_affecting_chance_of_column").forGetter(TyphoniteSpikeConfiguration::maxDistanceFromCenterAffectingChanceOfColumn), + Codec.intRange(1, 64).fieldOf("max_distance_from_center_affecting_height_bias").forGetter(TyphoniteSpikeConfiguration::maxDistanceFromCenterAffectingHeightBias), + Codec.intRange(0, 32).fieldOf("max_height_difference").forGetter(TyphoniteSpikeConfiguration::maxHeightDifference) + ).apply(instance, TyphoniteSpikeConfiguration::new)); +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/TyphoniteSpikeFeature.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/TyphoniteSpikeFeature.java new file mode 100644 index 00000000..93537f21 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/TyphoniteSpikeFeature.java @@ -0,0 +1,201 @@ +package com.craisinlord.antarchy.content.worldgen.thoraxis; + +import com.craisinlord.antarchy.Antarchy; +import com.mojang.serialization.Codec; +import java.util.Optional; +import java.util.OptionalInt; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.PointedDripstoneBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.DripstoneThickness; +import net.minecraft.world.level.levelgen.Column; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; + +public class TyphoniteSpikeFeature extends Feature { + private static final ResourceLocation TYPHONITE_ID = new ResourceLocation(Antarchy.MODID, "typhonite"); + private static final ResourceLocation TYPHONITE_SPIKE_ID = new ResourceLocation(Antarchy.MODID, "typhonite_spike"); + + public TyphoniteSpikeFeature(Codec codec) { + super(codec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + WorldGenLevel level = context.level(); + BlockPos origin = context.origin(); + TyphoniteSpikeConfiguration config = context.config(); + RandomSource random = context.random(); + if (!level.getBlockState(origin).isAir()) { + return false; + } + + boolean placedAny = false; + int radius = config.radius(); + for (int dx = -radius; dx <= radius; dx++) { + for (int dz = -radius; dz <= radius; dz++) { + double chance = this.getChanceOfColumn(radius, dx, dz, config); + if (chance <= 0.0D) { + continue; + } + + if (this.placeColumn(level, random, origin.offset(dx, 0, dz), dx, dz, chance, config)) { + placedAny = true; + } + } + } + + return placedAny; + } + + private boolean placeColumn( + WorldGenLevel level, + RandomSource random, + BlockPos pos, + int dx, + int dz, + double chance, + TyphoniteSpikeConfiguration config + ) { + Optional optional = Column.scan(level, pos, config.floorToCeilingSearchRange(), state -> state.isAir(), state -> !state.isAir()); + if (optional.isEmpty()) { + return false; + } + + Column column = optional.get(); + OptionalInt ceiling = column.getCeiling(); + OptionalInt floor = column.getFloor(); + boolean canGrowDown = ceiling.isPresent() && isTyphoniteAnchor(level.getBlockState(pos.atY(ceiling.getAsInt()))); + boolean canGrowUp = floor.isPresent() && isTyphoniteAnchor(level.getBlockState(pos.atY(floor.getAsInt()))); + if (!canGrowDown && !canGrowUp) { + return false; + } + + int downLength = 0; + int upLength = 0; + if (canGrowDown) { + int maxLength = this.getMaxLength(config, ceiling, floor); + downLength = this.getSpikeHeight(random, dx, dz, chance, maxLength, config); + } + if (canGrowUp) { + int maxLength = this.getMaxLength(config, ceiling, floor); + if (downLength > 0) { + upLength = Mth.clamp( + downLength + Mth.randomBetweenInclusive(random, -config.maxHeightDifference(), config.maxHeightDifference()), + 0, + maxLength + ); + } else { + upLength = this.getSpikeHeight(random, dx, dz, chance, maxLength, config); + } + } + + if (ceiling.isPresent() && floor.isPresent() && downLength > 0 && upLength > 0 && ceiling.getAsInt() - downLength <= floor.getAsInt() + upLength) { + int floorY = floor.getAsInt(); + int ceilingY = ceiling.getAsInt(); + int minSplit = Math.max(ceilingY - downLength, floorY + 1); + int maxSplit = Math.min(floorY + upLength, ceilingY - 1); + int split = Mth.randomBetweenInclusive(random, minSplit, maxSplit + 1); + int tipBelowCeiling = split - 1; + downLength = ceilingY - split; + upLength = tipBelowCeiling - floorY; + } + + boolean placedAny = false; + if (downLength > 0 && ceiling.isPresent()) { + placedAny |= this.growPointedTyphonite(level, pos.atY(ceiling.getAsInt() - 1), Direction.DOWN, downLength); + } + if (upLength > 0 && floor.isPresent()) { + placedAny |= this.growPointedTyphonite(level, pos.atY(floor.getAsInt() + 1), Direction.UP, upLength); + } + return placedAny; + } + + private int getMaxLength(TyphoniteSpikeConfiguration config, OptionalInt ceiling, OptionalInt floor) { + if (ceiling.isPresent() && floor.isPresent()) { + return Math.min(config.maxColumnHeight(), ceiling.getAsInt() - floor.getAsInt() - 1); + } + return config.maxColumnHeight(); + } + + private boolean growPointedTyphonite(WorldGenLevel level, BlockPos rootStart, Direction direction, int length) { + Block typhoniteSpike = BuiltInRegistries.BLOCK.get(TYPHONITE_SPIKE_ID); + boolean placedAny = false; + for (int offset = 0; offset < length; offset++) { + BlockPos spikePos = rootStart.relative(direction, offset); + if (spikePos.getY() < level.getMinBuildHeight() || spikePos.getY() >= level.getMaxBuildHeight()) { + break; + } + if (!level.getBlockState(spikePos).isAir()) { + break; + } + + BlockState spikeState = typhoniteSpike.defaultBlockState() + .setValue(PointedDripstoneBlock.TIP_DIRECTION, direction) + .setValue(PointedDripstoneBlock.THICKNESS, getThicknessForRootOffset(offset, length)) + .setValue(PointedDripstoneBlock.WATERLOGGED, false); + if (!spikeState.canSurvive(level, spikePos)) { + break; + } + + level.setBlock(spikePos, spikeState, 3); + placedAny = true; + } + return placedAny; + } + + private static DripstoneThickness getThicknessForRootOffset(int offsetFromRoot, int length) { + if (length <= 1) { + return DripstoneThickness.TIP; + } + if (offsetFromRoot == length - 1) { + return DripstoneThickness.TIP; + } + if (offsetFromRoot == length - 2) { + return DripstoneThickness.MIDDLE; + } + return DripstoneThickness.BASE; + } + + private int getSpikeHeight(RandomSource random, int dx, int dz, double chance, int maxHeight, TyphoniteSpikeConfiguration config) { + if (maxHeight <= 0 || random.nextDouble() > chance) { + return 0; + } + + int distance = Math.abs(dx) + Math.abs(dz); + float mean = (float) Mth.clampedMap( + (double) distance, + 0.0D, + (double) config.maxDistanceFromCenterAffectingHeightBias(), + (double) maxHeight, + 1.0D + ); + int sampled = Math.round((float) (mean + random.nextGaussian() * config.heightDeviation())); + return Mth.clamp(sampled, 1, maxHeight); + } + + private double getChanceOfColumn(int radius, int dx, int dz, TyphoniteSpikeConfiguration config) { + int remainingX = radius - Math.abs(dx); + int remainingZ = radius - Math.abs(dz); + int edgeDistance = Math.min(remainingX, remainingZ); + return Mth.clampedMap( + (double) edgeDistance, + 0.0D, + (double) config.maxDistanceFromCenterAffectingChanceOfColumn(), + (double) config.chanceOfColumnAtMaxDistanceFromCenter(), + 1.0D + ); + } + + private static boolean isTyphoniteAnchor(BlockState state) { + ResourceLocation blockId = BuiltInRegistries.BLOCK.getKey(state.getBlock()); + return blockId.equals(TYPHONITE_ID) || blockId.equals(new ResourceLocation(Antarchy.MODID, "verdant_nyxium")); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/TyphoniteSwirlFeature.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/TyphoniteSwirlFeature.java new file mode 100644 index 00000000..4bde8c5f --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/TyphoniteSwirlFeature.java @@ -0,0 +1,116 @@ +package com.craisinlord.antarchy.content.worldgen.thoraxis; + +import com.craisinlord.antarchy.Antarchy; +import com.mojang.serialization.Codec; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.PointedDripstoneBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; + +public final class TyphoniteSwirlFeature extends Feature { + private static final ResourceLocation TYPHONITE_SPIKE = new ResourceLocation(Antarchy.MODID, "typhonite_spike"); + + public TyphoniteSwirlFeature(Codec codec) { + super(codec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + WorldGenLevel level = context.level(); + BlockPos origin = context.origin(); + RandomSource random = context.random(); + int height = Mth.randomBetweenInclusive(random, 15, 30); + int arms = Mth.randomBetweenInclusive(random, 1, 3); + double twist = (0.18D + random.nextDouble() * 0.22D) * (random.nextBoolean() ? 1.0D : -1.0D); + double radius = 3.0D + random.nextDouble() * 4.0D; + boolean placed = false; + for (int y = 0; y < Math.max(4, height / 3); y++) { + placed |= placeMass(level, origin.above(y), 1 + (y < 3 ? 1 : 0), random); + } + + for (int arm = 0; arm < arms; arm++) { + double phase = (Math.PI * 2.0D * arm / arms) + random.nextDouble() * 0.8D; + for (int y = 0; y < height; y++) { + double progress = y / (double) Math.max(1, height - 1); + double angle = phase + y * twist; + double currentRadius = radius * (0.12D + progress * 0.95D) + Math.sin(y * 0.7D + phase) * 1.2D; + int x = Mth.floor(origin.getX() + Math.cos(angle) * currentRadius); + int z = Mth.floor(origin.getZ() + Math.sin(angle) * currentRadius); + BlockPos pos = new BlockPos(x, origin.getY() + y, z); + if (placeMass(level, pos, 1 + (random.nextFloat() < 0.35F ? 1 : 0), random)) { + placed = true; + if (random.nextFloat() < 0.12F) { + placed |= placeSpike(level, pos, random, random.nextBoolean() ? Direction.UP : Direction.DOWN); + } + } + + if (random.nextFloat() < 0.18F) { + BlockPos sidePos = pos.offset(random.nextInt(3) - 1, random.nextInt(3) - 1, random.nextInt(3) - 1); + if (placeMass(level, sidePos, 1, random)) { + placed = true; + } + } + } + } + + return placed; + } + + private static BlockState materialState(RandomSource random, int y, int height) { + String blockName = random.nextFloat() < 0.18F ? "veined_typhonite" : "typhonite"; + Block block = BuiltInRegistries.BLOCK.get(new ResourceLocation(Antarchy.MODID, blockName)); + return block.defaultBlockState(); + } + + private static boolean placeIfAir(WorldGenLevel level, BlockPos pos, BlockState state) { + if (!level.getBlockState(pos).isAir()) { + return false; + } + level.setBlock(pos, state, Block.UPDATE_CLIENTS); + return true; + } + + private static boolean placeMass(WorldGenLevel level, BlockPos center, int radius, RandomSource random) { + boolean placed = false; + for (int dx = -radius; dx <= radius; dx++) { + for (int dz = -radius; dz <= radius; dz++) { + if (dx * dx + dz * dz > radius * radius + 1 || random.nextFloat() < 0.08F) { + continue; + } + placed |= placeIfAir(level, center.offset(dx, 0, dz), materialState(random, 0, 0)); + } + } + return placed; + } + + private static boolean placeSpike(WorldGenLevel level, BlockPos pos, RandomSource random, Direction direction) { + Block spike = BuiltInRegistries.BLOCK.get(TYPHONITE_SPIKE); + int length = 2 + random.nextInt(4); + boolean placed = false; + for (int i = 0; i < length; i++) { + BlockPos spikePos = pos.relative(direction, i + 1); + if (!level.getBlockState(spikePos).isAir()) { + break; + } + BlockState state = spike.defaultBlockState() + .setValue(PointedDripstoneBlock.TIP_DIRECTION, direction) + .setValue(PointedDripstoneBlock.THICKNESS, i == length - 1 ? net.minecraft.world.level.block.state.properties.DripstoneThickness.TIP : net.minecraft.world.level.block.state.properties.DripstoneThickness.MIDDLE) + .setValue(PointedDripstoneBlock.WATERLOGGED, false); + if (!state.canSurvive(level, spikePos)) { + break; + } + level.setBlock(spikePos, state, Block.UPDATE_CLIENTS); + placed = true; + } + return placed; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/truffalo/TruffaloTreeConfiguration.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/truffalo/TruffaloTreeConfiguration.java new file mode 100644 index 00000000..806d6eb3 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/truffalo/TruffaloTreeConfiguration.java @@ -0,0 +1,21 @@ +package com.craisinlord.antarchy.content.worldgen.truffalo; + +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 TruffaloTreeConfiguration( + BlockStateProvider trunkProvider, + IntProvider height, + int tuftRadius, + int tuftHeight +) implements FeatureConfiguration { + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + BlockStateProvider.CODEC.fieldOf("trunk_provider").forGetter(TruffaloTreeConfiguration::trunkProvider), + IntProvider.codec(4, 18).fieldOf("height").forGetter(TruffaloTreeConfiguration::height), + Codec.INT.optionalFieldOf("tuft_radius", 1).forGetter(TruffaloTreeConfiguration::tuftRadius), + Codec.INT.optionalFieldOf("tuft_height", 3).forGetter(TruffaloTreeConfiguration::tuftHeight) + ).apply(instance, TruffaloTreeConfiguration::new)); +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/truffalo/TruffaloTreeFeature.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/truffalo/TruffaloTreeFeature.java new file mode 100644 index 00000000..d2c15765 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/truffalo/TruffaloTreeFeature.java @@ -0,0 +1,92 @@ +package com.craisinlord.antarchy.content.worldgen.truffalo; + +import com.craisinlord.antarchy.Antarchy; +import com.mojang.serialization.Codec; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.RandomSource; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; + +public class TruffaloTreeFeature extends Feature { + private static final DyeColor[] TUFT_COLORS = { + DyeColor.MAGENTA, + DyeColor.ORANGE, + DyeColor.RED, + DyeColor.YELLOW, + DyeColor.LIME, + DyeColor.GREEN, + DyeColor.BLUE, + DyeColor.CYAN, + DyeColor.LIGHT_BLUE, + DyeColor.PINK, + DyeColor.PURPLE + }; + + public TruffaloTreeFeature(Codec codec) { + super(codec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + WorldGenLevel level = context.level(); + BlockPos origin = context.origin(); + BlockPos supportPos = origin.below(); + if (!level.getBlockState(supportPos).isFaceSturdy(level, supportPos, Direction.UP)) { + return false; + } + + RandomSource random = context.random(); + TruffaloTreeConfiguration config = context.config(); + int height = config.height().sample(random); + DyeColor color = TUFT_COLORS[random.nextInt(TUFT_COLORS.length)]; + + BlockPos[] trunk = new BlockPos[height]; + for (int i = 0; i < height; i++) { + trunk[i] = origin.above(i); + } + BlockPos capBase = trunk[height - 1].above(); + + for (BlockPos pos : trunk) { + if (!canReplace(level, pos)) { + return false; + } + } + for (int dy = 0; dy < config.tuftHeight(); dy++) { + for (int dx = -config.tuftRadius(); dx <= config.tuftRadius(); dx++) { + for (int dz = -config.tuftRadius(); dz <= config.tuftRadius(); dz++) { + if (!canReplace(level, capBase.offset(dx, dy, dz))) { + return false; + } + } + } + } + + for (BlockPos pos : trunk) { + setBlock(level, pos, config.trunkProvider().getState(random, pos)); + } + + Block tuft = BuiltInRegistries.BLOCK.get(new ResourceLocation(Antarchy.MODID, color.getName() + "_truffalo_tuft")); + BlockState tuftState = tuft.defaultBlockState(); + for (int dy = 0; dy < config.tuftHeight(); dy++) { + for (int dx = -config.tuftRadius(); dx <= config.tuftRadius(); dx++) { + for (int dz = -config.tuftRadius(); dz <= config.tuftRadius(); dz++) { + setBlock(level, capBase.offset(dx, dy, dz), tuftState); + } + } + } + + return true; + } + + private static boolean canReplace(WorldGenLevel level, BlockPos pos) { + BlockState state = level.getBlockState(pos); + return state.isAir() || state.canBeReplaced(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/truffalo/TruffaloTreeGrowers.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/truffalo/TruffaloTreeGrowers.java new file mode 100644 index 00000000..70797b0c --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/worldgen/truffalo/TruffaloTreeGrowers.java @@ -0,0 +1,18 @@ +package com.craisinlord.antarchy.content.worldgen.truffalo; + +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 TruffaloTreeGrowers { + public static final ResourceKey> TRUFFALO_TREE = featureKey("truffalo_tree"); + + private TruffaloTreeGrowers() { + } + + private static ResourceKey> featureKey(String path) { + return ResourceKey.create(Registries.CONFIGURED_FEATURE, new ResourceLocation(Antarchy.MODID, path)); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/AbstractArrowAccessor.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/AbstractArrowAccessor.java new file mode 100644 index 00000000..e5afd28f --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/AbstractArrowAccessor.java @@ -0,0 +1,17 @@ +package com.craisinlord.antarchy.mixins; + +import net.minecraft.world.entity.projectile.AbstractArrow; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(AbstractArrow.class) +public interface AbstractArrowAccessor { + @Accessor("inGround") + void antarchy$setInGround(boolean inGround); + + @Accessor("inGroundTime") + void antarchy$setInGroundTime(int inGroundTime); + + @Accessor("shakeTime") + void antarchy$setShakeTime(int shakeTime); +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/AntarchyRangedAttackPatcher.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/AntarchyRangedAttackPatcher.java new file mode 100644 index 00000000..8c7a89e7 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/AntarchyRangedAttackPatcher.java @@ -0,0 +1,227 @@ +package com.craisinlord.antarchy.mixins; + +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.tree.AbstractInsnNode; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.InsnList; +import org.objectweb.asm.tree.MethodInsnNode; +import org.objectweb.asm.tree.MethodNode; +import org.objectweb.asm.tree.VarInsnNode; + +final class AntarchyRangedAttackPatcher { + private static final String RANGED_ATTACK_DESC = "(Lnet/minecraft/world/entity/LivingEntity;F)V"; + private static final String LIVING_DESC = "(Lnet/minecraft/world/entity/LivingEntity;)D"; + private static final String LIVING_D_DESC = "(Lnet/minecraft/world/entity/LivingEntity;D)D"; + private static final String D_LIVING_DESC = "(DLnet/minecraft/world/entity/LivingEntity;)D"; + private static final String DELTA_MOVEMENT_DESC = "(Lnet/minecraft/world/entity/LivingEntity;)Lnet/minecraft/world/phys/Vec3;"; + private static final String API_OWNER = "com/craisinlord/antarchy/content/gravity/AntarchyGravityApi"; + + private enum AimMode { + BODY, + EYE + } + + int patch(ClassNode classNode) { + int total = 0; + for (MethodNode method : classNode.methods) { + if (!RANGED_ATTACK_DESC.equals(method.desc)) { + continue; + } + if (!isPerformRangedAttack(method.name)) { + continue; + } + if (!hasRangedAimSqrt(method)) { + continue; + } + total += applyPatch(method); + } + return total; + } + + private boolean isPerformRangedAttack(String methodName) { + return "performRangedAttack".equals(methodName) + || "m_6504_".equals(methodName) + || "m_31448_".equals(methodName) + || "m_31457_".equals(methodName); + } + + private boolean hasRangedAimSqrt(MethodNode method) { + for (AbstractInsnNode insn = method.instructions.get(0); insn != null; insn = insn.getNext()) { + if (insn instanceof MethodInsnNode call + && call.getOpcode() == Opcodes.INVOKESTATIC + && "java/lang/Math".equals(call.owner) + && "sqrt".equals(call.name) + && "(D)D".equals(call.desc)) { + return true; + } + } + return false; + } + + private AimMode detectAimMode(MethodNode method) { + for (AbstractInsnNode insn = method.instructions.get(0); insn != null; insn = insn.getNext()) { + if (!(insn instanceof MethodInsnNode call)) { + continue; + } + int opcode = call.getOpcode(); + if (opcode != Opcodes.INVOKEVIRTUAL && opcode != Opcodes.INVOKEINTERFACE) { + continue; + } + if (isGetYScaled(call)) { + return AimMode.BODY; + } + } + return AimMode.EYE; + } + + private int applyPatch(MethodNode method) { + AimMode mode = detectAimMode(method); + int total = 0; + int ordX = 0; + int ordZ = 0; + int ordYScaled = 0; + int ordEyeY = 0; + InsnList list = method.instructions; + for (AbstractInsnNode cur = list.get(0); cur != null; cur = cur.getNext()) { + if (!(cur instanceof MethodInsnNode call)) { + continue; + } + int opcode = call.getOpcode(); + if (opcode != Opcodes.INVOKEVIRTUAL && opcode != Opcodes.INVOKEINTERFACE) { + continue; + } + if (isGetX(call)) { + if (ordX++ != 0) { + continue; + } + list.set(cur, new MethodInsnNode( + Opcodes.INVOKESTATIC, + API_OWNER, + mode == AimMode.BODY ? "rangedBodyTargetX" : "rangedEyeTargetX", + LIVING_DESC, + false + )); + total++; + continue; + } + if (isGetZ(call)) { + if (ordZ++ != 0) { + continue; + } + list.set(cur, new MethodInsnNode( + Opcodes.INVOKESTATIC, + API_OWNER, + mode == AimMode.BODY ? "rangedBodyTargetZ" : "rangedEyeTargetZ", + LIVING_DESC, + false + )); + total++; + continue; + } + if (mode == AimMode.BODY && isGetYScaled(call)) { + if (ordYScaled++ != 0) { + continue; + } + list.set(cur, new MethodInsnNode( + Opcodes.INVOKESTATIC, + API_OWNER, + "rangedBodyTargetY", + LIVING_D_DESC, + false + )); + total++; + continue; + } + if (mode == AimMode.EYE && isGetEyeY(call)) { + if (ordEyeY++ != 0) { + continue; + } + list.set(cur, new MethodInsnNode( + Opcodes.INVOKESTATIC, + API_OWNER, + "rangedEyeTargetY", + LIVING_DESC, + false + )); + total++; + } + } + total += patchSqrtAndDelta(method); + return total; + } + + private int patchSqrtAndDelta(MethodNode method) { + int total = 0; + InsnList list = method.instructions; + for (AbstractInsnNode cur = list.get(0); cur != null; cur = cur.getNext()) { + if (!(cur instanceof MethodInsnNode call)) { + continue; + } + if ((call.getOpcode() == Opcodes.INVOKEVIRTUAL || call.getOpcode() == Opcodes.INVOKEINTERFACE) + && isGetDeltaMovement(call) + && isAload1(previousSignificant(cur))) { + list.set(cur, new MethodInsnNode( + Opcodes.INVOKESTATIC, + API_OWNER, + "deltaMovement", + DELTA_MOVEMENT_DESC, + false + )); + total++; + continue; + } + if (call.getOpcode() == Opcodes.INVOKESTATIC + && "java/lang/Math".equals(call.owner) + && "sqrt".equals(call.name) + && "(D)D".equals(call.desc)) { + list.insertBefore(cur, new VarInsnNode(Opcodes.ALOAD, 1)); + list.set(cur, new MethodInsnNode( + Opcodes.INVOKESTATIC, + API_OWNER, + "rangedSqrt", + D_LIVING_DESC, + false + )); + total++; + } + } + return total; + } + + private boolean isGetX(MethodInsnNode call) { + return "()D".equals(call.desc) && ("getX".equals(call.name) || "m_20185_".equals(call.name)); + } + + private boolean isGetZ(MethodInsnNode call) { + return "()D".equals(call.desc) && ("getZ".equals(call.name) || "m_20189_".equals(call.name)); + } + + private boolean isGetYScaled(MethodInsnNode call) { + return "(D)D".equals(call.desc) && ("getY".equals(call.name) || "m_20227_".equals(call.name)); + } + + private boolean isGetEyeY(MethodInsnNode call) { + return "()D".equals(call.desc) && ("getEyeY".equals(call.name) || "m_20188_".equals(call.name)); + } + + private boolean isGetDeltaMovement(MethodInsnNode call) { + return "()Lnet/minecraft/world/phys/Vec3;".equals(call.desc) + && ("getDeltaMovement".equals(call.name) || "m_20184_".equals(call.name)); + } + + private boolean isAload1(AbstractInsnNode insn) { + return insn instanceof VarInsnNode varInsn && varInsn.getOpcode() == Opcodes.ALOAD && varInsn.var == 1; + } + + private AbstractInsnNode previousSignificant(AbstractInsnNode node) { + AbstractInsnNode previous = node.getPrevious(); + while (previous != null) { + int type = previous.getType(); + if (type != AbstractInsnNode.LABEL && type != AbstractInsnNode.LINE) { + return previous; + } + previous = previous.getPrevious(); + } + return null; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/BloodCrystalKatanaDashPhaseMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/BloodCrystalKatanaDashPhaseMixin.java new file mode 100644 index 00000000..92f3b8d6 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/BloodCrystalKatanaDashPhaseMixin.java @@ -0,0 +1,20 @@ +package com.craisinlord.antarchy.mixins; + +import com.craisinlord.antarchy.content.item.BloodCrystalKatanaItem; +import net.minecraft.world.entity.Entity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(Entity.class) +public abstract class BloodCrystalKatanaDashPhaseMixin { + + @Inject(method = "push(Lnet/minecraft/world/entity/Entity;)V", at = @At("HEAD"), cancellable = true) + private void antarchy$katanaDashPassThrough(Entity entity, CallbackInfo ci) { + Entity self = (Entity) (Object) this; + if (BloodCrystalKatanaItem.isDashing(self) || BloodCrystalKatanaItem.isDashing(entity)) { + ci.cancel(); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/CommandedMobMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/CommandedMobMixin.java new file mode 100644 index 00000000..0dd0ff3f --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/CommandedMobMixin.java @@ -0,0 +1,52 @@ +package com.craisinlord.antarchy.mixins; + +import com.craisinlord.antarchy.content.effect.CommandedEntityAccess; +import java.util.UUID; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.entity.Mob; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; + +@Mixin(Mob.class) +public abstract class CommandedMobMixin implements CommandedEntityAccess { + @Unique + private UUID antarchy$commanderUuid; + @Unique + private boolean antarchy$commandedTargetOwned; + + @Override + public UUID antarchy$getCommanderUuid() { + return antarchy$commanderUuid; + } + + @Override + public void antarchy$setCommanderUuid(UUID uuid) { + antarchy$commanderUuid = uuid; + } + + @Override + public boolean antarchy$isCommandedTargetOwned() { + return antarchy$commandedTargetOwned; + } + + @Override + public void antarchy$setCommandedTargetOwned(boolean owned) { + antarchy$commandedTargetOwned = owned; + } + + @org.spongepowered.asm.mixin.injection.Inject(method = "addAdditionalSaveData", at = @org.spongepowered.asm.mixin.injection.At("TAIL")) + private void antarchy$saveCommandedData(CompoundTag tag, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) { + if (antarchy$commanderUuid != null) { + tag.putUUID("AntarchyCommander", antarchy$commanderUuid); + tag.putBoolean("AntarchyCommandedTargetOwned", antarchy$commandedTargetOwned); + } + } + + @org.spongepowered.asm.mixin.injection.Inject(method = "readAdditionalSaveData", at = @org.spongepowered.asm.mixin.injection.At("TAIL")) + private void antarchy$loadCommandedData(CompoundTag tag, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) { + if (tag.hasUUID("AntarchyCommander")) { + antarchy$commanderUuid = tag.getUUID("AntarchyCommander"); + antarchy$commandedTargetOwned = tag.getBoolean("AntarchyCommandedTargetOwned"); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/FrogVariantBootstrapMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/FrogVariantBootstrapMixin.java new file mode 100644 index 00000000..852735ba --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/FrogVariantBootstrapMixin.java @@ -0,0 +1,23 @@ +package com.craisinlord.antarchy.mixins; + +import com.craisinlord.antarchy.content.entity.ElythiaFrog; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.animal.FrogVariant; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(FrogVariant.class) +public abstract class FrogVariantBootstrapMixin { + @Inject(method = "bootstrap", at = @At("TAIL")) + private static void antarchy$registerElythiaVariant(Registry registry, CallbackInfoReturnable cir) { + ResourceLocation id = ElythiaFrog.VARIANT.location(); + if (registry.containsKey(id)) { + return; + } + + Registry.register(registry, id, new FrogVariant(ElythiaFrog.TEXTURE)); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/KingsTreeLocateCommandMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/KingsTreeLocateCommandMixin.java new file mode 100644 index 00000000..15a2325c --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/KingsTreeLocateCommandMixin.java @@ -0,0 +1,33 @@ +package com.craisinlord.antarchy.mixins; + +import com.craisinlord.antarchy.content.worldgen.elythia.KingsTreeGrid; +import com.mojang.datafixers.util.Pair; +import java.time.Duration; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.arguments.ResourceOrTagKeyArgument; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; +import net.minecraft.server.commands.LocateCommand; +import net.minecraft.world.level.levelgen.structure.Structure; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(LocateCommand.class) +public abstract class KingsTreeLocateCommandMixin { + @Inject(method = "locateStructure", at = @At("HEAD"), cancellable = true) + private static void antarchy$locateKingsTree(CommandSourceStack source, + ResourceOrTagKeyArgument.Result requestedStructure, + CallbackInfoReturnable callback) { + boolean isKingsTree = requestedStructure.unwrap().map(KingsTreeGrid.STRUCTURE_KEY::equals, tag -> false); + if (!isKingsTree || !source.getLevel().dimension().equals(KingsTreeGrid.ELYTHIA)) return; + BlockPos origin = BlockPos.containing(source.getPosition()); + BlockPos target = KingsTreeGrid.nearestTreeCenter(origin); + Holder.Reference holder = source.getLevel().registryAccess().registryOrThrow(Registries.STRUCTURE) + .getHolderOrThrow(KingsTreeGrid.STRUCTURE_KEY); + callback.setReturnValue(LocateCommand.showLocateResult(source, requestedStructure, origin, + Pair.of(target, holder), "commands.locate.structure.success", false, Duration.ZERO)); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/LivingEntityJumpingAccessor.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/LivingEntityJumpingAccessor.java new file mode 100644 index 00000000..b6535d74 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/LivingEntityJumpingAccessor.java @@ -0,0 +1,11 @@ +package com.craisinlord.antarchy.mixins; + +import net.minecraft.world.entity.LivingEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(LivingEntity.class) +public interface LivingEntityJumpingAccessor { + @Accessor("jumping") + boolean antarchy$isJumping(); +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/LivingEntityRoyalEffectsMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/LivingEntityRoyalEffectsMixin.java new file mode 100644 index 00000000..74cc7af1 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/LivingEntityRoyalEffectsMixin.java @@ -0,0 +1,87 @@ +package com.craisinlord.antarchy.mixins; + +import com.craisinlord.antarchy.content.effect.CommandedEntityAccess; +import com.craisinlord.antarchy.content.effect.RoyalEffectEligibility; +import com.craisinlord.antarchy.content.entity.royal.RoyalBossEntity; +import java.util.UUID; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.AreaEffectCloud; +import net.minecraft.world.entity.projectile.Projectile; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(LivingEntity.class) +public abstract class LivingEntityRoyalEffectsMixin { + @Unique + private UUID antarchy$previousCommander; + + @Inject(method = "canBeAffected", at = @At("HEAD"), cancellable = true) + private void antarchy$checkRoyalEffectBlacklist(MobEffectInstance instance, CallbackInfoReturnable cir) { + if (!RoyalEffectEligibility.canApply((LivingEntity) (Object) this, instance)) { + cir.setReturnValue(false); + } + } + + @Inject(method = "addEffect(Lnet/minecraft/world/effect/MobEffectInstance;Lnet/minecraft/world/entity/Entity;)Z", at = @At("HEAD"), cancellable = true) + private void antarchy$prepareCommandedSource(MobEffectInstance instance, Entity source, CallbackInfoReturnable cir) { + if (!RoyalEffectEligibility.isCommanded(instance)) { + return; + } + LivingEntity entity = (LivingEntity) (Object) this; + if (!RoyalEffectEligibility.canApplyCommanded(entity) || !(entity instanceof Mob mob)) { + cir.setReturnValue(false); + return; + } + Entity commander = antarchy$resolveCommander(source); + if (commander == null) { + cir.setReturnValue(false); + return; + } + CommandedEntityAccess access = (CommandedEntityAccess) mob; + UUID current = access.antarchy$getCommanderUuid(); + if (current != null && !current.equals(commander.getUUID())) { + cir.setReturnValue(false); + return; + } + antarchy$previousCommander = current; + access.antarchy$setCommanderUuid(commander.getUUID()); + } + + @Inject(method = "addEffect(Lnet/minecraft/world/effect/MobEffectInstance;Lnet/minecraft/world/entity/Entity;)Z", at = @At("RETURN")) + private void antarchy$finishCommandedSource(MobEffectInstance instance, Entity source, CallbackInfoReturnable cir) { + if (!RoyalEffectEligibility.isCommanded(instance) || cir.getReturnValue()) { + return; + } + LivingEntity entity = (LivingEntity) (Object) this; + if (entity instanceof CommandedEntityAccess access) { + access.antarchy$setCommanderUuid(antarchy$previousCommander); + } + } + + @Inject(method = "onEffectRemoved", at = @At("HEAD")) + private void antarchy$clearCommandedState(MobEffectInstance instance, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) { + if (RoyalEffectEligibility.isCommanded(instance) && (Object) this instanceof Mob mob) { + com.craisinlord.antarchy.content.effect.CommandedBehavior.clear(mob); + } + } + + @Unique + private Entity antarchy$resolveCommander(Entity source) { + if (source instanceof net.minecraft.world.entity.player.Player player) { + return player; + } + if (source instanceof Projectile projectile && projectile.getOwner() instanceof net.minecraft.world.entity.player.Player player) { + return player; + } + if (source instanceof AreaEffectCloud cloud && cloud.getOwner() instanceof net.minecraft.world.entity.player.Player player) { + return player; + } + return source instanceof RoyalBossEntity ? source : null; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/MobCommandedTargetMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/MobCommandedTargetMixin.java new file mode 100644 index 00000000..25e33859 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/MobCommandedTargetMixin.java @@ -0,0 +1,29 @@ +package com.craisinlord.antarchy.mixins; + +import com.craisinlord.antarchy.content.effect.CommandedBehavior; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Mob; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(Mob.class) +public abstract class MobCommandedTargetMixin { + @Inject(method = "setTarget", at = @At("HEAD"), cancellable = true) + private void antarchy$protectCommandedAllies(LivingEntity target, CallbackInfo ci) { + Mob mob = (Mob) (Object) this; + if (target != null && CommandedBehavior.isProtectedAlly(mob, target)) { + ci.cancel(); + } + } + + @Inject(method = "doHurtTarget", at = @At("HEAD"), cancellable = true) + private void antarchy$preventCommandedFriendlyFire(net.minecraft.world.entity.Entity target, + org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable cir) { + Mob mob = (Mob) (Object) this; + if (CommandedBehavior.isProtectedAlly(mob, target)) { + cir.setReturnValue(false); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/PortalGunEntityCollisionMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/PortalGunEntityCollisionMixin.java new file mode 100644 index 00000000..f5fa8a2e --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/PortalGunEntityCollisionMixin.java @@ -0,0 +1,33 @@ +package com.craisinlord.antarchy.mixins; + +import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi; +import com.craisinlord.antarchy.content.portalgun.PortalGunCollisionHelper; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(Entity.class) +public abstract class PortalGunEntityCollisionMixin { + @Unique + private AABB antarchy$portalGunStartBox; + + @Inject(method = "collide", at = @At("HEAD")) + private void antarchy$capturePortalGunStartBox(Vec3 movement, CallbackInfoReturnable cir) { + this.antarchy$portalGunStartBox = ((Entity) (Object) this).getBoundingBox(); + } + + @Inject(method = "collide", at = @At("RETURN"), cancellable = true) + private void antarchy$restorePortalCrossingMotion(Vec3 movement, CallbackInfoReturnable cir) { + Entity entity = (Entity) (Object) this; + if (this.antarchy$portalGunStartBox == null || AntarchyGravityApi.isGravityInverted(entity)) { + return; + } + Vec3 adjusted = PortalGunCollisionHelper.resolveCollision(entity, this.antarchy$portalGunStartBox, movement, cir.getReturnValue()); + cir.setReturnValue(adjusted); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/PortalGunEntityInWallMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/PortalGunEntityInWallMixin.java new file mode 100644 index 00000000..1d0db749 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/PortalGunEntityInWallMixin.java @@ -0,0 +1,25 @@ +package com.craisinlord.antarchy.mixins; + +import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity; +import net.minecraft.world.entity.Entity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(Entity.class) +public abstract class PortalGunEntityInWallMixin { + @Inject(method = "isInWall", at = @At("HEAD"), cancellable = true) + private void antarchy$ignorePortalInWall(CallbackInfoReturnable cir) { + Entity entity = (Entity) (Object) this; + if (entity.level() == null) { + return; + } + for (PortalGunPortalEntity portal : entity.level().getEntitiesOfClass(PortalGunPortalEntity.class, entity.getBoundingBox().inflate(2.0D), PortalGunPortalEntity::isAlive)) { + if (portal.intersectsEntityBounds(entity) || portal.getCollisionRemovalAabbForEntity(entity).intersects(entity.getBoundingBox())) { + cir.setReturnValue(false); + return; + } + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/RoyalNoRespiteMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/RoyalNoRespiteMixin.java new file mode 100644 index 00000000..490b2d98 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/RoyalNoRespiteMixin.java @@ -0,0 +1,18 @@ +package com.craisinlord.antarchy.mixins; + +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import net.minecraft.world.entity.LivingEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(LivingEntity.class) +public abstract class RoyalNoRespiteMixin { + @Inject(method = "heal", at = @At("HEAD"), cancellable = true) + private void antarchy$blockRoyalNoRespiteHealing(float amount, CallbackInfo ci) { + if (KingEntity.blocksHealingAround((LivingEntity) (Object) this)) { + ci.cancel(); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/SquidzookaEnchantMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/SquidzookaEnchantMixin.java new file mode 100644 index 00000000..13119272 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/SquidzookaEnchantMixin.java @@ -0,0 +1,32 @@ +package com.craisinlord.antarchy.mixins; + +import com.craisinlord.antarchy.content.AntarchyTags; +import net.minecraft.core.HolderGetter; +import net.minecraft.core.HolderSet; +import net.minecraft.tags.ItemTags; +import net.minecraft.tags.TagKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.enchantment.Enchantments; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(Enchantments.class) +public abstract class SquidzookaEnchantMixin { + @Redirect( + method = "bootstrap", + at = @At(value = "INVOKE", target = "Lnet/minecraft/core/HolderGetter;getOrThrow(Lnet/minecraft/tags/TagKey;)Lnet/minecraft/core/HolderSet$Named;"), + slice = @org.spongepowered.asm.mixin.injection.Slice( + from = @At(value = "FIELD", target = "Lnet/minecraft/world/item/enchantment/Enchantments;MULTISHOT:Lnet/minecraft/resources/ResourceKey;"), + to = @At(value = "FIELD", target = "Lnet/minecraft/world/item/enchantment/Enchantments;QUICK_CHARGE:Lnet/minecraft/resources/ResourceKey;") + ) + ) + private static HolderSet.Named antarchy$allowSquidzookaForMultishot(HolderGetter holderGetter, TagKey tag) { + if (tag.location().equals(new ResourceLocation("minecraft", "enchantable/crossbow"))) { + return holderGetter.getOrThrow(AntarchyTags.Items.MULTISHOT_ENCHANTABLE); + } + + return holderGetter.getOrThrow(tag); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/BlockEntityRenderDispatcherPortalMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/BlockEntityRenderDispatcherPortalMixin.java new file mode 100644 index 00000000..80c29e75 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/BlockEntityRenderDispatcherPortalMixin.java @@ -0,0 +1,29 @@ +package com.craisinlord.antarchy.mixins.client; + +import com.craisinlord.antarchy.content.client.PortalGunPortalRenderState; +import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.phys.AABB; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockEntityRenderDispatcher.class) +public abstract class BlockEntityRenderDispatcherPortalMixin { + @Inject(method = "render(Lnet/minecraft/world/level/block/entity/BlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;)V", at = @At("HEAD"), cancellable = true) + private void antarchy$clipPortalViewBlockEntities(E blockEntity, float partialTick, PoseStack poseStack, MultiBufferSource bufferSource, CallbackInfo ci) { + if (PortalGunPortalRenderState.renderAll() || blockEntity == null || blockEntity.isRemoved()) { + return; + } + BlockPos pos = blockEntity.getBlockPos(); + AABB bounds = new AABB(pos); + if (!PortalGunPortalRenderState.shouldRenderBounds(bounds)) { + ci.cancel(); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/EntityBoundSoundInstanceAccessor.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/EntityBoundSoundInstanceAccessor.java new file mode 100644 index 00000000..cad45d2e --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/EntityBoundSoundInstanceAccessor.java @@ -0,0 +1,12 @@ +package com.craisinlord.antarchy.mixins.client; + +import net.minecraft.client.resources.sounds.EntityBoundSoundInstance; +import net.minecraft.world.entity.Entity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(EntityBoundSoundInstance.class) +public interface EntityBoundSoundInstanceAccessor { + @Accessor("entity") + Entity antarchy$getEntity(); +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/EntityRenderDispatcherPortalMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/EntityRenderDispatcherPortalMixin.java new file mode 100644 index 00000000..0d173694 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/EntityRenderDispatcherPortalMixin.java @@ -0,0 +1,24 @@ +package com.craisinlord.antarchy.mixins.client; + +import com.craisinlord.antarchy.content.client.PortalGunPortalRenderState; +import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity; +import net.minecraft.client.renderer.culling.Frustum; +import net.minecraft.client.renderer.entity.EntityRenderDispatcher; +import net.minecraft.world.entity.Entity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(EntityRenderDispatcher.class) +public abstract class EntityRenderDispatcherPortalMixin { + @Inject(method = "shouldRender", at = @At("HEAD"), cancellable = true) + private void antarchy$clipPortalViewEntities(E entity, Frustum frustum, double x, double y, double z, CallbackInfoReturnable cir) { + if (PortalGunPortalRenderState.renderAll() || entity instanceof PortalGunPortalEntity) { + return; + } + if (!PortalGunPortalRenderState.shouldRenderBounds(entity.getBoundingBox())) { + cir.setReturnValue(false); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/GameRendererSwingThroughGrassMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/GameRendererSwingThroughGrassMixin.java new file mode 100644 index 00000000..a29867dc --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/GameRendererSwingThroughGrassMixin.java @@ -0,0 +1,131 @@ +package com.craisinlord.antarchy.mixins.client; + +import com.craisinlord.antarchy.config.AntarchySettings; +import net.minecraft.client.Minecraft; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.EntityHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; + +@Mixin(GameRenderer.class) +public abstract class GameRendererSwingThroughGrassMixin { + @Shadow + private Minecraft minecraft; + + @Shadow + private static HitResult filterHitResult(HitResult hitResult, Vec3 eyePosition, double range) { + throw new AssertionError(); + } + + @Unique + private Double antarchy$swingThroughReachSq; + + @Inject( + method = "pick(Lnet/minecraft/world/entity/Entity;DDF)Lnet/minecraft/world/phys/HitResult;", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/world/phys/HitResult;getLocation()Lnet/minecraft/world/phys/Vec3;" + ), + locals = LocalCapture.CAPTURE_FAILHARD + ) + private void antarchy$cacheSwingThroughReach( + Entity entity, + double blockInteractionRange, + double entityInteractionRange, + float partialTick, + CallbackInfoReturnable cir, + double maxRange, + double maxRangeSq, + Vec3 eyePosition, + HitResult hitResult + ) { + this.antarchy$swingThroughReachSq = null; + if (!AntarchySettings.swingThroughGrassEnabled()) { + return; + } + + if (!(hitResult instanceof BlockHitResult blockHitResult) || hitResult.getType() != HitResult.Type.BLOCK) { + return; + } + + ClientLevel level = this.minecraft.level; + if (level == null) { + return; + } + + BlockPos blockPos = blockHitResult.getBlockPos(); + if (level.getBlockState(blockPos).getCollisionShape(level, blockPos).isEmpty()) { + this.antarchy$swingThroughReachSq = maxRangeSq; + } + } + + @ModifyArg( + method = "pick(Lnet/minecraft/world/entity/Entity;DDF)Lnet/minecraft/world/phys/HitResult;", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/world/entity/projectile/ProjectileUtil;getEntityHitResult(Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/phys/Vec3;Lnet/minecraft/world/phys/Vec3;Lnet/minecraft/world/phys/AABB;Ljava/util/function/Predicate;D)Lnet/minecraft/world/phys/EntityHitResult;" + ), + index = 5 + ) + private double antarchy$useOriginalReachForEntityRaycast(double rangeSq) { + return this.antarchy$swingThroughReachSq == null ? rangeSq : this.antarchy$swingThroughReachSq; + } + + @Inject( + method = "pick(Lnet/minecraft/world/entity/Entity;DDF)Lnet/minecraft/world/phys/HitResult;", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/world/phys/EntityHitResult;getLocation()Lnet/minecraft/world/phys/Vec3;" + ), + cancellable = true, + locals = LocalCapture.CAPTURE_FAILHARD + ) + private void antarchy$preferAttackableEntityBehindGrass( + Entity entity, + double blockInteractionRange, + double entityInteractionRange, + float partialTick, + CallbackInfoReturnable cir, + double maxRange, + double maxRangeSq, + Vec3 eyePosition, + HitResult blockHitResult, + double blockHitDistanceSq, + Vec3 viewVector, + Vec3 reachEnd, + float unused, + AABB aabb, + EntityHitResult entityHitResult + ) { + if (this.antarchy$swingThroughReachSq == null || entityHitResult == null) { + return; + } + + Entity hitEntity = entityHitResult.getEntity(); + if (!(hitEntity instanceof LivingEntity) + || hitEntity.isSpectator() + || !hitEntity.isAttackable() + || this.minecraft.player == null + || hitEntity == this.minecraft.player.getVehicle()) { + return; + } + + if (eyePosition.distanceToSqr(hitEntity.position()) < this.antarchy$swingThroughReachSq) { + cir.setReturnValue(filterHitResult(entityHitResult, eyePosition, entityInteractionRange)); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/HoverboardRiderPoseMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/HoverboardRiderPoseMixin.java new file mode 100644 index 00000000..2fe29eb7 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/HoverboardRiderPoseMixin.java @@ -0,0 +1,68 @@ +package com.craisinlord.antarchy.mixins.client; + +import com.craisinlord.antarchy.content.entity.HoverboardEntity; +import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.model.EntityModel; +import net.minecraft.client.model.HumanoidModel; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.entity.LivingEntityRenderer; +import net.minecraft.world.entity.LivingEntity; +import com.mojang.math.Axis; +import org.objectweb.asm.Opcodes; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(LivingEntityRenderer.class) +public abstract class HoverboardRiderPoseMixin> { + private static final float HOVERBOARD_RIDER_RENDER_YAW = -90.0F; + private static final float HOVERBOARD_RIDER_TORSO_ROLL = -15.0F; + + @Shadow + public abstract M getModel(); + + @Inject( + method = "setupRotations(Lnet/minecraft/world/entity/LivingEntity;Lcom/mojang/blaze3d/vertex/PoseStack;FFFF)V", + at = @At(value = "TAIL", remap = false), + remap = false + ) + private void antarchy$rotateHoverboardRider(T entity, PoseStack poseStack, float ageInTicks, float rotationYaw, float partialTick, float scale, CallbackInfo ci) { + if (entity.getVehicle() instanceof HoverboardEntity) { + poseStack.mulPose(Axis.YP.rotationDegrees(HOVERBOARD_RIDER_RENDER_YAW)); + } + } + + @Inject( + method = "render(Lnet/minecraft/world/entity/LivingEntity;FFLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;I)V", + at = @At( + value = "FIELD", + target = "Lnet/minecraft/client/model/EntityModel;riding:Z", + opcode = Opcodes.PUTFIELD, + shift = At.Shift.AFTER + ) + ) + private void antarchy$standOnHoverboard(T entity, float entityYaw, float partialTick, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight, CallbackInfo ci) { + if (entity.getVehicle() instanceof HoverboardEntity) { + this.getModel().riding = false; + } + } + + @Inject( + method = "render(Lnet/minecraft/world/entity/LivingEntity;FFLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;I)V", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/model/EntityModel;setupAnim(Lnet/minecraft/world/entity/Entity;FFFFF)V", + shift = At.Shift.AFTER + ) + ) + private void antarchy$faceHoverboardRiderHeadForward(T entity, float entityYaw, float partialTick, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight, CallbackInfo ci) { + if (entity.getVehicle() instanceof HoverboardEntity && this.getModel() instanceof HumanoidModel humanoidModel) { + float correction = (float) Math.toRadians(HOVERBOARD_RIDER_RENDER_YAW); + humanoidModel.head.yRot += correction; + humanoidModel.hat.yRot += correction; + humanoidModel.body.zRot += (float) Math.toRadians(HOVERBOARD_RIDER_TORSO_ROLL); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/InventoryScreenRotationBypassMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/InventoryScreenRotationBypassMixin.java new file mode 100644 index 00000000..26e94c31 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/InventoryScreenRotationBypassMixin.java @@ -0,0 +1,21 @@ +package com.craisinlord.antarchy.mixins.client; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import net.minecraft.client.gui.screens.inventory.InventoryScreen; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(InventoryScreen.class) +public abstract class InventoryScreenRotationBypassMixin { + @Inject(method = "renderEntityInInventoryFollowsMouse", at = @At("HEAD")) + private static void antarchy$enterRotationBypass(CallbackInfo callbackInfo) { + TimeDilationApi.enterRotationBypass(); + } + + @Inject(method = "renderEntityInInventoryFollowsMouse", at = @At("RETURN")) + private static void antarchy$exitRotationBypass(CallbackInfo callbackInfo) { + TimeDilationApi.exitRotationBypass(); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/LocalPlayerPortalMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/LocalPlayerPortalMixin.java new file mode 100644 index 00000000..ec680db5 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/LocalPlayerPortalMixin.java @@ -0,0 +1,30 @@ +package com.craisinlord.antarchy.mixins.client; + +import com.craisinlord.antarchy.content.client.PortalGunRollClientState; +import net.minecraft.client.Minecraft; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.core.BlockPos; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(LocalPlayer.class) +public abstract class LocalPlayerPortalMixin { + @Inject(method = "suffocatesAt", at = @At("HEAD"), cancellable = true) + private void antarchy$ignorePortalSuffocation(BlockPos pos, CallbackInfoReturnable cir) { + Minecraft minecraft = Minecraft.getInstance(); + if (minecraft.player != null && PortalGunRollClientState.isEntityInsidePortal(minecraft, minecraft.player)) { + cir.setReturnValue(false); + } + } + + @Inject(method = "moveTowardsClosestSpace", at = @At("HEAD"), cancellable = true) + private void antarchy$cancelPortalPushOut(double x, double z, CallbackInfo ci) { + Minecraft minecraft = Minecraft.getInstance(); + if (minecraft.player != null && PortalGunRollClientState.isEntityInsidePortal(minecraft, minecraft.player)) { + ci.cancel(); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/ScreenEffectRendererPortalMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/ScreenEffectRendererPortalMixin.java new file mode 100644 index 00000000..49327550 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/client/ScreenEffectRendererPortalMixin.java @@ -0,0 +1,22 @@ +package com.craisinlord.antarchy.mixins.client; + +import com.craisinlord.antarchy.content.client.PortalGunRollClientState; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ScreenEffectRenderer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.block.Blocks; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(ScreenEffectRenderer.class) +public abstract class ScreenEffectRendererPortalMixin { + @Inject(method = "getViewBlockingState", at = @At("HEAD"), cancellable = true) + private static void antarchy$ignorePortalViewBlock(Player player, CallbackInfoReturnable cir) { + Minecraft minecraft = Minecraft.getInstance(); + if (player != null && PortalGunRollClientState.isEntityInsidePortal(minecraft, player)) { + cir.setReturnValue(Blocks.AIR.defaultBlockState()); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/BehaviorUtilsGravityMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/BehaviorUtilsGravityMixin.java new file mode 100644 index 00000000..62b95f14 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/BehaviorUtilsGravityMixin.java @@ -0,0 +1,75 @@ +package com.craisinlord.antarchy.mixins.gravity; + +import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi; +import com.craisinlord.antarchy.content.gravity.AntarchyGravityRotationUtil; +import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisUndersideManager; +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; +import com.llamalad7.mixinextras.sugar.Local; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.ai.behavior.BehaviorUtils; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(BehaviorUtils.class) +public abstract class BehaviorUtilsGravityMixin { + @WrapOperation( + method = "throwItem(Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/phys/Vec3;Lnet/minecraft/world/phys/Vec3;F)V", + at = @At( + value = "NEW", + target = "(Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/item/ItemStack;)Lnet/minecraft/world/entity/item/ItemEntity;" + ) + ) + private static ItemEntity antarchy$fixThrownItemSpawn( + Level level, + double x, + double y, + double z, + ItemStack stack, + Operation original, + @Local float yOffset, + @Local LivingEntity entity + ) { + if (!antarchy$shouldInvertThrownItem(entity)) { + return original.call(level, x, y, z, stack); + } + + Vec3 eyeOffset = AntarchyGravityRotationUtil.getEyeOffset(entity, entity.getEyeHeight()); + Vec3 offset = eyeOffset.normalize().scale(yOffset); + Vec3 itemPos = entity.position().add(eyeOffset).subtract(offset); + ItemEntity itemEntity = original.call(level, itemPos.x(), itemPos.y(), itemPos.z(), stack); + AntarchyGravityApi.setGravityDirection(itemEntity, AntarchyGravityApi.getGravityDirection(entity)); + return itemEntity; + } + + @WrapOperation( + method = "throwItem(Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/phys/Vec3;Lnet/minecraft/world/phys/Vec3;F)V", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/world/entity/item/ItemEntity;setDeltaMovement(Lnet/minecraft/world/phys/Vec3;)V" + ) + ) + private static void antarchy$fixThrownItemVelocity( + ItemEntity itemEntity, + Vec3 deltaMovement, + Operation original, + @Local LivingEntity entity + ) { + if (!antarchy$shouldInvertThrownItem(entity)) { + original.call(itemEntity, deltaMovement); + return; + } + + AntarchyGravityApi.setWorldVelocity(itemEntity, deltaMovement); + } + + private static boolean antarchy$shouldInvertThrownItem(LivingEntity entity) { + return AntarchyGravityApi.isGravityInverted(entity) + && ThoraxisUndersideManager.isThoraxis(entity.level()) + && entity.getY() < ThoraxisUndersideManager.GRAVITY_FLIP_Y; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/MeleeAttackGoalGravityMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/MeleeAttackGoalGravityMixin.java new file mode 100644 index 00000000..d69998dc --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/MeleeAttackGoalGravityMixin.java @@ -0,0 +1,101 @@ +package com.craisinlord.antarchy.mixins.gravity; + +import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.PathfinderMob; +import net.minecraft.world.entity.ai.goal.MeleeAttackGoal; +import net.minecraft.world.entity.player.Player; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(MeleeAttackGoal.class) +public abstract class MeleeAttackGoalGravityMixin { + @Shadow + @Final + protected PathfinderMob mob; + + @Shadow + @Final + private double speedModifier; + + @Shadow + @Final + private boolean followingTargetEvenIfNotSeen; + + @Shadow + private int ticksUntilNextAttack; + + @Shadow + protected abstract void checkAndPerformAttack(LivingEntity enemy); + + @Inject(method = "canUse", at = @At("HEAD"), cancellable = true) + private void antarchy$useInvertedMelee(CallbackInfoReturnable cir) { + if (!AntarchyGravityApi.isGravityInverted(this.mob)) { + return; + } + + LivingEntity target = this.mob.getTarget(); + cir.setReturnValue(this.antarchy$isValidInvertedMeleeTarget(target)); + } + + @Inject(method = "canContinueToUse", at = @At("HEAD"), cancellable = true) + private void antarchy$continueInvertedMelee(CallbackInfoReturnable cir) { + if (!AntarchyGravityApi.isGravityInverted(this.mob)) { + return; + } + + LivingEntity target = this.mob.getTarget(); + cir.setReturnValue(this.antarchy$isValidInvertedMeleeTarget(target)); + } + + @Inject(method = "start", at = @At("HEAD"), cancellable = true) + private void antarchy$startInvertedMelee(CallbackInfo ci) { + if (!AntarchyGravityApi.isGravityInverted(this.mob)) { + return; + } + + LivingEntity target = this.mob.getTarget(); + this.mob.getNavigation().stop(); + this.mob.setAggressive(true); + this.ticksUntilNextAttack = 0; + ci.cancel(); + } + + @Inject(method = "tick", at = @At("HEAD"), cancellable = true) + private void antarchy$tickInvertedMelee(CallbackInfo ci) { + if (!AntarchyGravityApi.isGravityInverted(this.mob)) { + return; + } + + LivingEntity target = this.mob.getTarget(); + if (!this.antarchy$isValidInvertedMeleeTarget(target)) { + this.mob.getNavigation().stop(); + ci.cancel(); + return; + } + + this.mob.getLookControl().setLookAt(target, 30.0F, 30.0F); + // Do not call PathNavigation.moveTo here: that starts the unsafe vanilla + // path acquisition path. MoveControl receives a world-space target and + // the gravity movement mixin converts it into the inverted frame. + this.mob.getMoveControl().setWantedPosition(target.getX(), target.getY(), target.getZ(), this.speedModifier); + this.ticksUntilNextAttack = Math.max(0, this.ticksUntilNextAttack - 1); + this.checkAndPerformAttack(target); + ci.cancel(); + } + + private boolean antarchy$isValidInvertedMeleeTarget(LivingEntity target) { + if (target == null || !target.isAlive()) { + return false; + } + if (this.followingTargetEvenIfNotSeen && !this.mob.isWithinRestriction(target.blockPosition())) { + return false; + } + return !(target instanceof Player player) || (!player.isSpectator() && !player.isCreative()); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/MoveControlGravityMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/MoveControlGravityMixin.java new file mode 100644 index 00000000..60116734 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/MoveControlGravityMixin.java @@ -0,0 +1,48 @@ +package com.craisinlord.antarchy.mixins.gravity; + +import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi; +import com.craisinlord.antarchy.content.gravity.AntarchyGravityRotationUtil; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.ai.control.MoveControl; +import net.minecraft.world.phys.Vec3; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(MoveControl.class) +public abstract class MoveControlGravityMixin { + @Shadow + @Final + protected Mob mob; + + @Shadow + protected double wantedX; + + @Shadow + protected double wantedY; + + @Shadow + protected double wantedZ; + + @Shadow + protected double speedModifier; + + @Inject(method = "setWantedPosition", at = @At("TAIL")) + private void antarchy$convertInvertedWantedPosition(double x, double y, double z, double speed, CallbackInfo ci) { + if (!AntarchyGravityApi.isGravityInverted(this.mob)) { + return; + } + + Vec3 worldOffset = new Vec3(x - this.mob.getX(), y - this.mob.getY(), z - this.mob.getZ()); + Vec3 localOffset = AntarchyGravityRotationUtil.vecWorldToPlayer( + worldOffset, + AntarchyGravityApi.getGravityDirection(this.mob)); + this.wantedX = this.mob.getX() + localOffset.x; + this.wantedY = this.mob.getY() + localOffset.y; + this.wantedZ = this.mob.getZ() + localOffset.z; + this.speedModifier = speed; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/PlayerPoseFitMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/PlayerPoseFitMixin.java new file mode 100644 index 00000000..584841d3 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/PlayerPoseFitMixin.java @@ -0,0 +1,37 @@ +package com.craisinlord.antarchy.mixins.gravity; + +import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi; +import net.minecraft.world.entity.EntityDimensions; +import net.minecraft.world.entity.Pose; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(Player.class) +/* + * Fixes pose checks for ceiling-walking players. + */ +public abstract class PlayerPoseFitMixin { + + @Inject(method = "canPlayerFitWithinBlocksAndEntitiesWhen", at = @At("HEAD"), cancellable = true) + private void antarchy$canFitPoseWhenInverted(Pose pose, CallbackInfoReturnable cir) { + Player player = (Player) (Object) this; + if (!AntarchyGravityApi.isGravityInverted(player)) { + return; + } + + EntityDimensions dimensions = player.getDimensions(pose); + Vec3 position = player.position(); + float halfWidth = dimensions.width / 2.0F; + float height = dimensions.height; + AABB invertedBox = new AABB( + position.x - halfWidth, position.y - height, position.z - halfWidth, + position.x + halfWidth, position.y, position.z + halfWidth + ); + cir.setReturnValue(player.level().noCollision(player, invertedBox)); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/RandomStrollGoalGravityMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/RandomStrollGoalGravityMixin.java new file mode 100644 index 00000000..4d8362c1 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/RandomStrollGoalGravityMixin.java @@ -0,0 +1,161 @@ +package com.craisinlord.antarchy.mixins.gravity; + +import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.PathfinderMob; +import net.minecraft.world.entity.Pose; +import net.minecraft.world.entity.ai.goal.RandomStrollGoal; +import net.minecraft.world.entity.EntityDimensions; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.AABB; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(RandomStrollGoal.class) +public abstract class RandomStrollGoalGravityMixin { + @Unique + private static final int ANTARCHY$INVERTED_STROLL_ATTEMPTS = 12; + @Unique + private static final int ANTARCHY$INVERTED_STROLL_HORIZONTAL_RANGE = 7; + @Unique + private static final int ANTARCHY$INVERTED_STROLL_VERTICAL_RANGE = 2; + + @Shadow + @Final + protected PathfinderMob mob; + + @Shadow + protected double wantedX; + + @Shadow + protected double wantedY; + + @Shadow + protected double wantedZ; + + @Shadow + @Final + protected double speedModifier; + + @Shadow + protected int interval; + + @Shadow + protected boolean forceTrigger; + + @Shadow + @Final + private boolean checkNoActionTime; + + @Unique + private int antarchy$invertedStrollTicks; + + @Inject(method = "canUse", at = @At("HEAD"), cancellable = true) + private void antarchy$useInvertedRandomStroll(CallbackInfoReturnable cir) { + if (!AntarchyGravityApi.isGravityInverted(this.mob)) { + return; + } + + if (this.mob.hasControllingPassenger()) { + cir.setReturnValue(false); + return; + } + + if (!this.forceTrigger) { + if (this.checkNoActionTime && this.mob.getNoActionTime() >= 100) { + cir.setReturnValue(false); + return; + } + int chance = Math.max(1, this.interval); + if (this.mob.getRandom().nextInt(chance) != 0) { + cir.setReturnValue(false); + return; + } + } + + cir.setReturnValue(this.antarchy$findInvertedStrollTarget()); + } + + @Inject(method = "start", at = @At("HEAD"), cancellable = true) + private void antarchy$startInvertedRandomStroll(CallbackInfo ci) { + if (!AntarchyGravityApi.isGravityInverted(this.mob)) { + return; + } + + this.mob.getNavigation().stop(); + this.mob.getMoveControl().setWantedPosition(this.wantedX, this.wantedY, this.wantedZ, this.speedModifier); + this.antarchy$invertedStrollTicks = 0; + this.forceTrigger = false; + ci.cancel(); + } + + @Inject(method = "canContinueToUse", at = @At("HEAD"), cancellable = true) + private void antarchy$continueInvertedRandomStroll(CallbackInfoReturnable cir) { + if (!AntarchyGravityApi.isGravityInverted(this.mob)) { + return; + } + + double dx = this.wantedX - this.mob.getX(); + double dy = this.wantedY - this.mob.getY(); + double dz = this.wantedZ - this.mob.getZ(); + boolean arrived = dx * dx + dy * dy + dz * dz <= 1.0D; + boolean timedOut = this.antarchy$invertedStrollTicks++ >= 200; + if (!arrived && !timedOut && !this.mob.hasControllingPassenger()) { + // RandomStrollGoal inherits Goal.tick(), so continuation is the + // declared per-tick hook available for refreshing direct movement. + this.mob.getMoveControl().setWantedPosition(this.wantedX, this.wantedY, this.wantedZ, this.speedModifier); + } + cir.setReturnValue(!this.mob.hasControllingPassenger() && !arrived && !timedOut); + } + + @Unique + private boolean antarchy$findInvertedStrollTarget() { + int baseX = Mth.floor(this.mob.getX()); + int baseY = Mth.floor(this.mob.getY() + this.mob.getBbHeight()) - 1; + int baseZ = Mth.floor(this.mob.getZ()); + + for (int attempt = 0; attempt < ANTARCHY$INVERTED_STROLL_ATTEMPTS; attempt++) { + int x = baseX + this.mob.getRandom().nextInt(ANTARCHY$INVERTED_STROLL_HORIZONTAL_RANGE * 2 + 1) - ANTARCHY$INVERTED_STROLL_HORIZONTAL_RANGE; + int y = baseY + this.mob.getRandom().nextInt(ANTARCHY$INVERTED_STROLL_VERTICAL_RANGE * 2 + 1) - ANTARCHY$INVERTED_STROLL_VERTICAL_RANGE; + int z = baseZ + this.mob.getRandom().nextInt(ANTARCHY$INVERTED_STROLL_HORIZONTAL_RANGE * 2 + 1) - ANTARCHY$INVERTED_STROLL_HORIZONTAL_RANGE; + if (this.antarchy$isValidInvertedStrollTarget(x, y, z)) { + this.wantedX = x + 0.5D; + this.wantedY = y + 1.0D - 1.0E-3D; + this.wantedZ = z + 0.5D; + return true; + } + } + + return false; + } + + @Unique + private boolean antarchy$isValidInvertedStrollTarget(int x, int y, int z) { + Level level = this.mob.level(); + BlockPos ceilingPos = new BlockPos(x, y + 1, z); + if (!level.getBlockState(ceilingPos).isFaceSturdy(level, ceilingPos, Direction.DOWN)) { + return false; + } + + EntityDimensions dimensions = this.mob.getDimensions(Pose.STANDING); + double halfWidth = dimensions.width / 2.0D; + double topY = y + 1.0D - 1.0E-3D; + AABB bodyBox = new AABB( + x + 0.5D - halfWidth, + topY - dimensions.height, + z + 0.5D - halfWidth, + x + 0.5D + halfWidth, + topY, + z + 0.5D + halfWidth + ).deflate(1.0E-4D); + return level.noCollision(this.mob, bodyBox); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/AbstractArrowActionTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/AbstractArrowActionTimeDilationMixin.java new file mode 100644 index 00000000..f14765a1 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/AbstractArrowActionTimeDilationMixin.java @@ -0,0 +1,36 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import net.minecraft.world.entity.projectile.AbstractArrow; +import org.objectweb.asm.Opcodes; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(AbstractArrow.class) +public abstract class AbstractArrowActionTimeDilationMixin { + @Shadow private int life; + @Shadow protected int inGroundTime; + @Shadow public int shakeTime; + + @Redirect(method = "tick", at = @At(value = "FIELD", target = "Lnet/minecraft/world/entity/projectile/AbstractArrow;shakeTime:I", opcode = Opcodes.PUTFIELD)) + private void antarchy$slowShakeTime(AbstractArrow arrow, int value) { + if (TimeDilationApi.consumeTick(arrow, "arrow_shake")) this.shakeTime = value; + } + + @Redirect(method = "tick", at = @At(value = "FIELD", target = "Lnet/minecraft/world/entity/projectile/AbstractArrow;inGroundTime:I", opcode = Opcodes.PUTFIELD, ordinal = 0)) + private void antarchy$slowInGroundTime(AbstractArrow arrow, int value) { + if (TimeDilationApi.consumeTick(arrow, "arrow_in_ground")) this.inGroundTime = value; + } + + @Redirect(method = "tick", at = @At(value = "FIELD", target = "Lnet/minecraft/world/entity/projectile/AbstractArrow;inGroundTime:I", opcode = Opcodes.PUTFIELD, ordinal = 1)) + private void antarchy$resetInGroundTime(AbstractArrow arrow, int value) { + this.inGroundTime = value; + } + + @Redirect(method = "tickDespawn", at = @At(value = "FIELD", target = "Lnet/minecraft/world/entity/projectile/AbstractArrow;life:I", opcode = Opcodes.PUTFIELD)) + private void antarchy$slowLifetime(AbstractArrow arrow, int value) { + if (TimeDilationApi.consumeTick(arrow, "arrow_lifetime")) this.life = value; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/AbstractArrowMovementTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/AbstractArrowMovementTimeDilationMixin.java new file mode 100644 index 00000000..4ed3936d --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/AbstractArrowMovementTimeDilationMixin.java @@ -0,0 +1,30 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import com.craisinlord.antarchy.content.time.TimeDilationMath; +import net.minecraft.world.entity.projectile.AbstractArrow; +import net.minecraft.world.phys.Vec3; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(AbstractArrow.class) +public abstract class AbstractArrowMovementTimeDilationMixin { + @Redirect(method = "tick", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/phys/Vec3;add(Lnet/minecraft/world/phys/Vec3;)Lnet/minecraft/world/phys/Vec3;")) + private Vec3 antarchy$slowCollisionPath(Vec3 position, Vec3 movement) { + double rate = TimeDilationApi.getRate((AbstractArrow) (Object) this); + return position.add(rate >= TimeDilationMath.NORMAL_RATE ? movement : movement.scale(rate)); + } + + @Redirect(method = "tick", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/projectile/AbstractArrow;setPos(DDD)V")) + private void antarchy$slowPosition(AbstractArrow arrow, double x, double y, double z) { + double rate = Math.max(TimeDilationMath.MIN_RATE, TimeDilationApi.getRate(arrow)); + if (rate >= TimeDilationMath.NORMAL_RATE) { + arrow.setPos(x, y, z); + return; + } + arrow.setPos(arrow.getX() + (x - arrow.getX()) * rate, + arrow.getY() + (y - arrow.getY()) * rate, + arrow.getZ() + (z - arrow.getZ()) * rate); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/CreeperTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/CreeperTimeDilationMixin.java new file mode 100644 index 00000000..d9541586 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/CreeperTimeDilationMixin.java @@ -0,0 +1,16 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import net.minecraft.world.entity.monster.Creeper; +import org.spongepowered.asm.mixin.Mixin; +import com.llamalad7.mixinextras.injector.ModifyReturnValue; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(Creeper.class) +public abstract class CreeperTimeDilationMixin { + @ModifyReturnValue(method = "getSwellDir", at = @At("RETURN")) + private int antarchy$slowSwellProgress(int direction) { + Creeper creeper = (Creeper) (Object) this; + return TimeDilationApi.consumeTick(creeper, "creeper_swell") ? direction : 0; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EndCrystalTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EndCrystalTimeDilationMixin.java new file mode 100644 index 00000000..f6545b33 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EndCrystalTimeDilationMixin.java @@ -0,0 +1,19 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import net.minecraft.world.entity.boss.enderdragon.EndCrystal; +import org.objectweb.asm.Opcodes; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; + +@Mixin(EndCrystal.class) +public abstract class EndCrystalTimeDilationMixin { + @WrapOperation(method = "tick", at = @At(value = "FIELD", target = "Lnet/minecraft/world/entity/boss/enderdragon/EndCrystal;time:I", opcode = Opcodes.PUTFIELD)) + private void antarchy$slowCrystalTime(EndCrystal crystal, int value, Operation original) { + if (TimeDilationApi.consumeTick(crystal, "end_crystal_time")) { + original.call(crystal, value); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityCrouchTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityCrouchTimeDilationMixin.java new file mode 100644 index 00000000..62c455c2 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityCrouchTimeDilationMixin.java @@ -0,0 +1,23 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Pose; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(Entity.class) +public abstract class EntityCrouchTimeDilationMixin { + @Inject(method = "setPose", at = @At("HEAD"), cancellable = true) + private void antarchy$slowCrouchTransition(Pose pose, CallbackInfo callbackInfo) { + Entity entity = (Entity) (Object) this; + if (entity instanceof LivingEntity living + && (pose == Pose.CROUCHING || living.getPose() == Pose.CROUCHING) + && !TimeDilationApi.consumeTick(entity, "living_crouch")) { + callbackInfo.cancel(); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityDeltaMovementTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityDeltaMovementTimeDilationMixin.java new file mode 100644 index 00000000..834d3b71 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityDeltaMovementTimeDilationMixin.java @@ -0,0 +1,39 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import com.craisinlord.antarchy.content.time.TimeDilationEntityAccess; +import com.craisinlord.antarchy.content.time.TimeDilationMath; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.phys.Vec3; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyVariable; + +@Mixin(Entity.class) +public abstract class EntityDeltaMovementTimeDilationMixin { + @ModifyVariable(method = "setDeltaMovement(Lnet/minecraft/world/phys/Vec3;)V", at = @At("HEAD"), argsOnly = true, ordinal = 0) + private Vec3 antarchy$scaleTimeDilatedVelocityChange(Vec3 nextMovement) { + Entity entity = (Entity) (Object) this; + if (!(entity instanceof TimeDilationEntityAccess access) + || access.antarchy$isInTimeDilationMove() + || access.antarchy$isApplyingExternalImpulse()) { + return nextMovement; + } + + double rate = TimeDilationApi.getRate(entity); + if (rate >= TimeDilationMath.NORMAL_RATE) { + return nextMovement; + } + + Vec3 currentMovement = entity.getDeltaMovement(); + double y = currentMovement.y + (nextMovement.y - currentMovement.y) * rate; + if (nextMovement.y > currentMovement.y && nextMovement.y > 0.0D && (entity.onGround() || currentMovement.y <= 0.0D)) { + y = nextMovement.y; + } + return new Vec3( + currentMovement.x + (nextMovement.x - currentMovement.x) * rate, + y, + currentMovement.z + (nextMovement.z - currentMovement.z) * rate + ); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityMoveTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityMoveTimeDilationMixin.java new file mode 100644 index 00000000..e109cbd3 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityMoveTimeDilationMixin.java @@ -0,0 +1,40 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import com.craisinlord.antarchy.content.time.TimeDilationEntityAccess; +import com.craisinlord.antarchy.content.time.TimeDilationMath; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.MoverType; +import net.minecraft.world.phys.Vec3; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyVariable; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(Entity.class) +public abstract class EntityMoveTimeDilationMixin { + @Inject(method = "move", at = @At("HEAD")) + private void antarchy$beginTimeDilationMove(MoverType moverType, Vec3 movement, CallbackInfo ci) { + if (this instanceof TimeDilationEntityAccess access) { + access.antarchy$setInTimeDilationMove(true); + } + } + + @Inject(method = "move", at = @At("RETURN")) + private void antarchy$endTimeDilationMove(MoverType moverType, Vec3 movement, CallbackInfo ci) { + if (this instanceof TimeDilationEntityAccess access) { + access.antarchy$setInTimeDilationMove(false); + } + } + + @ModifyVariable(method = "move", at = @At("HEAD"), argsOnly = true, ordinal = 0) + private Vec3 antarchy$scaleTimeDilatedMovement(Vec3 movement) { + Entity entity = (Entity) (Object) this; + double rate = TimeDilationApi.getRate(entity); + if (rate >= TimeDilationMath.NORMAL_RATE) { + return movement; + } + return movement.scale(rate); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityRotationTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityRotationTimeDilationMixin.java new file mode 100644 index 00000000..92667d79 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityRotationTimeDilationMixin.java @@ -0,0 +1,32 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import com.craisinlord.antarchy.content.time.TimeDilationMath; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Entity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyVariable; + +@Mixin(Entity.class) +public abstract class EntityRotationTimeDilationMixin { + @ModifyVariable(method = "setYRot", at = @At("HEAD"), argsOnly = true) + private float antarchy$slowYaw(float nextYaw) { + Entity entity = (Entity) (Object) this; + double rate = TimeDilationApi.getRate(entity); + if (rate >= TimeDilationMath.NORMAL_RATE) { + return nextYaw; + } + return entity.getYRot() + Mth.wrapDegrees(nextYaw - entity.getYRot()) * (float) rate; + } + + @ModifyVariable(method = "setXRot", at = @At("HEAD"), argsOnly = true) + private float antarchy$slowPitch(float nextPitch) { + Entity entity = (Entity) (Object) this; + double rate = TimeDilationApi.getRate(entity); + if (rate >= TimeDilationMath.NORMAL_RATE) { + return nextPitch; + } + return entity.getXRot() + (nextPitch - entity.getXRot()) * (float) rate; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityTimeDilationStateMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityTimeDilationStateMixin.java new file mode 100644 index 00000000..c5160851 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityTimeDilationStateMixin.java @@ -0,0 +1,84 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationEntityAccess; +import com.craisinlord.antarchy.content.time.TimeDilationMath; +import java.util.HashMap; +import java.util.Map; +import net.minecraft.world.entity.Entity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; + +@Mixin(Entity.class) +public abstract class EntityTimeDilationStateMixin implements TimeDilationEntityAccess { + @Unique + private double antarchy$timeDilationRate = TimeDilationMath.NORMAL_RATE; + @Unique + private double antarchy$inheritedTimeDilationRate = TimeDilationMath.NORMAL_RATE; + @Unique + private final Map antarchy$timeDilationTimerProgress = new HashMap<>(); + @Unique + private boolean antarchy$inTimeDilationMove; + @Unique + private boolean antarchy$applyingExternalImpulse; + + @Override + public double antarchy$getTimeDilationRate() { + return this.antarchy$timeDilationRate; + } + + @Override + public void antarchy$setTimeDilationRate(double rate) { + this.antarchy$timeDilationRate = TimeDilationMath.clampRate(rate); + if (this.antarchy$timeDilationRate >= TimeDilationMath.NORMAL_RATE) { + this.antarchy$timeDilationTimerProgress.clear(); + } + } + + @Override + public double antarchy$getInheritedTimeDilationRate() { + return this.antarchy$inheritedTimeDilationRate; + } + + @Override + public void antarchy$setInheritedTimeDilationRate(double rate) { + this.antarchy$inheritedTimeDilationRate = TimeDilationMath.clampRate(rate); + } + + @Override + public boolean antarchy$consumeTimeDilationTick(String timerKey, double rate) { + double clampedRate = TimeDilationMath.clampRate(rate); + if (clampedRate >= TimeDilationMath.NORMAL_RATE) { + return true; + } + + double progress = this.antarchy$timeDilationTimerProgress.getOrDefault(timerKey, 0.0D) + clampedRate; + int wholeTicks = (int) Math.floor(progress + 1.0E-9D); + if (wholeTicks <= 0) { + this.antarchy$timeDilationTimerProgress.put(timerKey, progress); + return false; + } + + this.antarchy$timeDilationTimerProgress.put(timerKey, progress - wholeTicks); + return true; + } + + @Override + public boolean antarchy$isInTimeDilationMove() { + return this.antarchy$inTimeDilationMove; + } + + @Override + public void antarchy$setInTimeDilationMove(boolean inMove) { + this.antarchy$inTimeDilationMove = inMove; + } + + @Override + public boolean antarchy$isApplyingExternalImpulse() { + return this.antarchy$applyingExternalImpulse; + } + + @Override + public void antarchy$setApplyingExternalImpulse(boolean applying) { + this.antarchy$applyingExternalImpulse = applying; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/GeckoLibAnimationControllerTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/GeckoLibAnimationControllerTimeDilationMixin.java new file mode 100644 index 00000000..1bd8296d --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/GeckoLibAnimationControllerTimeDilationMixin.java @@ -0,0 +1,24 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import com.llamalad7.mixinextras.injector.ModifyReturnValue; +import net.minecraft.world.entity.Entity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import software.bernie.geckolib.core.animatable.GeoAnimatable; +import software.bernie.geckolib.core.animation.AnimationController; + +@Mixin(AnimationController.class) +public abstract class GeckoLibAnimationControllerTimeDilationMixin { + @Shadow(remap = false) + protected T animatable; + + @ModifyReturnValue(method = "adjustTick", at = @At("RETURN"), remap = false) + private double antarchy$scaleAnimationTick(double tick) { + if (this.animatable instanceof Entity entity) { + return tick * TimeDilationApi.getRate(entity); + } + return tick; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/HurtingProjectileMovementTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/HurtingProjectileMovementTimeDilationMixin.java new file mode 100644 index 00000000..1f717d6f --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/HurtingProjectileMovementTimeDilationMixin.java @@ -0,0 +1,23 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import com.craisinlord.antarchy.content.time.TimeDilationMath; +import net.minecraft.world.entity.projectile.AbstractHurtingProjectile; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(AbstractHurtingProjectile.class) +public abstract class HurtingProjectileMovementTimeDilationMixin { + @Redirect(method = "tick", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/projectile/AbstractHurtingProjectile;setPos(DDD)V")) + private void antarchy$slowPosition(AbstractHurtingProjectile projectile, double x, double y, double z) { + double rate = Math.max(TimeDilationMath.MIN_RATE, TimeDilationApi.getRate(projectile)); + if (rate >= TimeDilationMath.NORMAL_RATE) { + projectile.setPos(x, y, z); + return; + } + projectile.setPos(projectile.getX() + (x - projectile.getX()) * rate, + projectile.getY() + (y - projectile.getY()) * rate, + projectile.getZ() + (z - projectile.getZ()) * rate); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ItemEntityRendererTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ItemEntityRendererTimeDilationMixin.java new file mode 100644 index 00000000..514e6c30 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ItemEntityRendererTimeDilationMixin.java @@ -0,0 +1,43 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.client.ClientTimeDilationTicker; +import net.minecraft.client.renderer.entity.ItemEntityRenderer; +import net.minecraft.world.entity.item.ItemEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(ItemEntityRenderer.class) +public abstract class ItemEntityRendererTimeDilationMixin { + @Unique + private static final ThreadLocal antarchy$renderingItem = new ThreadLocal<>(); + + @Inject(method = "render", at = @At("HEAD")) + private void antarchy$beginItemRender(ItemEntity item, float entityYaw, float partialTick, + com.mojang.blaze3d.vertex.PoseStack poseStack, + net.minecraft.client.renderer.MultiBufferSource buffer, + int packedLight, CallbackInfo ci) { + antarchy$renderingItem.set(item); + } + + @Inject(method = "render", at = @At("RETURN")) + private void antarchy$endItemRender(ItemEntity item, float entityYaw, float partialTick, + com.mojang.blaze3d.vertex.PoseStack poseStack, + net.minecraft.client.renderer.MultiBufferSource buffer, + int packedLight, CallbackInfo ci) { + antarchy$renderingItem.remove(); + } + + @ModifyArg(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Mth;sin(F)F"), index = 0) + private float antarchy$slowItemBob(float phase) { + ItemEntity item = antarchy$renderingItem.get(); + if (item == null) { + return phase; + } + double rate = com.craisinlord.antarchy.content.time.TimeDilationApi.getRate(item); + return rate >= 1.0D ? phase : phase * (float) rate; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ItemEntityRotationTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ItemEntityRotationTimeDilationMixin.java new file mode 100644 index 00000000..f9bcd369 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ItemEntityRotationTimeDilationMixin.java @@ -0,0 +1,15 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.client.ClientTimeDilationTicker; +import net.minecraft.world.entity.item.ItemEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import com.llamalad7.mixinextras.injector.ModifyReturnValue; + +@Mixin(ItemEntity.class) +public abstract class ItemEntityRotationTimeDilationMixin { + @ModifyReturnValue(method = "getSpin", at = @At("RETURN")) + private float antarchy$slowSpin(float spin) { + return ClientTimeDilationTicker.dilateItemSpin((ItemEntity) (Object) this, spin); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LivingEntityAttackCooldownTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LivingEntityAttackCooldownTimeDilationMixin.java new file mode 100644 index 00000000..0415fb3c --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LivingEntityAttackCooldownTimeDilationMixin.java @@ -0,0 +1,23 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import net.minecraft.world.entity.LivingEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(LivingEntity.class) +public abstract class LivingEntityAttackCooldownTimeDilationMixin { + @Shadow + private int attackStrengthTicker; + + @Inject(method = "tick", at = @At("RETURN")) + private void antarchy$slowAttackCooldown(CallbackInfo ci) { + LivingEntity entity = (LivingEntity) (Object) this; + if (!TimeDilationApi.consumeTick(entity, "living_attack_cooldown")) { + this.attackStrengthTicker = Math.max(0, this.attackStrengthTicker - 1); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LivingEntityKnockbackTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LivingEntityKnockbackTimeDilationMixin.java new file mode 100644 index 00000000..1b033a45 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LivingEntityKnockbackTimeDilationMixin.java @@ -0,0 +1,25 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationEntityAccess; +import net.minecraft.world.entity.LivingEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(LivingEntity.class) +public abstract class LivingEntityKnockbackTimeDilationMixin { + @Inject(method = "knockback", at = @At("HEAD")) + private void antarchy$beginExternalImpulse(double strength, double x, double z, CallbackInfo ci) { + if (this instanceof TimeDilationEntityAccess access) { + access.antarchy$setApplyingExternalImpulse(true); + } + } + + @Inject(method = "knockback", at = @At("RETURN")) + private void antarchy$endExternalImpulse(double strength, double x, double z, CallbackInfo ci) { + if (this instanceof TimeDilationEntityAccess access) { + access.antarchy$setApplyingExternalImpulse(false); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LivingEntityRendererAnimationTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LivingEntityRendererAnimationTimeDilationMixin.java new file mode 100644 index 00000000..e2d0d06c --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LivingEntityRendererAnimationTimeDilationMixin.java @@ -0,0 +1,77 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.client.ClientTimeDilationTicker; +import com.llamalad7.mixinextras.injector.ModifyReturnValue; +import net.minecraft.client.renderer.entity.LivingEntityRenderer; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.util.Mth; +import org.spongepowered.asm.mixin.injection.Redirect; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(LivingEntityRenderer.class) +public abstract class LivingEntityRendererAnimationTimeDilationMixin { + private static final ThreadLocal antarchy$renderingEntity = new ThreadLocal<>(); + + @org.spongepowered.asm.mixin.injection.Inject(method = "render", at = @At("HEAD")) + private void antarchy$beginRender(LivingEntity entity, float entityYaw, float partialTick, + com.mojang.blaze3d.vertex.PoseStack poseStack, + net.minecraft.client.renderer.MultiBufferSource buffer, + int packedLight, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) { + antarchy$renderingEntity.set(entity); + } + + @org.spongepowered.asm.mixin.injection.Inject(method = "render", at = @At("RETURN")) + private void antarchy$endRender(LivingEntity entity, float entityYaw, float partialTick, + com.mojang.blaze3d.vertex.PoseStack poseStack, + net.minecraft.client.renderer.MultiBufferSource buffer, + int packedLight, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) { + antarchy$renderingEntity.remove(); + } + + @Redirect(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Mth;rotLerp(FFF)F", ordinal = 0)) + private float antarchy$slowBodyYaw(float partialTick, float previous, float current) { + LivingEntity entity = antarchy$renderingEntity.get(); + return entity == null ? Mth.rotLerp(partialTick, previous, current) + : ClientTimeDilationTicker.dilateRotation(entity, previous, current, partialTick); + } + + @Redirect(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Mth;rotLerp(FFF)F", ordinal = 1)) + private float antarchy$slowHeadYaw(float partialTick, float previous, float current) { + LivingEntity entity = antarchy$renderingEntity.get(); + return entity == null ? Mth.rotLerp(partialTick, previous, current) + : ClientTimeDilationTicker.dilateRotation(entity, previous, current, partialTick); + } + + @Redirect(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Mth;lerp(FFF)F", ordinal = 0)) + private float antarchy$slowHeadPitch(float partialTick, float previous, float current) { + LivingEntity entity = antarchy$renderingEntity.get(); + return entity == null ? Mth.lerp(partialTick, previous, current) + : ClientTimeDilationTicker.dilatePitch(entity, previous, current, partialTick); + } + + @Redirect(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/WalkAnimationState;speed(F)F")) + private float antarchy$slowWalkAmount(net.minecraft.world.entity.WalkAnimationState state, float partialTick) { + LivingEntity entity = antarchy$renderingEntity.get(); + float amount = state.speed(partialTick); + return entity == null ? amount : ClientTimeDilationTicker.dilateWalkAmount(entity, amount); + } + + @org.spongepowered.asm.mixin.injection.Inject(method = "getOverlayCoords", at = @At("HEAD"), cancellable = true) + private static void antarchy$slowHurtOverlay(LivingEntity entity, float partialTick, CallbackInfoReturnable cir) { + if (com.craisinlord.antarchy.content.time.TimeDilationApi.getRate(entity) < 1.0D + && (entity.hurtTime > 0 || entity.deathTime > 0)) { + cir.setReturnValue(net.minecraft.client.renderer.texture.OverlayTexture.pack(1.0F, entity.deathTime > 0)); + } + } + @ModifyReturnValue(method = "getAttackAnim", at = @At("RETURN")) + private float antarchy$slowAttackAnimation(float animation, LivingEntity entity, float partialTick) { + return ClientTimeDilationTicker.dilateAttackAnimation(entity, partialTick, animation); + } + + @ModifyReturnValue(method = "getBob", at = @At("RETURN")) + private float antarchy$slowIdleAnimation(float bob, LivingEntity entity, float partialTick) { + return ClientTimeDilationTicker.dilateAnimationTime(entity, bob); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LivingEntityTimeDilationCleanupMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LivingEntityTimeDilationCleanupMixin.java new file mode 100644 index 00000000..d4dd7984 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LivingEntityTimeDilationCleanupMixin.java @@ -0,0 +1,17 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.LivingEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(LivingEntity.class) +public abstract class LivingEntityTimeDilationCleanupMixin { + @Inject(method = "die", at = @At("HEAD")) + private void antarchy$clearTimeDilationOnDeath(DamageSource damageSource, CallbackInfo ci) { + TimeDilationApi.clearRate((LivingEntity) (Object) this); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LivingEntityTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LivingEntityTimeDilationMixin.java new file mode 100644 index 00000000..edb62d82 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LivingEntityTimeDilationMixin.java @@ -0,0 +1,60 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import com.craisinlord.antarchy.content.time.TimeDilationManager; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(LivingEntity.class) +public abstract class LivingEntityTimeDilationMixin { + @Inject(method = "tickEffects", at = @At("HEAD")) + private void antarchy$trackTemporalEffects(CallbackInfo ci) { + TimeDilationManager.trackPotentiallyAffected((Entity) (Object) this); + } + + @Inject(method = "updateSwingTime", at = @At("HEAD"), cancellable = true) + private void antarchy$slowSwingTime(CallbackInfo ci) { + Entity entity = (Entity) (Object) this; + if (!TimeDilationApi.consumeTick(entity, "living_swing")) { + ci.cancel(); + } + } + + @Inject(method = "tickEffects", at = @At("HEAD"), cancellable = true) + private void antarchy$slowEffectTicks(CallbackInfo ci) { + Entity entity = (Entity) (Object) this; + if (!TimeDilationApi.consumeTick(entity, "living_effects")) { + ci.cancel(); + } + } + + @Inject(method = "updatingUsingItem", at = @At("HEAD"), cancellable = true) + private void antarchy$slowUsingItem(CallbackInfo ci) { + Entity entity = (Entity) (Object) this; + if (!TimeDilationApi.consumeTick(entity, "living_using_item")) { + ci.cancel(); + } + } + + @Inject(method = "swing(Lnet/minecraft/world/InteractionHand;Z)V", at = @At("HEAD"), cancellable = true) + private void antarchy$slowSwingStart(InteractionHand hand, boolean updateSelf, CallbackInfo ci) { + Entity entity = (Entity) (Object) this; + if (!TimeDilationApi.consumeTick(entity, "living_swing_start")) { + ci.cancel(); + } + } + + @Inject(method = "updateUsingItem", at = @At("HEAD"), cancellable = true) + private void antarchy$slowItemUseProgress(ItemStack stack, CallbackInfo ci) { + Entity entity = (Entity) (Object) this; + if (!TimeDilationApi.consumeTick(entity, "living_item_use_progress")) { + ci.cancel(); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LookControlTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LookControlTimeDilationMixin.java new file mode 100644 index 00000000..a45e7459 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/LookControlTimeDilationMixin.java @@ -0,0 +1,26 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import com.craisinlord.antarchy.content.time.TimeDilationMath; +import com.llamalad7.mixinextras.injector.ModifyReturnValue; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.ai.control.LookControl; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(LookControl.class) +public abstract class LookControlTimeDilationMixin { + @Shadow + protected Mob mob; + + @ModifyReturnValue(method = "rotateTowards", at = @At("RETURN")) + private float antarchy$slowLookTurn(float result, float from, float to, float maxAngle) { + double rate = TimeDilationApi.getRate(this.mob); + if (rate >= TimeDilationMath.NORMAL_RATE) { + return result; + } + return from + (float) (Mth.wrapDegrees(result - from) * rate); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/MeleeAttackGoalTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/MeleeAttackGoalTimeDilationMixin.java new file mode 100644 index 00000000..91464218 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/MeleeAttackGoalTimeDilationMixin.java @@ -0,0 +1,26 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import net.minecraft.world.entity.PathfinderMob; +import net.minecraft.world.entity.ai.goal.MeleeAttackGoal; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(MeleeAttackGoal.class) +public abstract class MeleeAttackGoalTimeDilationMixin { + @Shadow + @Final + protected PathfinderMob mob; + + @Shadow + private int ticksUntilNextAttack; + + @Inject(method = "resetAttackCooldown", at = @At("RETURN")) + private void antarchy$scaleMeleeCooldown(CallbackInfo ci) { + this.ticksUntilNextAttack = TimeDilationApi.scaleCooldownTicks(this.mob, this.ticksUntilNextAttack); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/MobAttackTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/MobAttackTimeDilationMixin.java new file mode 100644 index 00000000..70c04436 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/MobAttackTimeDilationMixin.java @@ -0,0 +1,35 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import com.craisinlord.antarchy.content.time.TimeDilationMath; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.Mob; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(Mob.class) +public abstract class MobAttackTimeDilationMixin { + @Unique + private long antarchy$nextAttackTick = Long.MIN_VALUE; + + @Inject(method = "doHurtTarget", at = @At("HEAD"), cancellable = true) + private void antarchy$rateLimitAttack(Entity target, CallbackInfoReturnable cir) { + Mob mob = (Mob) (Object) this; + if (mob.level().isClientSide) { + return; + } + double rate = TimeDilationApi.getRate(mob); + if (rate >= TimeDilationMath.NORMAL_RATE) { + return; + } + long now = mob.level().getGameTime(); + if (now < this.antarchy$nextAttackTick) { + cir.setReturnValue(false); + return; + } + this.antarchy$nextAttackTick = now + TimeDilationApi.scaleCooldownTicks(mob, 20); + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ParticlePositionAccessor.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ParticlePositionAccessor.java new file mode 100644 index 00000000..c38a965e --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ParticlePositionAccessor.java @@ -0,0 +1,17 @@ +package com.craisinlord.antarchy.mixins.time; + +import net.minecraft.client.particle.Particle; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(Particle.class) +public interface ParticlePositionAccessor { + @Accessor("x") + double antarchy$getX(); + + @Accessor("y") + double antarchy$getY(); + + @Accessor("z") + double antarchy$getZ(); +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ParticleTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ParticleTimeDilationMixin.java new file mode 100644 index 00000000..c1630961 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ParticleTimeDilationMixin.java @@ -0,0 +1,64 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.client.ClientTimeDilationTicker; +import com.craisinlord.antarchy.content.time.TimeDilationMath; +import net.minecraft.client.particle.Particle; +import org.objectweb.asm.Opcodes; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyArgs; +import org.spongepowered.asm.mixin.injection.Redirect; +import org.spongepowered.asm.mixin.injection.invoke.arg.Args; + +@Mixin(Particle.class) +public abstract class ParticleTimeDilationMixin { + @Shadow + protected int age; + @Shadow + protected double x; + @Shadow + protected double y; + @Shadow + protected double z; + + @Unique + private double antarchy$ageProgress; + + @Unique + private double antarchy$sampleRate() { + return ClientTimeDilationTicker.rateAt(this.x, this.y, this.z); + } + + @ModifyArgs( + method = "tick", + at = @At(value = "INVOKE", target = "Lnet/minecraft/client/particle/Particle;move(DDD)V") + ) + private void antarchy$slowParticleMovement(Args args) { + double rate = this.antarchy$sampleRate(); + if (rate >= TimeDilationMath.NORMAL_RATE) { + return; + } + args.set(0, (Double) args.get(0) * rate); + args.set(1, (Double) args.get(1) * rate); + args.set(2, (Double) args.get(2) * rate); + } + + @Redirect( + method = "tick", + at = @At(value = "FIELD", target = "Lnet/minecraft/client/particle/Particle;age:I", opcode = Opcodes.PUTFIELD) + ) + private void antarchy$slowParticleAge(Particle self, int nextAge) { + double rate = this.antarchy$sampleRate(); + if (rate >= TimeDilationMath.NORMAL_RATE) { + this.age = nextAge; + return; + } + this.antarchy$ageProgress += rate; + if (this.antarchy$ageProgress >= 1.0D) { + this.antarchy$ageProgress -= 1.0D; + this.age = nextAge; + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/PortalParticleTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/PortalParticleTimeDilationMixin.java new file mode 100644 index 00000000..ec676bb8 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/PortalParticleTimeDilationMixin.java @@ -0,0 +1,30 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.client.ClientTimeDilationTicker; +import net.minecraft.client.particle.PortalParticle; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(PortalParticle.class) +public abstract class PortalParticleTimeDilationMixin { + @Unique + private double antarchy$timeProgress; + + @Inject(method = "tick", at = @At("HEAD"), cancellable = true) + private void antarchy$slowPortalParticle(CallbackInfo ci) { + ParticlePositionAccessor position = (ParticlePositionAccessor) (Object) this; + double rate = ClientTimeDilationTicker.rateAt(position.antarchy$getX(), position.antarchy$getY(), position.antarchy$getZ()); + if (rate >= 1.0D) { + return; + } + this.antarchy$timeProgress += rate; + if (this.antarchy$timeProgress < 1.0D) { + ci.cancel(); + } else { + this.antarchy$timeProgress -= 1.0D; + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/PrimedTntTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/PrimedTntTimeDilationMixin.java new file mode 100644 index 00000000..cd680d01 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/PrimedTntTimeDilationMixin.java @@ -0,0 +1,21 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; +import net.minecraft.world.entity.item.PrimedTnt; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(PrimedTnt.class) +public abstract class PrimedTntTimeDilationMixin { + @WrapOperation( + method = "tick", + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/item/PrimedTnt;setFuse(I)V") + ) + private void antarchy$slowFuse(PrimedTnt tnt, int fuse, Operation original) { + if (TimeDilationApi.consumeTick(tnt, "primed_tnt_fuse")) { + original.call(tnt, fuse); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ProjectileTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ProjectileTimeDilationMixin.java new file mode 100644 index 00000000..a471ed0b --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ProjectileTimeDilationMixin.java @@ -0,0 +1,21 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import com.craisinlord.antarchy.content.time.TimeDilationManager; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.projectile.Projectile; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(Projectile.class) +public abstract class ProjectileTimeDilationMixin { + @Inject(method = "setOwner", at = @At("TAIL")) + private void antarchy$inheritTimeDilation(Entity owner, CallbackInfo callbackInfo) { + if (owner != null) { + TimeDilationApi.setInheritedRate((Entity) (Object) this, TimeDilationApi.getRate(owner)); + TimeDilationManager.trackPotentiallyAffected((Entity) (Object) this); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/RangedAttackGoalTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/RangedAttackGoalTimeDilationMixin.java new file mode 100644 index 00000000..1a237829 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/RangedAttackGoalTimeDilationMixin.java @@ -0,0 +1,25 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.ai.goal.RangedAttackGoal; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(RangedAttackGoal.class) +public abstract class RangedAttackGoalTimeDilationMixin { + @Shadow + @Final + private Mob mob; + + @Inject(method = "tick", at = @At("HEAD"), cancellable = true) + private void antarchy$slowRangedGoalTick(CallbackInfo ci) { + if (!TimeDilationApi.consumeTick(this.mob, "ranged_goal_tick")) { + ci.cancel(); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/RangedBowAttackGoalTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/RangedBowAttackGoalTimeDilationMixin.java new file mode 100644 index 00000000..191bacff --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/RangedBowAttackGoalTimeDilationMixin.java @@ -0,0 +1,29 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.ai.goal.RangedBowAttackGoal; +import net.minecraft.world.entity.monster.Monster; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(RangedBowAttackGoal.class) +public abstract class RangedBowAttackGoalTimeDilationMixin { + @Unique + private Mob antarchy$timeDilationMob; + + @Inject(method = "(Lnet/minecraft/world/entity/monster/Monster;DIF)V", at = @At("RETURN")) + private void antarchy$captureMob(Monster mob, double speedModifier, int attackIntervalMin, float attackRadius, CallbackInfo ci) { + this.antarchy$timeDilationMob = mob; + } + + @Inject(method = "tick", at = @At("HEAD"), cancellable = true) + private void antarchy$slowRangedBowGoalTick(CallbackInfo ci) { + if (this.antarchy$timeDilationMob != null && !TimeDilationApi.consumeTick(this.antarchy$timeDilationMob, "ranged_bow_goal_tick")) { + ci.cancel(); + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ReversePortalParticleTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ReversePortalParticleTimeDilationMixin.java new file mode 100644 index 00000000..a7d5aa85 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ReversePortalParticleTimeDilationMixin.java @@ -0,0 +1,30 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.client.ClientTimeDilationTicker; +import net.minecraft.client.particle.ReversePortalParticle; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(ReversePortalParticle.class) +public abstract class ReversePortalParticleTimeDilationMixin { + @Unique + private double antarchy$timeProgress; + + @Inject(method = "tick", at = @At("HEAD"), cancellable = true) + private void antarchy$slowReversePortalParticle(CallbackInfo ci) { + ParticlePositionAccessor position = (ParticlePositionAccessor) (Object) this; + double rate = ClientTimeDilationTicker.rateAt(position.antarchy$getX(), position.antarchy$getY(), position.antarchy$getZ()); + if (rate >= 1.0D) { + return; + } + this.antarchy$timeProgress += rate; + if (this.antarchy$timeProgress < 1.0D) { + ci.cancel(); + } else { + this.antarchy$timeProgress -= 1.0D; + } + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/SoundEngineTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/SoundEngineTimeDilationMixin.java new file mode 100644 index 00000000..7a2f7aab --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/SoundEngineTimeDilationMixin.java @@ -0,0 +1,58 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.client.ClientTimeDilationTicker; +import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.time.TimeDilationMath; +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import com.craisinlord.antarchy.content.effect.ContractedMobEffect; +import com.craisinlord.antarchy.content.effect.DilatedMobEffect; +import com.craisinlord.antarchy.mixins.client.EntityBoundSoundInstanceAccessor; +import com.llamalad7.mixinextras.injector.ModifyReturnValue; +import net.minecraft.client.resources.sounds.SoundInstance; +import net.minecraft.client.sounds.SoundEngine; +import net.minecraft.client.Minecraft; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(SoundEngine.class) +public abstract class SoundEngineTimeDilationMixin { + @ModifyReturnValue(method = "calculatePitch", at = @At("RETURN")) + private float antarchy$dilatePitch(float pitch, SoundInstance sound) { + double rate = ClientTimeDilationTicker.rateAt(sound.getX(), sound.getY(), sound.getZ()); + if (sound instanceof EntityBoundSoundInstanceAccessor accessor) { + rate = combineRates(rate, rateForEntity(accessor.antarchy$getEntity())); + } + Minecraft minecraft = Minecraft.getInstance(); + if (minecraft.player != null) { + rate = combineRates(rate, rateForEntity(minecraft.player)); + } + if (Math.abs(rate - TimeDilationMath.NORMAL_RATE) < 0.001D) { + return pitch; + } + return (float) (pitch * Math.max(TimeDilationMath.MIN_RATE, rate)); + } + + private static double combineRates(double first, double second) { + if (first < TimeDilationMath.NORMAL_RATE || second < TimeDilationMath.NORMAL_RATE) { + return Math.min(first, second); + } + return Math.max(first, second); + } + + private static double rateForEntity(Entity entity) { + double rate = TimeDilationApi.getRate(entity); + if (entity instanceof LivingEntity living) { + if (living.hasEffect(AntarchyObjects.DILATED_EFFECT.get())) { + rate = Math.min(rate, DilatedMobEffect.rateForAmplifier( + living.getEffect(AntarchyObjects.DILATED_EFFECT.get()).getAmplifier())); + } + if (living.hasEffect(AntarchyObjects.CONTRACTED_EFFECT.get())) { + rate = combineRates(rate, ContractedMobEffect.rateForAmplifier( + living.getEffect(AntarchyObjects.CONTRACTED_EFFECT.get()).getAmplifier())); + } + } + return rate; + } +} diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ThrowableProjectileMovementTimeDilationMixin.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ThrowableProjectileMovementTimeDilationMixin.java new file mode 100644 index 00000000..23f8de85 --- /dev/null +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/mixins/time/ThrowableProjectileMovementTimeDilationMixin.java @@ -0,0 +1,23 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import com.craisinlord.antarchy.content.time.TimeDilationMath; +import net.minecraft.world.entity.projectile.ThrowableProjectile; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(ThrowableProjectile.class) +public abstract class ThrowableProjectileMovementTimeDilationMixin { + @Redirect(method = "tick", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/projectile/ThrowableProjectile;setPos(DDD)V")) + private void antarchy$slowPosition(ThrowableProjectile projectile, double x, double y, double z) { + double rate = Math.max(TimeDilationMath.MIN_RATE, TimeDilationApi.getRate(projectile)); + if (rate >= TimeDilationMath.NORMAL_RATE) { + projectile.setPos(x, y, z); + return; + } + projectile.setPos(projectile.getX() + (x - projectile.getX()) * rate, + projectile.getY() + (y - projectile.getY()) * rate, + projectile.getZ() + (z - projectile.getZ()) * rate); + } +} diff --git a/common-1.20.1/src/main/java/software/bernie/geckolib/animatable/client/GeoRenderProvider.java b/common-1.20.1/src/main/java/software/bernie/geckolib/animatable/client/GeoRenderProvider.java new file mode 100644 index 00000000..fa4a6881 --- /dev/null +++ b/common-1.20.1/src/main/java/software/bernie/geckolib/animatable/client/GeoRenderProvider.java @@ -0,0 +1,8 @@ +package software.bernie.geckolib.animatable.client; + +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; + +/** Compatibility shim for item render-provider hooks used by the 1.21 source. */ +public abstract class GeoRenderProvider { + public abstract BlockEntityWithoutLevelRenderer getGeoItemRenderer(); +} diff --git a/common-1.20.1/src/main/resources/antarchy-common.mixins.json b/common-1.20.1/src/main/resources/antarchy-common.mixins.json index 9a7f5900..26a8a9b3 100644 --- a/common-1.20.1/src/main/resources/antarchy-common.mixins.json +++ b/common-1.20.1/src/main/resources/antarchy-common.mixins.json @@ -26,6 +26,7 @@ "GlowSquidLumenSpawnMixin", "GlowVinesUnderLeavesMixin", "GrindstoneMenuMixin", + "KingsTreeLocateCommandMixin", "MantisClawWallClimbMixin", "MilkBucketSizeResetMixin", "MinecartItemMixin", @@ -79,6 +80,7 @@ "time.CreeperTimeDilationMixin", "time.EndCrystalTimeDilationMixin", "time.LivingEntityTimeDilationMixin", + "time.EntityCrouchTimeDilationMixin", "time.LivingEntityTimeDilationCleanupMixin", "time.LivingEntityAttackCooldownTimeDilationMixin", "time.LookControlTimeDilationMixin", @@ -89,6 +91,7 @@ "time.ThrowableProjectileMovementTimeDilationMixin", "time.HurtingProjectileMovementTimeDilationMixin", "time.ProjectileTimeDilationMixin", + "time.GeckoLibAnimationControllerTimeDilationMixin", "time.AbstractArrowActionTimeDilationMixin", "time.RangedAttackGoalTimeDilationMixin", "time.RangedBowAttackGoalTimeDilationMixin" @@ -104,6 +107,7 @@ "time.ParticlePositionAccessor" ], "client": [ + "client.EntityBoundSoundInstanceAccessor", "client.AbstractMinecartRendererMixin", "client.EntityLightProbeMixin", "client.CustomBossBarMixin", diff --git a/common-1.20.1/src/main/resources/assets/antarchy/animations/black_hole.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/black_hole.animation.json new file mode 100644 index 00000000..93a78a4e --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/black_hole.animation.json @@ -0,0 +1,381 @@ +{ + "format_version": "1.8.0", + "animations": { + "animation": { + "loop": true, + "animation_length": 20.125, + "bones": { + "black_hole": { + "position": { + "0.0": { + "vector": [0, -100, 0] + }, + "19.125": { + "vector": [0, 505, 0] + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "19.125": { + "vector": [10, 10, 10] + }, + "19.25": { + "vector": [0, 0, 0] + } + } + }, + "blocks": { + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [-141, 71, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.375": { + "post": { + "vector": [-141, 104, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "2.4583": { + "vector": [0, 0, 0] + } + } + }, + "blocks2": { + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [116, 72, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.375": { + "post": { + "vector": [116, 124, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "2.4583": { + "vector": [0, 0, 0] + } + } + }, + "blocks3": { + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [-69, 96, -164] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "2.4583": { + "vector": [0, 0, 0] + } + } + }, + "blocks4": { + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [35, 96, 135] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "2.4583": { + "vector": [0, 0, 0] + } + } + }, + "blocks5": { + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.375": { + "post": { + "vector": [113, 118, -188] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "2.4583": { + "vector": [0, 0, 0] + } + } + }, + "blocks6": { + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [-114, 64, 112] + }, + "lerp_mode": "catmullrom" + }, + "1.2083": { + "post": { + "vector": [-146, 81, 162] + }, + "lerp_mode": "catmullrom" + }, + "1.9583": { + "post": { + "vector": [-146, 94, 162] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "2.4583": { + "vector": [0, 0, 0] + } + } + }, + "blocks7": { + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.9583": { + "post": { + "vector": [187, 123, 137] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "2.4583": { + "vector": [0, 0, 0] + } + } + }, + "blocks8": { + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.375": { + "post": { + "vector": [236, 124, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "2.4583": { + "vector": [0, 0, 0] + } + } + }, + "blocks9": { + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.9583": { + "post": { + "vector": [-239, 106, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "2.4583": { + "vector": [0, 0, 0] + } + } + }, + "blocks10": { + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-10, 65, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.375": { + "post": { + "vector": [-10, 119, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "2.4583": { + "vector": [0, 0, 0] + } + } + }, + "blocks11": { + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.375": { + "post": { + "vector": [-223, 106, -145] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "2.4583": { + "vector": [0, 0, 0] + } + } + }, + "beam": { + "scale": { + "0.0": { + "post": { + "vector": [0.2, 0.5, 0.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-0.2, 3.6, 0.1] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [-0.1, 3.6, 0.1] + }, + "lerp_mode": "catmullrom" + }, + "13.0833": { + "post": { + "vector": [0.4, 122.1, -0.4] + }, + "lerp_mode": "catmullrom" + } + } + }, + "group": { + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "18.9167": { + "vector": [0, 0, 0] + }, + "19.125": { + "vector": [0, 445, 0] + } + }, + "scale": { + "0.0": { + "vector": [0, 0, 0] + }, + "18.9167": { + "vector": [0, 0, 0] + }, + "19.5833": { + "vector": [83.7, 1, 0] + }, + "20.125": { + "vector": [0, 0, 0] + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/animations/eye_of_the_storm.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/eye_of_the_storm.animation.json new file mode 100644 index 00000000..46e58d5c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/eye_of_the_storm.animation.json @@ -0,0 +1,45 @@ +{ + "format_version": "1.8.0", + "animations": { + "spinning_idle": { + "loop": true, + "animation_length": 1, + "bones": { + "top_ring": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "1.0": { + "vector": [0, -360, 0] + } + } + }, + "eye": { + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "0.5": { + "vector": [1.02, 1.02, 1.02], + "easing": "easeInOutQuad" + }, + "1.0": { + "vector": [1, 1, 1] + } + } + }, + "bottom_ring": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "1.0": { + "vector": [0, 360, 0] + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/animations/fire_ball.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/fire_ball.animation.json new file mode 100644 index 00000000..2d171838 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/fire_ball.animation.json @@ -0,0 +1,33 @@ +{ + "format_version": "1.8.0", + "animations": { + "idle": { + "loop": true, + "animation_length": 0.25, + "bones": { + "fireball": { + "scale": { + "0.0": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [1, 1, 1.2] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/animations/hoverboard.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/hoverboard.animation.json new file mode 100644 index 00000000..0bf85f4c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/hoverboard.animation.json @@ -0,0 +1,361 @@ +{ + "format_version": "1.8.0", + "animations": { + "idle": { + "loop": true, + "animation_length": 1, + "bones": { + "hoverboard": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, -9.85] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 0, 7.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 2, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 3, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 2, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "disk_front": { + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0.35282, -2.97918, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "disk_back": { + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-0.00833, -1.99998, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "motor_right": { + "scale": { + "0.0": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [1.1, 1, 1.1] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [1.1, 1, 1.1] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "motor_left": { + "scale": { + "0.0": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [1.1, 1, 1.1] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [1.1, 1, 1.1] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "move": { + "loop": true, + "animation_length": 1, + "bones": { + "hoverboard": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, -9.85] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 0, 7.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 2, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 3.16, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 2.2, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 4, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 2.28, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 2.94, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 2, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "disk_front": { + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0.35282, -2.97918, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "disk_back": { + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-0.00833, -1.99998, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "motor_right": { + "scale": { + "0.0": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [1.1, 1, 1.4] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [1.1, 1, 1.4] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "motor_left": { + "scale": { + "0.0": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [1.1, 1, 1.4] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [1.1, 1, 1.4] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/animations/ice_ball.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/ice_ball.animation.json new file mode 100644 index 00000000..01453f7a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/ice_ball.animation.json @@ -0,0 +1,56 @@ +{ + "format_version": "1.8.0", + "animations": { + "animation": { + "loop": true, + "animation_length": 0.5, + "bones": { + "ice_ball": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.25": { + "vector": [180, 0, 52.5] + }, + "0.5": { + "vector": [360, 0, 0] + } + }, + "scale": { + "0.0": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [1, 1.1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [1, 1.1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/animations/ice_spike.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/ice_spike.animation.json new file mode 100644 index 00000000..87bfd1db --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/ice_spike.animation.json @@ -0,0 +1,363 @@ +{ + "format_version": "1.8.0", + "animations": { + "animation": { + "animation_length": 5.0833, + "bones": { + "ice_spike": { + "position": { + "0.0": { + "vector": [0, -80, 0] + }, + "0.0417": { + "vector": [-6, -66.67, 0] + }, + "0.0833": { + "vector": [0, -53.34, 0] + }, + "0.125": { + "vector": [-5, -40.01, 0] + }, + "0.1667": { + "vector": [-0.33, -26.67, 0] + }, + "0.25": { + "vector": [0, 0, 0] + }, + "0.8333": { + "vector": [0, 0, 0] + }, + "1.0": { + "vector": [0, -47, 0] + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "0.2083": { + "vector": [1, 1, 1] + }, + "0.25": { + "vector": [0, 0, 0] + }, + "0.3333": { + "vector": [1, 1, 1] + }, + "0.8333": { + "vector": [1, 1, 1] + }, + "1.0": { + "vector": [1, 0, 1] + } + } + }, + "ice_spike_impact": { + "scale": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": [0, 0, 0], + "0.2083": { + "vector": [0, 0, 0] + }, + "0.25": { + "vector": [1, 1, 1] + }, + "0.2917": { + "vector": [1, 1.3, 1] + }, + "0.3333": { + "vector": [0, 0, 0] + } + } + }, + "sparkle": { + "scale": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2917": { + "vector": [0, 0, 0] + }, + "0.4583": { + "vector": [1.2, 2.5, 1] + }, + "0.625": { + "vector": [0, 1, 1] + } + } + }, + "ice_spike_impact2": { + "scale": { + "1.0": { + "vector": [0, 0, 0] + }, + "1.0417": [0, 0, 0], + "1.2083": { + "vector": [0, 0, 0] + }, + "1.25": { + "vector": [1, 1, 1] + }, + "1.2917": { + "vector": [1, 1.3, 1] + }, + "1.3333": { + "vector": [0, 0, 0] + } + } + }, + "ice_spike2": { + "position": { + "1.0": { + "vector": [0, -80, 0] + }, + "1.0417": { + "vector": [-6, -66.67, 0] + }, + "1.0833": { + "vector": [0, -53.34, 0] + }, + "1.125": { + "vector": [-5, -40.01, 0] + }, + "1.1667": { + "vector": [-0.33, -26.67, 0] + }, + "1.25": { + "vector": [0, 0, 0] + }, + "1.8333": { + "vector": [0, 0, 0] + }, + "2.0": { + "vector": [0, -47, 0] + } + }, + "scale": { + "1.0": { + "vector": [1, 1, 1] + }, + "1.2083": { + "vector": [1, 1, 1] + }, + "1.25": { + "vector": [0, 0, 0] + }, + "1.3333": { + "vector": [1, 1, 1] + }, + "1.8333": { + "vector": [1, 1, 1] + }, + "2.0": { + "vector": [1, 0, 1] + } + } + }, + "sparkle2": { + "scale": { + "1.0": { + "vector": [0, 0, 0] + }, + "1.2917": { + "vector": [0, 0, 0] + }, + "1.4583": { + "vector": [1.2, 2.5, 1] + }, + "1.625": { + "vector": [0, 1, 1] + } + } + }, + "ice_spike_impact3": { + "scale": { + "2.0": { + "vector": [0, 0, 0] + }, + "2.0417": [0, 0, 0], + "2.2083": { + "vector": [0, 0, 0] + }, + "2.25": { + "vector": [1, 1, 1] + }, + "2.2917": { + "vector": [1, 1.3, 1] + }, + "2.3333": { + "vector": [0, 0, 0] + } + } + }, + "ice_spike3": { + "position": { + "2.0": { + "vector": [0, -80, 0] + }, + "2.0417": { + "vector": [-6, -66.67, 0] + }, + "2.0833": { + "vector": [0, -53.34, 0] + }, + "2.125": { + "vector": [-5, -40.01, 0] + }, + "2.1667": { + "vector": [-0.33, -26.67, 0] + }, + "2.25": { + "vector": [0, 0, 0] + }, + "2.8333": { + "vector": [0, 0, 0] + }, + "3.0": { + "vector": [0, -47, 0] + } + }, + "scale": { + "2.0": { + "vector": [1, 1, 1] + }, + "2.2083": { + "vector": [1, 1, 1] + }, + "2.25": { + "vector": [0, 0, 0] + }, + "2.3333": { + "vector": [1, 1, 1] + }, + "2.8333": { + "vector": [1, 1, 1] + }, + "3.0": { + "vector": [1, 0, 1] + } + } + }, + "sparkle3": { + "scale": { + "2.0": { + "vector": [0, 0, 0] + }, + "2.2917": { + "vector": [0, 0, 0] + }, + "2.4583": { + "vector": [1.2, 2.5, 1] + }, + "2.625": { + "vector": [0, 1, 1] + } + } + }, + "ice_spike_impact4": { + "scale": { + "3.0": { + "vector": [0, 0, 0] + }, + "3.0417": [0, 0, 0], + "3.2083": { + "vector": [0, 0, 0] + }, + "3.25": { + "vector": [1, 1, 1] + }, + "3.2917": { + "vector": [1, 1.3, 1] + }, + "3.3333": { + "vector": [0, 0, 0] + } + } + }, + "ice_spike4": { + "position": { + "3.0": { + "vector": [0, -80, 0] + }, + "3.0417": { + "vector": [-6, -66.67, 0] + }, + "3.0833": { + "vector": [0, -53.34, 0] + }, + "3.125": { + "vector": [-5, -40.01, 0] + }, + "3.1667": { + "vector": [-0.33, -26.67, 0] + }, + "3.25": { + "vector": [0, 0, 0] + }, + "3.8333": { + "vector": [0, 0, 0] + }, + "4.0": { + "vector": [0, -47, 0] + } + }, + "scale": { + "3.0": { + "vector": [1, 1, 1] + }, + "3.2083": { + "vector": [1, 1, 1] + }, + "3.25": { + "vector": [0, 0, 0] + }, + "3.3333": { + "vector": [1, 1, 1] + }, + "3.8333": { + "vector": [1, 1, 1] + }, + "4.0": { + "vector": [1, 0, 1] + } + } + }, + "sparkle4": { + "scale": { + "3.0": { + "vector": [0, 0, 0] + }, + "3.2917": { + "vector": [0, 0, 0] + }, + "3.4583": { + "vector": [1.2, 2.5, 1] + }, + "3.625": { + "vector": [0, 1, 1] + } + } + } + }, + "particle_effects": { + "0.0": { + "effect": "particles" + }, + "1.0": { + "effect": "particles", + "locator": "spike_2" + }, + "2.0": { + "effect": "particles", + "locator": "spike_3" + }, + "3.0": { + "effect": "particles", + "locator": "spike_4" + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/animations/king.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/king.animation.json new file mode 100644 index 00000000..a7e4df14 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/king.animation.json @@ -0,0 +1,8495 @@ +{ + "format_version": "1.8.0", + "animations": { + "idle": { + "loop": true, + "animation_length": 4, + "bones": { + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck4": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.7917": { + "post": { + "vector": [-0.43415, 0.39727, 19.83342] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.875": { + "post": { + "vector": [23.02, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tongue": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7917": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.7917": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_toungue": { + "rotation": { + "vector": [-12.5, 0, 0] + } + }, + "L_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_tongue": { + "rotation": { + "vector": [-12.5, 0, 0] + } + }, + "L_tight": { + "rotation": { + "0.0": { + "post": { + "vector": [17.5, 10, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [17.5, 10, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_tight": { + "rotation": { + "0.0": { + "post": { + "vector": [17.5, -10, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [17.5, -10, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Torso": { + "rotation": { + "0.0": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.9583": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2083": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail4": { + "rotation": { + "0.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.9583": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "body": { + "position": { + "0.0": { + "post": { + "vector": [0, 7, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 7, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 65] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 10, 50] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 65] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -102.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -80] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -102.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 80] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 65] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 80] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -65] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -10, -50] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -65] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 102.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 80] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 102.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -80] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -65] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -80] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 12, 17] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 12, 17] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -75] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -75] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing6": { + "rotation": { + "0.0": { + "post": { + "vector": [-3.00647, 5.62071, 143.54526] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-3.00647, 5.62071, 143.54526] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 12, 12] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 12, 12] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 75] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 75] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing6": { + "rotation": { + "0.0": { + "post": { + "vector": [-3.00647, -5.62071, -143.54526] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-3.00647, -5.62071, -143.54526] + }, + "lerp_mode": "catmullrom" + } + } + }, + "hair": { + "rotation": { + "0.0": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "hair2": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "hair3": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5417": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "hair4": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0833": { + "post": { + "vector": [8.75, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "r_hair": { + "rotation": { + "0.0": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "r_hair2": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "r_hair3": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5417": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "r_hair4": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0833": { + "post": { + "vector": [8.75, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "l_hair": { + "rotation": { + "0.0": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "l_hair2": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "l_hair3": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5417": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "l_hair4": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0833": { + "post": { + "vector": [8.75, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_mustache": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -50] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -60] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -50] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_mustache2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -17.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -17.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_mustache3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_mustache4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_mustache": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 50] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 60] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 50] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_mustache2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 17.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_mustache3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_mustache4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -17.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "King": { + "position": { + "vector": [0, -15, 0] + } + }, + "R_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [35.20482, 34.48554, 21.38796] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [35.20482, 34.48554, 21.38796] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [35.20482, 34.48554, 21.38796] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [-15.34721, -12.06754, 3.28396] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-25.34721, -12.06754, 3.28396] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-15.34721, -12.06754, 3.28396] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_head": { + "rotation": { + "0.0": { + "post": { + "vector": [5.12076, -12.45167, -1.10693] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [-0.68188, -12.79354, 16.81445] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-7.37924, -12.45167, -1.10693] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-3.97018, -13.02421, -10.40698] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [5.12076, -12.45167, -1.10693] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [35.20482, -34.48554, -21.38796] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [35.20482, -34.48554, -21.38796] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [35.20482, -34.48554, -21.38796] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [-15.34721, 12.06754, -3.28396] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-25.34721, 12.06754, -3.28396] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-15.34721, 12.06754, -3.28396] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_head": { + "rotation": { + "0.0": { + "post": { + "vector": [5.12076, 12.45167, 1.10693] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-7.37924, 12.45167, 1.10693] + }, + "lerp_mode": "catmullrom" + }, + "2.4167": { + "post": { + "vector": [-8.97738, 10.17252, -16.57798] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [5.12076, 12.45167, 1.10693] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "walk": { + "loop": true, + "animation_length": 2, + "bones": { + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck4": { + "rotation": { + "vector": [-15, 0, 0] + } + }, + "head": { + "rotation": { + "vector": [15, 0, 0] + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [7.87, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [22.36, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [25.07, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [7.87, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_tight": { + "rotation": { + "0.0": { + "vector": [27.5, 0, 0] + }, + "0.375": { + "pre": { + "vector": [17.81, 0, 0] + }, + "post": { + "vector": [17.81, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-29.06, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [-45, 0, 0] + }, + "2.0": { + "vector": [27.5, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, -18, 12] + }, + "0.25": { + "pre": { + "vector": [0, -8.65, 7.96] + }, + "post": { + "vector": [0, -8.65, 7.96] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0.69, 3.64] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 2.51, -5.22] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [0, -6.5, -7] + }, + "1.125": { + "vector": [0, -1.81, -4.12] + }, + "1.25": { + "vector": [0, 1.38, -1.25] + }, + "1.375": { + "vector": [0, 2.9, 1.63] + }, + "1.5": { + "vector": [0, 2.42, 3.5] + }, + "1.625": { + "vector": [0, -0.06, 5.38] + }, + "1.75": { + "vector": [0, -4.54, 7.25] + }, + "1.875": { + "vector": [0, -10.77, 10.13] + }, + "2.0": { + "vector": [0, -18, 12] + } + } + }, + "R_leg": { + "rotation": { + "0.0": { + "vector": [5, 0, 0] + }, + "0.5": { + "pre": { + "vector": [-36.25, 0, 0] + }, + "post": { + "vector": [-36.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [-17.5, 0, 0] + }, + "2.0": { + "vector": [5, 0, 0] + } + } + }, + "R_foot": { + "rotation": { + "0.0": { + "vector": [-32.5, 0, 0] + }, + "0.5417": { + "pre": { + "vector": [57.92, 0, 0] + }, + "post": { + "vector": [57.92, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [59.28, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [62.5, 0, 0] + }, + "2.0": { + "vector": [-32.5, 0, 0] + } + } + }, + "L_tight": { + "rotation": { + "0.0": { + "vector": [-45, 0, 0] + }, + "1.0": { + "vector": [27.5, 0, 0] + }, + "1.375": { + "pre": { + "vector": [17.81, 0, 0] + }, + "post": { + "vector": [17.81, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7917": { + "post": { + "vector": [-29.06, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [-45, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, -6.5, -7] + }, + "0.125": { + "vector": [0, -1.81, -4.12] + }, + "0.25": { + "vector": [0, 1.38, -1.25] + }, + "0.375": { + "vector": [0, 2.9, 1.63] + }, + "0.5": { + "vector": [0, 2.42, 3.5] + }, + "0.625": { + "vector": [0, -0.06, 5.38] + }, + "0.75": { + "vector": [0, -4.54, 7.25] + }, + "0.875": { + "vector": [0, -10.77, 10.13] + }, + "1.0": { + "vector": [0, -18, 12] + }, + "1.25": { + "pre": { + "vector": [0, -8.65, 7.96] + }, + "post": { + "vector": [0, -8.65, 7.96] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [0, 0.69, 3.64] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [0, 2.51, -5.22] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [0, -6.5, -7] + } + } + }, + "L_leg": { + "rotation": { + "0.0": { + "vector": [-17.5, 0, 0] + }, + "1.0": { + "vector": [5, 0, 0] + }, + "1.5": { + "pre": { + "vector": [-36.25, 0, 0] + }, + "post": { + "vector": [-36.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [-17.5, 0, 0] + } + } + }, + "L_foot": { + "rotation": { + "0.0": { + "vector": [62.5, 0, 0] + }, + "1.0": { + "vector": [-32.5, 0, 0] + }, + "1.5417": { + "pre": { + "vector": [57.92, 0, 0] + }, + "post": { + "vector": [57.92, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [59.28, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [62.5, 0, 0] + } + } + }, + "Torso": { + "rotation": { + "0.0": { + "post": { + "vector": [3.72, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [5.16, 2.46, 1.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [7.5, 1, 4.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [5.64, -0.56, 4.63] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [3.52, -2, 2] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [3.72, -2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [5.16, -2.46, -1.5] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [7.5, -1, -4.5] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [5.64, 0.56, -4.63] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [3.52, 2, -2] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [3.72, 2.5, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1.77, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "vector": [0, -4.03, 0] + }, + "0.125": { + "vector": [0, 1.5, 0] + }, + "0.25": { + "pre": { + "vector": [0, -1.42, 0] + }, + "post": { + "vector": [0, -1.42, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [0, 0, 0] + }, + "1.0833": { + "vector": [0, -4.03, 0] + }, + "1.125": { + "vector": [0, 1.5, 0] + }, + "1.25": { + "pre": { + "vector": [0, -1.42, 0] + }, + "post": { + "vector": [0, -1.42, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7917": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -1.77, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail": { + "rotation": { + "0.0": { + "post": { + "vector": [-15, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-15, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-15, 15, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 1.25, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 1.25, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -1.39, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 12.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [0, -12.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -1.39, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -11.67, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 17.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, -17.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -11.67, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0.33008, 0.9171, 59.96473] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 52.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 47.5] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 52.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0.33008, 0.9171, 59.96473] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing2": { + "rotation": { + "vector": [0, -7.5, -90] + } + }, + "R_wing3": { + "rotation": { + "vector": [0, 22.5, 0] + } + }, + "L_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0.33008, -0.9171, -59.96473] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -52.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -47.5] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, -52.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0.33008, -0.9171, -59.96473] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing2": { + "rotation": { + "vector": [0, 7.5, 90] + } + }, + "L_wing3": { + "rotation": { + "vector": [0, -22.5, 0] + } + }, + "R_wing4": { + "rotation": { + "0.0": { + "vector": [7.5, -11.5, -11.5] + }, + "1.0": { + "vector": [15, 21, -31.5] + }, + "1.3333": { + "pre": { + "vector": [20.56, 17.57, -8.81] + }, + "post": { + "vector": [20.56, 17.57, -8.81] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [5.39, -13.6, -1.38] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [7.5, -11.5, -11.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing5": { + "rotation": { + "0.0": { + "vector": [-12.5, 5, -42.5] + }, + "0.5": { + "vector": [-18.75, 2.5, -21.25] + }, + "1.0": { + "vector": [-25, -5, -7.5] + }, + "1.3333": { + "pre": { + "vector": [-8.24, 11.3, -42.13] + }, + "post": { + "vector": [-8.24, 11.3, -42.13] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [-14.51, 5.99, -45.71] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-12.5, 5, -42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing6": { + "rotation": { + "0.0": { + "vector": [0, 17.5, 105] + }, + "1.0": { + "vector": [0, 30, 75] + }, + "1.4167": { + "pre": { + "vector": [0, 22.43, 48.67] + }, + "post": { + "vector": [0, 22.43, 48.67] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 17.5, 105] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing4": { + "rotation": { + "0.0": { + "vector": [15, -21, 31.5] + }, + "0.3333": { + "pre": { + "vector": [20.56, -17.57, 8.81] + }, + "post": { + "vector": [20.56, -17.57, 8.81] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [5.39, 13.6, 1.38] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [7.5, 11.5, 11.5] + }, + "2.0": { + "vector": [15, -21, 31.5] + } + } + }, + "L_wing5": { + "rotation": { + "0.0": { + "vector": [-25, 5, 7.5] + }, + "0.3333": { + "pre": { + "vector": [-8.24, -11.3, 42.13] + }, + "post": { + "vector": [-8.24, -11.3, 42.13] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [-14.51, -5.99, 45.71] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [-12.5, -5, 42.5] + }, + "1.5": { + "vector": [-18.75, -2.5, 21.25] + }, + "2.0": { + "vector": [-25, 5, 7.5] + } + } + }, + "L_wing6": { + "rotation": { + "0.0": { + "vector": [0, -30, -75] + }, + "0.4167": { + "pre": { + "vector": [0, -22.43, -48.67] + }, + "post": { + "vector": [0, -22.43, -48.67] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [0, -17.5, -105] + }, + "2.0": { + "vector": [0, -30, -75] + } + } + }, + "R_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [12.44278, 9.97871, -0.65545] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [12.44278, 9.97871, -0.65545] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [12.44278, 9.97871, -0.65545] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [12.44278, 9.97871, -0.65545] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [12.44278, 9.97871, -0.65545] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [-15.65754, 10.05617, -7.46305] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-15.65754, 10.05617, -7.46305] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-15.65754, 10.05617, -7.46305] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-15.65754, 10.05617, -7.46305] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-15.65754, 10.05617, -7.46305] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [-15.01063, 7.49826, -0.16223] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-15.01063, 7.49826, -0.16223] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-15.01063, 7.49826, -0.16223] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-15.01063, 7.49826, -0.16223] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-15.01063, 7.49826, -0.16223] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_head": { + "rotation": { + "0.0": { + "post": { + "vector": [15.32111, -12.13531, -3.02012] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [15.32111, -12.13531, -3.02012] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15.32111, -12.13531, -3.02012] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [15.32111, -12.13531, -3.02012] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [15.32111, -12.13531, -3.02012] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [7.87, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [22.36, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [25.07, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [7.87, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [12.44278, -9.97871, 0.65545] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [12.44278, -9.97871, 0.65545] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [12.44278, -9.97871, 0.65545] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [12.44278, -9.97871, 0.65545] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [12.44278, -9.97871, 0.65545] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [-15.65754, -10.05617, 7.46305] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-15.65754, -10.05617, 7.46305] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-15.65754, -10.05617, 7.46305] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-15.65754, -10.05617, 7.46305] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-15.65754, -10.05617, 7.46305] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [-15.01063, -7.49826, 0.16223] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-15.01063, -7.49826, 0.16223] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-15.01063, -7.49826, 0.16223] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-15.01063, -7.49826, 0.16223] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-15.01063, -7.49826, 0.16223] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_head": { + "rotation": { + "0.0": { + "post": { + "vector": [15.32111, 12.13531, 3.02012] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [15.32111, 12.13531, 3.02012] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15.32111, 12.13531, 3.02012] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [15.32111, 12.13531, 3.02012] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [15.32111, 12.13531, 3.02012] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [7.87, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [22.36, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [25.07, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [7.87, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "fly": { + "loop": true, + "animation_length": 2, + "bones": { + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [21.4, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_tight": { + "rotation": { + "vector": [72.5, 0, 0] + } + }, + "R_leg": { + "rotation": { + "vector": [-25, 0, 0] + } + }, + "R_foot": { + "rotation": { + "vector": [67.5, 0, 0] + } + }, + "L_tight": { + "rotation": { + "vector": [72.5, 0, 0] + } + }, + "L_leg": { + "rotation": { + "vector": [-25, 0, 0] + } + }, + "L_foot": { + "rotation": { + "vector": [67.5, 0, 0] + } + }, + "Tail": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [1.88, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [1.88, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [1.67, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [1.67, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "body": { + "rotation": { + "0.0": { + "post": { + "vector": [0.63, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0.63, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 30, 15] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 61.08, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 67, -7] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 46.93, 5.44] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 30, 15] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [-16.18, -8.69, 48.09] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-20, -20, 7.5] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [5, -20, -50] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [26.13, -5.83, -55.07] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [30, 16.14, -12.5] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [0, 15, 50] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-16.18, -8.69, 48.09] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 17.35] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 29.94] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 0, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, -60] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, 7.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 17.35] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 9.75] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [0, 0, -7.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 9.75] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [-16.18, 8.69, -48.09] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-20, 20, -7.5] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [5, 20, 50] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [26.13, 5.83, 55.07] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [30, -16.14, 12.5] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [0, -15, -50] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-16.18, 8.69, -48.09] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -17.35] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, -29.94] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 0, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, 60] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, -7.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -17.35] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -9.75] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [0, 0, 7.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -9.75] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing4": { + "rotation": { + "0.0": { + "post": { + "vector": [-20, -20, -7.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [5, -20, -65] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [26.13, -5.83, -70.07] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [30, 16.14, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [0, 15, 35] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [-16.18, -8.69, 33.09] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-20, -20, -7.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, 29.94] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "1.2083": { + "post": { + "vector": [0, 0, -60] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [0, 0, 7.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing6": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing4": { + "rotation": { + "0.0": { + "post": { + "vector": [-20, 20, 7.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [5, 20, 65] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [26.13, 5.83, 70.07] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [30, -16.14, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [0, -15, -35] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [-16.18, 8.69, -33.09] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-20, 20, 7.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, -29.94] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "1.2083": { + "post": { + "vector": [0, 0, 60] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [0, 0, -7.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing6": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.0519, 22.49857, -0.26095] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-5.41193, 22.40868, -2.07936] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [2.68845, 22.48105, 0.94821] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-0.0519, 22.49857, -0.26095] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [21.4, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.0519, -22.49857, 0.26095] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-5.41193, -22.40868, 2.07936] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [2.68845, -22.48105, -0.94821] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-0.0519, -22.49857, 0.26095] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [21.4, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "wing_gust": { + "animation_length": 2.75, + "bones": { + "neck": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "pre": { + "vector": [0.77, 0, 0] + }, + "post": { + "vector": [0.77, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.3333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [0, 0, 0] + } + } + }, + "neck4": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.7917": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "vector": [0, 0, 0] + } + } + }, + "jaw": { + "rotation": { + "0.8333": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_jaw": { + "rotation": { + "0.8333": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_jaw": { + "rotation": { + "0.8333": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Torso": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2083": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [-35.12, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [-47.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [-52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [-57.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [-52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.1667": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "vector": [0, 0, 0] + } + } + }, + "R_wing": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "vector": [0, 0, 0] + }, + "0.3333": { + "pre": { + "vector": [0, 0, -55] + }, + "post": { + "vector": [0, 0, -55] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, -40] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 7.5] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, -7.5, -87.5] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [0, -20, -115] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, -25, -125] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [0, -20, -115] + }, + "lerp_mode": "catmullrom" + }, + "2.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5417": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.7917": { + "vector": [0, 0, 0] + }, + "1.0": { + "pre": { + "vector": [0, 14, 0] + }, + "post": { + "vector": [0, 14, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 14, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "vector": [0, 0, 0] + } + } + }, + "R_wing2": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "pre": { + "vector": [0, 0, 70] + }, + "post": { + "vector": [0, 0, 70] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 90] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, 62.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 0, 110] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, 145] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 47.34] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [0, 0, 35] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, 35] + }, + "lerp_mode": "catmullrom" + }, + "2.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.4167": { + "vector": [0, 0, 0] + } + } + }, + "R_wing3": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [0, 0, -157.5] + }, + "post": { + "vector": [0, 0, -157.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, -100] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, -70] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, -130] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 0, -113.66] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, -55] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 5.71] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, -26.1] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, -120] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, -147.5] + }, + "lerp_mode": "catmullrom" + }, + "2.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5417": { + "vector": [0, 0, 0] + } + } + }, + "L_wing": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "vector": [0, 0, 0] + }, + "0.3333": { + "pre": { + "vector": [0, 0, 55] + }, + "post": { + "vector": [0, 0, 55] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, 40] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, -7.5] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 7.5, 87.5] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [0, 20, 115] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 25, 125] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [0, 20, 115] + }, + "lerp_mode": "catmullrom" + }, + "2.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5417": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.7917": { + "vector": [0, 0, 0] + }, + "1.0": { + "pre": { + "vector": [0, 14, 0] + }, + "post": { + "vector": [0, 14, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 14, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "vector": [0, 0, 0] + } + } + }, + "L_wing2": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "pre": { + "vector": [0, 0, -70] + }, + "post": { + "vector": [0, 0, -70] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, -90] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, -62.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 0, -110] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, -145] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, -47.34] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [0, 0, -35] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, -35] + }, + "lerp_mode": "catmullrom" + }, + "2.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.4167": { + "vector": [0, 0, 0] + } + } + }, + "L_wing3": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [0, 0, 157.5] + }, + "post": { + "vector": [0, 0, 157.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 100] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 70] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 130] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 0, 113.66] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 55] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -5.71] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 26.1] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, 120] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, 147.5] + }, + "lerp_mode": "catmullrom" + }, + "2.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5417": { + "vector": [0, 0, 0] + } + } + }, + "R_wing4": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2917": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 45, 80] + }, + "lerp_mode": "catmullrom" + }, + "1.7917": { + "post": { + "vector": [0, 45, 80] + }, + "lerp_mode": "catmullrom" + }, + "2.2917": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 22, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 22, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 27, 14] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [0, 31, 17] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [0, 31, 17] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [0, 27, 14] + }, + "lerp_mode": "catmullrom" + }, + "2.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing5": { + "rotation": { + "0.3333": { + "vector": [0, 0, 0] + }, + "0.5833": { + "pre": { + "vector": [0, 0, -97.5] + }, + "post": { + "vector": [0, 0, -97.5] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, -97.5] + }, + "lerp_mode": "catmullrom" + }, + "2.2917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [0, 0, 0] + } + } + }, + "R_wing6": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.375": { + "vector": [0, 0, 0] + }, + "0.5833": { + "pre": { + "vector": [0, 0, 27.5] + }, + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "2.3333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [0, 0, 0] + } + }, + "position": { + "vector": [0, 0, 0] + } + }, + "L_wing4": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2917": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -45, -80] + }, + "lerp_mode": "catmullrom" + }, + "1.7917": { + "post": { + "vector": [0, -45, -80] + }, + "lerp_mode": "catmullrom" + }, + "2.2917": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 22, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 22, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 27, 14] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [0, 31, 17] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [0, 31, 17] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [0, 27, 14] + }, + "lerp_mode": "catmullrom" + }, + "2.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing5": { + "rotation": { + "0.3333": { + "vector": [0, 0, 0] + }, + "0.5833": { + "pre": { + "vector": [0, 0, 97.5] + }, + "post": { + "vector": [0, 0, 97.5] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, 97.5] + }, + "lerp_mode": "catmullrom" + }, + "2.2917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [0, 0, 0] + } + } + }, + "L_wing6": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.375": { + "vector": [0, 0, 0] + }, + "0.5833": { + "pre": { + "vector": [0, 0, -27.5] + }, + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "2.3333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [0, 0, 0] + } + }, + "position": { + "vector": [0, 0, 0] + } + }, + "R_neck": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "pre": { + "vector": [0.77, 0, 0] + }, + "post": { + "vector": [0.77, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.3333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [0, 0, 0] + } + } + }, + "R_neck3": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.7917": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "vector": [0, 0, 0] + } + } + }, + "L_neck": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "pre": { + "vector": [0.77, 0, 0] + }, + "post": { + "vector": [0.77, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.3333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [0, 0, 0] + } + } + }, + "L_neck3": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.7917": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "vector": [0, 0, 0] + } + } + } + } + }, + "stomp": { + "animation_length": 1.25, + "bones": { + "R_wing4": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.125": { + "pre": { + "vector": [0, 0, 22.5] + }, + "post": { + "vector": [0, 0, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, -12.5, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, -12.5, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [0, 12, 0] + }, + "post": { + "vector": [0, 12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 21, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, -12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 8, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, -6, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "vector": [0, 0, 0] + } + } + }, + "L_wing4": { + "rotation": { + "0.5": { + "vector": [0, 0, 0] + }, + "0.625": { + "pre": { + "vector": [0, 0, -22.5] + }, + "post": { + "vector": [0, 0, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 12.5, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 12.5, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.5": { + "vector": [0, 0, 0] + }, + "0.5833": { + "pre": { + "vector": [0, 12, 0] + }, + "post": { + "vector": [0, 12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 21, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, -12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 8, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, -6, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "vector": [0, 0, 0] + } + } + }, + "body": { + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.125": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "vector": [0, 0, 0] + }, + "0.2917": { + "vector": [0, -12, 0] + }, + "0.3333": { + "vector": [0, 9, 0] + }, + "0.375": { + "vector": [0, -6, 0] + }, + "0.4583": { + "vector": [0, 4, 0] + }, + "0.5417": { + "pre": { + "vector": [0, -3, 0] + }, + "post": { + "vector": [0, -3, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "vector": [0, 0, 0] + }, + "0.7917": { + "vector": [0, -12, 0] + }, + "0.8333": { + "vector": [0, 9, 0] + }, + "0.875": { + "vector": [0, -6, 0] + }, + "0.9583": { + "vector": [0, 4, 0] + }, + "1.0417": { + "pre": { + "vector": [0, -3, 0] + }, + "post": { + "vector": [0, -3, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "vector": [0, 0, 0] + }, + "1.25": { + "vector": [0, 0, 0] + } + } + } + } + }, + "minion_spawn": { + "animation_length": 2.9167, + "bones": { + "neck": { + "rotation": { + "0.25": { + "vector": [0, 0, 0] + }, + "0.3333": { + "pre": { + "vector": [12.5, 0, 0] + }, + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [-40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "vector": [0, 0, 0] + } + } + }, + "neck3": { + "rotation": { + "0.25": { + "vector": [0, 0, 0] + }, + "0.375": { + "pre": { + "vector": [25, 0, 0] + }, + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.3333": { + "vector": [0, 0, 0] + } + } + }, + "head": { + "rotation": { + "0.25": { + "vector": [0, 0, 0] + }, + "0.4167": { + "pre": { + "vector": [37.5, 0, 0] + }, + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.6667": { + "vector": [0, 0, 0] + } + } + }, + "jaw": { + "rotation": { + "0.25": { + "vector": [0, 0, 0] + }, + "0.4583": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.2083": { + "vector": [0, 0, 0] + } + } + }, + "R_jaw": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2083": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2083": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.9583": { + "vector": [0, 0, 0] + } + } + }, + "L_jaw": { + "rotation": { + "0.5": { + "vector": [0, 0, 0] + }, + "0.7083": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.4583": { + "vector": [0, 0, 0] + } + } + }, + "Torso": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [-10, 0, 0] + }, + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.4167": { + "vector": [0, 0, 0] + } + } + }, + "Tail": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.375": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.9167": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.375": { + "vector": [0, 0, 0] + } + } + }, + "hair": { + "rotation": { + "0.25": { + "vector": [0, 0, 0] + }, + "0.4167": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [6, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5833": { + "vector": [0, 0, 0] + } + } + }, + "r_hair": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [6, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.3333": { + "vector": [0, 0, 0] + } + } + }, + "l_hair": { + "rotation": { + "0.5": { + "vector": [0, 0, 0] + }, + "0.6667": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [6, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.8333": { + "vector": [0, 0, 0] + } + } + }, + "body": { + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.125": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 7, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, -7, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 7, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -7, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 3, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [0, -3, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 1, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "vector": [0, 0, 0] + } + } + }, + "R_neck": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [12.5, 0, 0] + }, + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [-40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "vector": [0, 0, 0] + } + } + }, + "R_neck2": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.125": { + "pre": { + "vector": [25, 0, 0] + }, + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2083": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0833": { + "vector": [0, 0, 0] + } + } + }, + "R_head": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "pre": { + "vector": [37.5, 0, 0] + }, + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.4167": { + "vector": [0, 0, 0] + } + } + }, + "L_neck": { + "rotation": { + "0.5": { + "vector": [0, 0, 0] + }, + "0.5833": { + "pre": { + "vector": [12.5, 0, 0] + }, + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [-40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [-40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.125": { + "vector": [0, 0, 0] + } + } + }, + "L_neck2": { + "rotation": { + "0.5": { + "vector": [0, 0, 0] + }, + "0.625": { + "pre": { + "vector": [25, 0, 0] + }, + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5833": { + "vector": [0, 0, 0] + } + } + }, + "L_head": { + "rotation": { + "0.5": { + "vector": [0, 0, 0] + }, + "0.6667": { + "pre": { + "vector": [37.5, 0, 0] + }, + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.9167": { + "vector": [0, 0, 0] + } + } + } + } + }, + "bite_1": { + "animation_length": 1, + "bones": { + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-7.5, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-7.5, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-15, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-15, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-1, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-0.07, 0, 5.35] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-1.28, 0, 5.27] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-0.22, 0, 5.13] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-1, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-3.05641, 0.69222, -3.91506] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.625": { + "vector": [0, -1.6, 0] + }, + "1.0": { + "vector": [0, 0, 0] + } + } + } + } + }, + "bite_2": { + "animation_length": 1, + "bones": { + "R_head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-7.5, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-7.5, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-15, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-15, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-1, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-0.07, 0, 5.35] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-1.28, 0, 5.27] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-0.22, 0, 5.13] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-1, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-3.05641, 0.69222, -3.91506] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.625": { + "vector": [0, -1.6, 0] + }, + "1.0": { + "vector": [0, 0, 0] + } + } + } + } + }, + "bite_3": { + "animation_length": 1, + "bones": { + "L_head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-7.5, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-7.5, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-15, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-15, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-1, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-0.07, 0, 5.35] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-1.28, 0, 5.27] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-0.22, 0, 5.13] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-1, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-3.05641, 0.69222, -3.91506] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.625": { + "vector": [0, -1.6, 0] + }, + "1.0": { + "vector": [0, 0, 0] + } + } + } + } + }, + "shoot_1": { + "animation_length": 1.25, + "bones": { + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "vector": [0, 0, 0] + }, + "0.2083": { + "vector": [1, 0, 0] + }, + "0.25": { + "vector": [-0.14, 0, 0] + }, + "0.2917": { + "vector": [0.88, 0, 0] + }, + "0.3333": { + "vector": [-0.3, 0, 0] + }, + "0.5": { + "vector": [0, 0, 0] + }, + "0.5833": { + "vector": [0, 0, 13] + }, + "1.25": { + "vector": [0, 0, 0] + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.4167": { + "vector": [0, 0, 0] + }, + "0.5417": { + "vector": [0, 0, 14] + }, + "0.625": { + "vector": [0, 0, 0] + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "shoot_2": { + "animation_length": 1.25, + "bones": { + "R_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "vector": [0, 0, 0] + }, + "0.2083": { + "vector": [1, 0, 0] + }, + "0.25": { + "vector": [-0.14, 0, 0] + }, + "0.2917": { + "vector": [0.88, 0, 0] + }, + "0.3333": { + "vector": [-0.3, 0, 0] + }, + "0.5": { + "vector": [0, 0, 0] + }, + "0.5833": { + "vector": [0, 0, 13] + }, + "1.25": { + "vector": [0, 0, 0] + } + } + }, + "R_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.4167": { + "vector": [0, 0, 0] + }, + "0.5417": { + "vector": [0, 0, 14] + }, + "0.625": { + "vector": [0, 0, 0] + } + } + }, + "R_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "shoot_3": { + "animation_length": 1.25, + "bones": { + "L_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "vector": [0, 0, 0] + }, + "0.2083": { + "vector": [-1, 0, 0] + }, + "0.25": { + "vector": [0.14, 0, 0] + }, + "0.2917": { + "vector": [-0.88, 0, 0] + }, + "0.3333": { + "vector": [0.3, 0, 0] + }, + "0.5": { + "vector": [0, 0, 0] + }, + "0.5833": { + "vector": [0, 0, 13] + }, + "1.25": { + "vector": [0, 0, 0] + } + } + }, + "L_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.4167": { + "vector": [0, 0, 0] + }, + "0.5417": { + "vector": [0, 0, 14] + }, + "0.625": { + "vector": [0, 0, 0] + } + } + }, + "L_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "death": { + "animation_length": 1.25, + "bones": { + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck4": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-4.8493, 11.53486, 67.00992] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-4.95611, 16.51659, 66.56961] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-4.8493, 11.53486, 67.00992] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_tight": { + "rotation": { + "0.0": { + "post": { + "vector": [17.5, -10, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 9, 12] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 18] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 18] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_tight": { + "rotation": { + "0.0": { + "post": { + "vector": [17.5, 10, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -8] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, -8] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Torso": { + "rotation": { + "0.0": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-57.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-57.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail4": { + "rotation": { + "0.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "body": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.25": { + "vector": [0, 0, 0] + }, + "0.4167": { + "vector": [57.5, 0, 0] + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 7, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 7, 79] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 7, 79] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, -18, 3] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, -33, -17] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -18, -17] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, -23, -17] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, -18, -17] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 65] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 85] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 85] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -102.5] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -50] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, -50] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, -15] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -5.31] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, -15] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 80] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 37.5] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 37.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 36.88] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -65] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -85] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, -85] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 102.5] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 50] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 50] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 15] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 5.31] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, 15] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -80] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -37.5] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, -37.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -36.88] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-17.5, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-42.5, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-59.51995, 11.86554, -21.75656] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 12, 17] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 44, 35] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -75] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -35] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, -7.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing6": { + "rotation": { + "0.0": { + "post": { + "vector": [-3.00647, 5.62071, 143.54526] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 75] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 7.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-17.5, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-42.5, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-59.51995, -11.86554, 21.75656] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 12, 17] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 44, 35] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 75] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 35] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 7.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing6": { + "rotation": { + "0.0": { + "post": { + "vector": [-3.00647, -5.62071, -143.54526] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -75] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, -7.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_head": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-4.8493, 11.53486, 67.00992] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-4.95611, 16.51659, 66.56961] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-4.8493, 11.53486, 67.00992] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-4.8493, 11.53486, 67.00992] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-4.95611, 16.51659, 66.56961] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-4.8493, 11.53486, 67.00992] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_left": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/animations/manticore.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/manticore.animation.json new file mode 100644 index 00000000..7daa57bb --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/manticore.animation.json @@ -0,0 +1,3903 @@ +{ + "format_version": "1.8.0", + "animations": { + "render": { + "loop": true, + "bones": { + "jaw": { + "rotation": { + "vector": [57.5, 0, 0] + } + }, + "head": { + "rotation": { + "vector": [-15, 0, 0] + } + }, + "torso": { + "rotation": { + "vector": [7.5, 0, 0] + } + }, + "left_leg": { + "rotation": { + "vector": [0, 0, -10] + }, + "position": { + "vector": [0, 0, 0] + } + }, + "right_leg": { + "rotation": { + "vector": [0, 0, 10] + }, + "position": { + "vector": [0, 0, 0] + } + }, + "back_leg_right": { + "rotation": { + "vector": [0, 0, 5] + } + }, + "right_wing": { + "rotation": { + "vector": [-13.43688, 8.68889, -19.62342] + } + }, + "right_wing2": { + "rotation": { + "vector": [25, 0, 0] + } + }, + "right_wing3": { + "rotation": { + "vector": [0, -55, 0] + } + }, + "left_wing": { + "rotation": { + "vector": [-13.43688, -8.68889, 19.62342] + } + }, + "left_wing2": { + "rotation": { + "vector": [25, 0, 0] + } + }, + "left_wing3": { + "rotation": { + "vector": [0, 55, 0] + } + }, + "back_leg_left": { + "rotation": { + "vector": [0, 0, -5] + } + }, + "tail": { + "rotation": { + "vector": [12.5, 0, 0] + } + }, + "tail2": { + "rotation": { + "vector": [40, 0, 0] + } + }, + "tail3": { + "rotation": { + "vector": [60, 0, 0] + } + } + } + }, + "idle": { + "loop": true, + "animation_length": 2, + "bones": { + "torso": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.21, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-1, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [1, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-0.21, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0.29, 0, -5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [2.5, 0, -5] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [-2.5, 0, -5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0.29, 0, -5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1, -0.06] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, -1, -0.75] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [0, -1, 0.75] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -1, -0.06] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0.29, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [2.5, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [-2.5, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0.29, 0, 5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1, -0.06] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, -1, -0.75] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [0, -1, 0.75] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -1, -0.06] + }, + "lerp_mode": "catmullrom" + } + } + }, + "back_leg_right": { + "rotation": { + "0.0": { + "post": { + "vector": [0.29, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [2.5, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [-2.5, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0.29, 0, 5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1, -0.06] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, -1, -0.75] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [0, -1, 0.75] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -1, -0.06] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -1.84] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -1.84] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 1.84] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 1.84] + }, + "lerp_mode": "catmullrom" + } + } + }, + "back_leg_left": { + "rotation": { + "0.0": { + "post": { + "vector": [0.29, 0, -5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [2.5, 0, -5] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [-2.5, 0, -5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0.29, 0, -5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1, -0.06] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, -1, -0.75] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [0, -1, 0.75] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -1, -0.06] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "vector": [30, 0, 0] + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [41.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "vector": [42.5, 0, 0] + }, + "2.0": { + "vector": [41.25, 0, 0] + } + } + }, + "tail3": { + "rotation": { + "vector": [52.5, 0, 0] + } + } + } + }, + "walk": { + "loop": true, + "animation_length": 1, + "bones": { + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 1.02, -3.06] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 2.5, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, -2.5, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 1.02, -3.06] + }, + "lerp_mode": "catmullrom" + } + } + }, + "torso": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, -2.5, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-2.5, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 2.5, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-2.5, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [2.5, -2.5, 2.5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "vector": [-20, 0, 0] + }, + "0.5": { + "vector": [20, 0, 0] + }, + "0.7083": { + "pre": { + "vector": [13.33, 0, 0] + }, + "post": { + "vector": [13.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [-20, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, -1, -5] + }, + "0.125": { + "vector": [0, -0.25, -2.5] + }, + "0.25": { + "vector": [0, 0, 0] + }, + "0.375": { + "vector": [0, -0.25, 2.5] + }, + "0.5": { + "vector": [0, -1, 5] + }, + "0.625": { + "pre": { + "vector": [0, 1.25, 4.12] + }, + "post": { + "vector": [0, 1.25, 4.12] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 4, -3.67] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [0, -1, -5] + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "vector": [20, 0, 0] + }, + "0.2083": { + "pre": { + "vector": [13.33, 0, 0] + }, + "post": { + "vector": [13.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [-20, 0, 0] + }, + "1.0": { + "vector": [20, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, -1, 5] + }, + "0.125": { + "pre": { + "vector": [0, 1.25, 4.12] + }, + "post": { + "vector": [0, 1.25, 4.12] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 4, -3.67] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, -1, -5] + }, + "0.625": { + "vector": [0, -0.25, -2.5] + }, + "0.75": { + "vector": [0, 0, 0] + }, + "0.875": { + "vector": [0, -0.25, 2.5] + }, + "1.0": { + "vector": [0, -1, 5] + } + } + }, + "back_leg_right": { + "rotation": { + "0.0": { + "post": { + "vector": [3.61, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "vector": [-20, 0, 0] + }, + "0.7083": { + "vector": [20, 0, 0] + }, + "0.9167": { + "pre": { + "vector": [13.33, 0, 0] + }, + "post": { + "vector": [13.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [3.61, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 3.94, -2.41] + }, + "lerp_mode": "catmullrom" + }, + "0.0417": { + "post": { + "vector": [0, 4, -3.67] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "vector": [0, -1, -5] + }, + "0.3333": { + "vector": [0, -0.25, -2.5] + }, + "0.4583": { + "vector": [0, 0, 0] + }, + "0.5833": { + "vector": [0, -0.25, 2.5] + }, + "0.7083": { + "vector": [0, -1, 5] + }, + "0.8333": { + "pre": { + "vector": [0, 1.25, 4.12] + }, + "post": { + "vector": [0, 1.25, 4.12] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 3.94, -2.41] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [32.5, 0, -12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [32.5, 0, -17.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [32.5, 0, -12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_wing2": { + "rotation": { + "vector": [0, 32.5, -22.5] + } + }, + "right_wing3": { + "rotation": { + "vector": [0, -27.5, 0] + } + }, + "left_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [32.5, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [32.5, 0, 12.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [32.5, 0, 17.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_wing2": { + "rotation": { + "vector": [0, -32.5, 22.5] + } + }, + "left_wing3": { + "rotation": { + "vector": [0, 27.5, 0] + } + }, + "back_leg_left": { + "rotation": { + "0.0": { + "vector": [3.33, 0, 0] + }, + "0.2083": { + "vector": [20, 0, 0] + }, + "0.4167": { + "pre": { + "vector": [13.33, 0, 0] + }, + "post": { + "vector": [13.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [3.61, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "vector": [-20, 0, 0] + }, + "1.0": { + "vector": [3.33, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, -0.08, 0.83] + }, + "0.0833": { + "vector": [0, -0.25, 2.5] + }, + "0.2083": { + "vector": [0, -1, 5] + }, + "0.3333": { + "pre": { + "vector": [0, 1.25, 4.12] + }, + "post": { + "vector": [0, 1.25, 4.12] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 3.94, -2.41] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 4, -3.67] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "vector": [0, -1, -5] + }, + "0.8333": { + "vector": [0, -0.25, -2.5] + }, + "0.9583": { + "vector": [0, 0, 0] + }, + "1.0": { + "vector": [0, -0.08, 0.83] + } + } + }, + "tail": { + "rotation": { + "vector": [30, 0, 0] + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [41.25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "vector": [52.5, 0, 0] + } + } + } + }, + "bite": { + "animation_length": 0.5, + "bones": { + "jaw": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [50, 0, 0] + }, + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [12.5, 0, 0] + }, + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, 0, 0] + } + } + }, + "torso": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.125": { + "pre": { + "vector": [-5, 0, 0] + }, + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "body": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [-2.5, 0, 0] + }, + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [0, 1, -5] + }, + "post": { + "vector": [0, 1, -5] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, -7] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, -0.07, -5.76] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, 0, 0] + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [10, 0, 0] + }, + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [0, -0.5, 0.25] + }, + "post": { + "vector": [0, -0.5, 0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, -2, 0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -3, 0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, -2.5, 0.75] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, -2.5, 0.75] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, 0, 0] + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [10, 0, 0] + }, + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [0, -0.5, 0.25] + }, + "post": { + "vector": [0, -0.5, 0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, -2, 0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -3, 0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, -2.5, 0.75] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, -2.5, 0.75] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, 0, 0] + } + } + }, + "back_leg_right": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [10, 0, 0] + }, + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [0, -0.5, 0.25] + }, + "post": { + "vector": [0, -0.5, 0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, -2, 0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -3, 0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, -2.5, 0.75] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, -2.5, 0.75] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, 0, 0] + } + } + }, + "back_leg_left": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [10, 0, 0] + }, + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [0, -0.5, 0.25] + }, + "post": { + "vector": [0, -0.5, 0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, -2, 0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -3, 0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, -2.5, 0.75] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, -2.5, 0.75] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "vector": [0, 0, 0] + } + } + } + } + }, + "fly_bite": { + "animation_length": 0.875, + "bones": { + "jaw": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2083": { + "vector": [0, 0, 0] + }, + "0.3333": { + "pre": { + "vector": [52.5, 0, 0] + }, + "post": { + "vector": [52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "body": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [-10, 0, 0] + }, + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-10.63, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [0, 1, 9] + }, + "post": { + "vector": [0, 1, 9] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 2.06, 11.56] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 3, 7] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 1, -24] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0.32, -22.04] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "vector": [0, 0, 0] + } + } + }, + "right_wing": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [0, -7.5, -35] + }, + "post": { + "vector": [0, -7.5, -35] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 10, -35] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 20, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, -7.5, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, -7.5, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "vector": [0, 0, 0] + } + } + }, + "right_wing2": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2083": { + "pre": { + "vector": [0, -27.5, 0] + }, + "post": { + "vector": [0, -27.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 40, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, -27.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, -7.97, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "vector": [0, 0, 0] + } + } + }, + "right_wing3": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [0, 47.5, 0] + }, + "post": { + "vector": [0, 47.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, -37.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 57.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -35, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "vector": [0, 0, 0] + } + } + }, + "left_wing": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [0, 7.5, 35] + }, + "post": { + "vector": [0, 7.5, 35] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, -10, 35] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -20, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 7.5, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 7.5, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "vector": [0, 0, 0] + } + } + }, + "left_wing2": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2083": { + "pre": { + "vector": [0, 27.5, 0] + }, + "post": { + "vector": [0, 27.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, -40, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 27.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 7.97, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "vector": [0, 0, 0] + } + } + }, + "left_wing3": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [0, -47.5, 0] + }, + "post": { + "vector": [0, -47.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 37.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, -57.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 35, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "vector": [0, 0, 0] + } + } + } + } + }, + "sting": { + "animation_length": 0.6667, + "bones": { + "head": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "pre": { + "vector": [-10, 0, 0] + }, + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "vector": [0, 0, 0] + } + } + }, + "torso": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [10, 0, 0] + }, + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [4.86, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [0, -3, 0.75] + }, + "post": { + "vector": [0, -3, 0.75] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, -4, 3] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, -4, 3] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -1.61, 1.02] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "vector": [0, 0, 0] + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 4] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 2] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 4] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 3, 2] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "back_leg_right": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 4] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 2] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "back_leg_left": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 4] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 2] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [-17.5, 0, 0] + }, + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [77.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "vector": [0, 0, 0] + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [22.5, 0, 0] + }, + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [5.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [9.04, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "vector": [0, 0, 0] + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [22.5, 0, 0] + }, + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-38.26, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "vector": [0, 0, 0] + } + } + }, + "sting": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [22.5, 0, 0] + }, + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "vector": [0, 0, 0] + } + } + } + } + }, + "fly_start": { + "animation_length": 0.7083, + "bones": { + "head": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [27.5, 0, 0] + }, + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [8.3, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [1.15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "vector": [0, 0, 0] + } + } + }, + "body": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [-17.5, 0, 0] + }, + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-15.95, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-8.55, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-1.94, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "vector": [0, 0, 0] + }, + "0.125": { + "pre": { + "vector": [0, 21, 0] + }, + "post": { + "vector": [0, 21, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 21.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 18, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "vector": [0, 0, -5] + }, + "0.0833": { + "pre": { + "vector": [32.5, 0, 0] + }, + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [21.1, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "vector": [37.5, 0, 0] + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "vector": [0, 0, 5] + }, + "0.0833": { + "pre": { + "vector": [32.5, 0, 0] + }, + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "vector": [37.5, 0, 0] + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "back_leg_right": { + "rotation": { + "0.0": { + "vector": [0, 0, 5] + }, + "0.0833": { + "pre": { + "vector": [22.5, 0, 0] + }, + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [21.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "vector": [37.5, 0, 0] + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_wing": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [46.25, 12.5, -33.75] + }, + "post": { + "vector": [46.25, 12.5, -33.75] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [52.5, 15, -47.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [66.54, 17.33, -44.44] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [72.5, 20, -15] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [72.5, 20, -15] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_wing2": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [0, -7.5, 0] + }, + "post": { + "vector": [0, -7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, -27.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "vector": [0, 0, 0] + } + } + }, + "right_wing3": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [0, 45, 0] + }, + "post": { + "vector": [0, 45, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 46.56, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, -37.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -27.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "vector": [0, 0, 0] + } + } + }, + "left_wing": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [46.25, -12.5, 33.75] + }, + "post": { + "vector": [46.25, -12.5, 33.75] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [52.5, -15, 47.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [66.54, -17.33, 44.44] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [72.5, -20, 15] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [72.5, -20, 15] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_wing2": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [0, 7.5, 0] + }, + "post": { + "vector": [0, 7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 27.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "vector": [0, 0, 0] + } + } + }, + "left_wing3": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [0, -45, 0] + }, + "post": { + "vector": [0, -45, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, -46.56, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 37.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 27.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "vector": [0, 0, 0] + } + } + }, + "back_leg_left": { + "rotation": { + "0.0": { + "vector": [0, 0, -5] + }, + "0.0417": { + "pre": { + "vector": [22.5, 0, 0] + }, + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [21.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "vector": [37.5, 0, 0] + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "vector": [30, 0, 0] + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [41.25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "vector": [52.5, 0, 0] + } + } + } + }, + "fly": { + "loop": true, + "animation_length": 1, + "bones": { + "head": { + "rotation": { + "vector": [0, 0, 0] + } + }, + "body": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 10, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 18, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 22.44, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 23, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 20, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 11.74, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 10, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "back_leg_right": { + "rotation": { + "0.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [72.5, 20, -15] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [80, 25, -60] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [62.03, 48.91, -46.72] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [25, 62.5, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [25, 32.5, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [72.5, 20, -15] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_wing2": { + "rotation": { + "0.0": { + "vector": [0, 32.5, 0] + }, + "0.0833": { + "pre": { + "vector": [0, 45, 0] + }, + "post": { + "vector": [0, 45, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 17.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -45, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 30, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [0, 32.5, 0] + } + } + }, + "right_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 52.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 37.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, -35, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -65, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -30, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 29.38, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 52.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [72.5, -20, 15] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [80, -25, 60] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [62.03, -48.91, 46.72] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [25, -62.5, -17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [25, -32.5, -17.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [72.5, -20, 15] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_wing2": { + "rotation": { + "0.0": { + "vector": [0, -32.5, 0] + }, + "0.0833": { + "pre": { + "vector": [0, -45, 0] + }, + "post": { + "vector": [0, -45, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, -17.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 45, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, -30, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [0, -32.5, 0] + } + } + }, + "left_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -52.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, -37.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 35, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 65, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 30, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, -29.38, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, -52.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "back_leg_left": { + "rotation": { + "0.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [41.25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "vector": [52.5, 0, 0] + } + } + } + }, + "fly_land": { + "animation_length": 0.4167, + "bones": { + "head": { + "rotation": { + "vector": [0, 0, 0] + } + }, + "body": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 18, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, -4, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "vector": [37.5, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [-37.5, 0, 0] + }, + "post": { + "vector": [-37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-13.44, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, -5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [0, 4, 0] + }, + "post": { + "vector": [0, 4, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 5.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "vector": [37.5, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [-37.5, 0, 0] + }, + "post": { + "vector": [-37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-13.44, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 0, 5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.125": { + "pre": { + "vector": [0, 4, 0] + }, + "post": { + "vector": [0, 4, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 5.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "back_leg_right": { + "rotation": { + "0.0": { + "vector": [37.5, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [-35, 0, 0] + }, + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "vector": [0, 0, -5] + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 4, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 5.52, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 4, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [72.5, 20, -15] + }, + "lerp_mode": "catmullrom" + }, + "0.0417": { + "post": { + "vector": [72.5, 15, 40] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [80, 2.5, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [55.47, 0.47, -24.06] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_wing2": { + "rotation": { + "vector": [0, 0, 0] + } + }, + "right_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0417": { + "post": { + "vector": [0, -52.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 37.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, -10, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [72.5, -20, 15] + }, + "lerp_mode": "catmullrom" + }, + "0.0417": { + "post": { + "vector": [72.5, -15, -40] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [80, -2.5, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [55.47, -0.47, 24.06] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_wing2": { + "rotation": { + "vector": [0, 0, 0] + } + }, + "left_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0417": { + "post": { + "vector": [0, 52.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, -37.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 10, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "back_leg_left": { + "rotation": { + "0.0": { + "vector": [37.5, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [-35, 0, 0] + }, + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "vector": [0, 0, -5] + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 4, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 5.52, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 4, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "vector": [30, 0, 0] + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [41.25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "vector": [52.5, 0, 0] + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/animations/portal_gun.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/portal_gun.animation.json new file mode 100644 index 00000000..5dceb17a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/portal_gun.animation.json @@ -0,0 +1,225 @@ +{ + "format_version": "1.8.0", + "animations": { + "fire": { + "animation_length": 0.5, + "bones": { + "gun_tip": { + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "vector": [0, 0, 1], + "easing": "easeOutQuart" + }, + "0.375": { + "vector": [0, 0, 0], + "easing": "easeInOutSine" + } + } + }, + "claw_1": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.25": { + "vector": [10, 0, 0], + "easing": "easeOutQuint" + }, + "0.4167": { + "vector": [0, 0, 0], + "easing": "easeInOutSine" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2083": { + "vector": [0, 0, 0.5], + "easing": "easeOutQuart" + }, + "0.4583": { + "vector": [0, 0, 0], + "easing": "easeInOutSine" + } + } + }, + "claw_2": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.25": { + "vector": [10, 0, 0], + "easing": "easeOutQuint" + }, + "0.4167": { + "vector": [0, 0, 0], + "easing": "easeInOutSine" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2083": { + "vector": [0, 0, 0.5], + "easing": "easeOutQuart" + }, + "0.4583": { + "vector": [0, 0, 0], + "easing": "easeInOutSine" + } + } + }, + "claw_3": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.25": { + "vector": [10, 0, 0], + "easing": "easeOutQuint" + }, + "0.4167": { + "vector": [0, 0, 0], + "easing": "easeInOutSine" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2083": { + "vector": [0, 0, 0.5], + "easing": "easeOutQuart" + }, + "0.4583": { + "vector": [0, 0, 0], + "easing": "easeInOutSine" + } + } + }, + "portal_gun": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "vector": [-5, 0, 0], + "easing": "easeInOutQuart" + }, + "0.5": { + "vector": [0, 0, 0], + "easing": "easeInOutSine" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2083": { + "vector": [0, 0, 1], + "easing": "easeOutQuint" + }, + "0.5": { + "vector": [0, 0, 0], + "easing": "easeInOutSine" + } + } + }, + "wire": { + "position": { + "0.0": { + "vector": [0, 0, 1] + }, + "0.25": { + "vector": [0, 0, 1.7], + "easing": "easeOutQuart" + }, + "0.5": { + "vector": [0, 0, 1], + "easing": "easeInOutSine" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "0.25": { + "vector": [1, 1, 0.9], + "easing": "easeOutQuart" + }, + "0.5": { + "vector": [1, 1, 1], + "easing": "easeInOutSine" + } + } + } + } + }, + "off_led": { + "loop": true, + "bones": { + "off": { + "scale": { + "vector": [1, 1, 1] + } + }, + "blue": { + "scale": { + "vector": [0, 0, 0] + } + }, + "orange": { + "scale": { + "vector": [0, 0, 0] + } + } + } + }, + "blue_led": { + "loop": true, + "bones": { + "off": { + "scale": { + "vector": [0, 0, 0] + } + }, + "blue": { + "scale": { + "vector": [1, 1, 1] + } + }, + "orange": { + "scale": { + "vector": [0, 0, 0] + } + } + } + }, + "orange_led": { + "loop": true, + "bones": { + "off": { + "scale": { + "vector": [0, 0, 0] + } + }, + "blue": { + "scale": { + "vector": [0, 0, 0] + } + }, + "orange": { + "scale": { + "vector": [1, 1, 1] + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/animations/portal_gun_portal.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/portal_gun_portal.animation.json new file mode 100644 index 00000000..02c2cc9f --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/portal_gun_portal.animation.json @@ -0,0 +1,35 @@ +{ + "format_version": "1.8.0", + "animations": { + "idle": { + "loop": true, + "animation_length": 4.0, + "bones": {} + }, + "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.20.1/src/main/resources/assets/antarchy/animations/prince.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/prince.animation.json new file mode 100644 index 00000000..24799b15 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/prince.animation.json @@ -0,0 +1,7144 @@ +{ + "format_version": "1.8.0", + "animations": { + "idle": { + "loop": true, + "animation_length": 4, + "bones": { + "torso": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.4583": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-17.73772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_right": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-16.71712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_right": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-17.73772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-16.71712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_left": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 40] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -67.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -47.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -67.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -40] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 67.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 47.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 67.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -35] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 35] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "walk": { + "loop": true, + "animation_length": 1, + "bones": { + "torso": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 4] + }, + "0.2083": { + "vector": [0, 2, 1.08] + }, + "0.5": { + "vector": [0, -0.25, -4] + }, + "0.5833": { + "vector": [0, -0.25, -4] + }, + "1.0": { + "vector": [0, 0, 4] + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, -0.25, -4] + }, + "0.0833": { + "vector": [0, -0.25, -4] + }, + "0.5": { + "vector": [0, 0, 4] + }, + "0.7083": { + "vector": [0, 2, 1.08] + }, + "1.0": { + "vector": [0, -0.25, -4] + } + } + }, + "right_foot": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [13.36, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_foot": { + "rotation": { + "0.0": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [13.36, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [57.13, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-17.73772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_right": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-16.71712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_right": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-17.73772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-16.71712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_left": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 17.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -17.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -37.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 37.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "fly": { + "loop": true, + "animation_length": 0.7917, + "bones": { + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_foot": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_foot": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [12.4954, 0.23276, 0.2745] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_right": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [12.4954, -0.23276, -0.2745] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [2.34229, 20.55558, -53.81138] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, 42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -47.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [2.34229, -20.55558, 53.81138] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, -42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 47.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, -75] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [3.31914, 14.63639, -62.07362] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, -60] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 75] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [3.31914, -14.63639, 62.07362] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, 60] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "prince": { + "position": { + "0.0": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "quirk": { + "loop": true, + "animation_length": 4, + "bones": { + "torso": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [-9.81103, -12.29231, 2.14121] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [7.56411, -13.13766, 2.28847] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "1.25": { + "vector": [0, 3, 0] + }, + "4.0": { + "vector": [0, 0, 0] + } + } + }, + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-44.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [17.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-7.21, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [21.6, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [17.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [-7.21, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [35.29, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [42.95, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-4.99, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [24.24, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [35.29, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [42.95, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [-4.99, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [-14.99655, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0.11231, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.8333": { + "vector": [0, 0, 0] + }, + "1.0417": { + "vector": [0, 4, 0] + }, + "1.125": { + "vector": [-2, 0, -6] + }, + "4.0": { + "vector": [0, 0, 0] + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [26.27, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [33.58, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.4583": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [34.71, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [48.97, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-16.71, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [34.71, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [48.97, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [-16.71, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [38, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [1.34, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [38, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [48.46, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [-28.73897, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-17.73772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_right": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-14.47444, -37.68306, 18.44903] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [-34.12541, -21.56564, 14.52957] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-16.71712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "2.7917": { + "post": { + "vector": [16.7792, -7.75782, 11.17175] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_right": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.2083": { + "post": { + "vector": [22.79, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5417": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [27.23421, -6.99078, 13.30456] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [24.51172, 15.38736, -29.84292] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [27.23421, -6.99078, 13.30456] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [22.22056, 18.68378, -37.70361] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [-9.61769, 15.30092, 12.93508] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [-18.04272, 3.46685, -31.97249] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [-9.61769, 15.30092, 12.93508] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-17.90194, -4.42641, -56.62924] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-17.73772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [-3.2996, 14.49432, 31.65044] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [-9.21569, -15.35169, 13.44653] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [-3.2996, 14.49432, 31.65044] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-3.99029, 5.4146, 29.85092] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-16.71712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_left": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 73.68] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 40] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -67.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, -12.23] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -47.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -67.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -40] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 67.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 12.23] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 47.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 67.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -35] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 35] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "bite": { + "loop": true, + "animation_length": 0.5, + "bones": { + "torso": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 4] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 4] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-62.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-62.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0.5221, -3.96578] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0.5221, -3.96578] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0417": { + "post": { + "vector": [0, 2, -1.75] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, -4] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -4] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 0.86, -0.65] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-11.73095, -2.9701, -13.84724] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-11.73095, -2.9701, -13.84724] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [50.76905, -2.9701, -13.84724] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [50.76905, -2.9701, -13.84724] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 3] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 3] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 3, 4] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 4] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [23.13422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [23.13422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0.26105, -1.98289] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0.26105, -1.98289] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-20.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-20.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [7.26228, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [7.26228, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_right": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-19.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-19.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_right": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [23.13422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [23.13422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0.26105, -1.98289] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0.26105, -1.98289] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-20.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-20.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [7.26228, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [7.26228, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-19.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-19.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_left": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 30] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 30] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -67.5] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -67.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, -30] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -30] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 67.5] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 67.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "fly_bite": { + "loop": true, + "animation_length": 0.7917, + "bones": { + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [11.57, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [14.07, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-11.67, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-1.59, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 1, 3] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 1, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 1, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [26.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [26.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-1.81, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [23.38, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [23.38, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-47.58, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-43.75, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-45.82, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_foot": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_foot": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-29.8, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-29.8, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [4.35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [30.74, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [30.74, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-0.41, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [12.4954, 0.23276, 0.2745] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_right": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [12.4954, -0.23276, -0.2745] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [2.34229, 20.55558, -53.81138] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, 42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -47.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [2.34229, -20.55558, 53.81138] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, -42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 47.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, -75] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [3.31914, 14.63639, -62.07362] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, -60] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 75] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [3.31914, -14.63639, 62.07362] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, 60] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "prince": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 12, 11] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "fly_shoot": { + "loop": true, + "animation_length": 0.7917, + "bones": { + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_foot": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_foot": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [42.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [42.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-24.36578, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, -0.64932, -2.92889] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, -0.64932, -2.92889] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-25.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_right": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-34.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_right": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-24.36578, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, -0.64932, -2.92889] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, -0.64932, -2.92889] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-25.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-34.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_left": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [2.34229, 20.55558, -53.81138] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, 42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -47.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [2.34229, -20.55558, 53.81138] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, -42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 47.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, -75] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [3.31914, 14.63639, -62.07362] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, -60] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 75] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [3.31914, -14.63639, 62.07362] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, 60] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "prince": { + "position": { + "0.0": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "shoot": { + "animation_length": 1, + "bones": { + "torso": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 3] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 3] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -4] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, -4] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [42.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [42.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [42.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [42.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-24.36578, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-24.36578, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -0.64932, -2.92889] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -0.64932, -2.92889] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-25.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-25.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_right": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-34.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-34.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_right": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-24.36578, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-24.36578, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -0.64932, -2.92889] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -0.64932, -2.92889] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-25.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-25.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-34.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-34.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_left": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-32.15172, 20.43663, 74.0527] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-32.15172, 20.43663, 74.0527] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 77.5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 77.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -67.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 50] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 50] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 37.5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 37.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -67.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-32.15172, -20.43663, -74.0527] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-32.15172, -20.43663, -74.0527] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -77.5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, -77.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 67.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -50] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, -50] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -37.5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, -37.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 67.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 37.5, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 37.5, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, -37.5, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -37.5, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/animations/princess.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/princess.animation.json new file mode 100644 index 00000000..1f4d2bb0 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/princess.animation.json @@ -0,0 +1,7840 @@ +{ + "format_version": "1.8.0", + "animations": { + "idle": { + "loop": true, + "animation_length": 4, + "bones": { + "torso": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.4583": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "orb_center": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5833": { + "post": { + "vector": [0, 0, 360] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "orb_right": { + "rotation": { + "0.0": { + "post": { + "vector": [10.54684, -44.0238, -10.54684] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 360] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [10.54684, -44.0238, -10.54684] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [10.54684, -44.0238, -10.54684] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "orb_left": { + "rotation": { + "0.0": { + "post": { + "vector": [10.54684, 44.0238, 10.54684] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -360] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [10.54684, 44.0238, 10.54684] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [10.54684, 44.0238, 10.54684] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-17.73772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_right": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-16.71712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_right": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-17.73772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-16.71712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_left": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 40] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -67.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -47.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -67.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -40] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 67.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 47.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 67.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -35] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 35] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "walk": { + "loop": true, + "animation_length": 1, + "bones": { + "torso": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 4] + }, + "0.2083": { + "vector": [0, 2, 1.08] + }, + "0.5": { + "vector": [0, -0.25, -4] + }, + "0.5833": { + "vector": [0, -0.25, -4] + }, + "1.0": { + "vector": [0, 0, 4] + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, -0.25, -4] + }, + "0.0833": { + "vector": [0, -0.25, -4] + }, + "0.5": { + "vector": [0, 0, 4] + }, + "0.7083": { + "vector": [0, 2, 1.08] + }, + "1.0": { + "vector": [0, -0.25, -4] + } + } + }, + "right_foot": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [13.36, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_foot": { + "rotation": { + "0.0": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [13.36, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [57.13, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "orb_center": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "orb_right": { + "rotation": { + "0.0": { + "post": { + "vector": [10.54684, -44.0238, -10.54684] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "orb_left": { + "rotation": { + "0.0": { + "post": { + "vector": [10.54684, 44.0238, 10.54684] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-17.73772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_right": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-16.71712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_right": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-17.73772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-16.71712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_left": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 17.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -17.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -37.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 37.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "fly": { + "loop": true, + "animation_length": 0.7917, + "bones": { + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_foot": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_foot": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [12.4954, 0.23276, 0.2745] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_right": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [12.4954, -0.23276, -0.2745] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [2.34229, 20.55558, -53.81138] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, 42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -47.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [2.34229, -20.55558, 53.81138] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, -42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 47.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, -75] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [3.31914, 14.63639, -62.07362] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, -60] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 75] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [3.31914, -14.63639, 62.07362] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, 60] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "princess": { + "position": { + "0.0": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "quirk": { + "loop": true, + "animation_length": 4, + "bones": { + "torso": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [-9.81103, -12.29231, 2.14121] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [7.56411, -13.13766, 2.28847] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "1.25": { + "vector": [0, 3, 0] + }, + "4.0": { + "vector": [0, 0, 0] + } + } + }, + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-44.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [17.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-7.21, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [21.6, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [17.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [-7.21, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [35.29, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [42.95, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-4.99, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [24.24, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [35.29, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [42.95, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [-4.99, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [-14.99655, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0.11231, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.8333": { + "vector": [0, 0, 0] + }, + "1.0417": { + "vector": [0, 4, 0] + }, + "1.125": { + "vector": [-2, 0, -6] + }, + "4.0": { + "vector": [0, 0, 0] + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [26.27, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [33.58, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.4583": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [34.71, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [48.97, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-16.71, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [34.71, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [48.97, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [-16.71, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "orb_center": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5833": { + "post": { + "vector": [0, 0, 360] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "orb_right": { + "rotation": { + "0.0": { + "post": { + "vector": [10.54684, -44.0238, -10.54684] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 360] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [10.54684, -44.0238, -10.54684] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [10.54684, -44.0238, -10.54684] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "orb_left": { + "rotation": { + "0.0": { + "post": { + "vector": [10.54684, 44.0238, 10.54684] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -360] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [10.54684, 44.0238, 10.54684] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [10.54684, 44.0238, 10.54684] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [38, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [1.34, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [38, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [48.46, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [-28.73897, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-17.73772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_right": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-14.47444, -37.68306, 18.44903] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [-34.12541, -21.56564, 14.52957] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-16.71712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "2.7917": { + "post": { + "vector": [16.7792, -7.75782, 11.17175] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_right": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.2083": { + "post": { + "vector": [22.79, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5417": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [27.23421, -6.99078, 13.30456] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [24.51172, 15.38736, -29.84292] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [27.23421, -6.99078, 13.30456] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [22.22056, 18.68378, -37.70361] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [-9.61769, 15.30092, 12.93508] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [-18.04272, 3.46685, -31.97249] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [-9.61769, 15.30092, 12.93508] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-17.90194, -4.42641, -56.62924] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-17.73772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [-3.2996, 14.49432, 31.65044] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [-9.21569, -15.35169, 13.44653] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [-3.2996, 14.49432, 31.65044] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-3.99029, 5.4146, 29.85092] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-16.71712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_left": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 73.68] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 40] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -67.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, -12.23] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -47.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -67.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -40] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 67.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 12.23] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 47.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 67.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -35] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 35] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "bite": { + "loop": true, + "animation_length": 0.5, + "bones": { + "torso": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 4] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 4] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-62.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-62.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0.5221, -3.96578] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0.5221, -3.96578] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0417": { + "post": { + "vector": [0, 2, -1.75] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, -4] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -4] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 0.86, -0.65] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-11.73095, -2.9701, -13.84724] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-11.73095, -2.9701, -13.84724] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [50.76905, -2.9701, -13.84724] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [50.76905, -2.9701, -13.84724] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 3] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 3] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 3, 4] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 4] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "orb_center": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "orb_right": { + "rotation": { + "0.0": { + "post": { + "vector": [10.54684, -44.0238, -10.54684] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [10.54684, -44.0238, -10.54684] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "orb_left": { + "rotation": { + "0.0": { + "post": { + "vector": [10.54684, 44.0238, 10.54684] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [10.54684, 44.0238, 10.54684] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [23.13422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [23.13422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0.26105, -1.98289] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0.26105, -1.98289] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-20.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-20.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [7.26228, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [7.26228, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_right": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-19.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-19.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_right": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [23.13422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [23.13422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0.26105, -1.98289] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0.26105, -1.98289] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-20.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-20.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [7.26228, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [7.26228, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-19.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-19.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_left": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 30] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 30] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -67.5] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -67.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, -30] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -30] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 67.5] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 67.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "fly_bite": { + "loop": true, + "animation_length": 0.7917, + "bones": { + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [11.57, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [14.07, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-11.67, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-1.59, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 1, 3] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 1, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 1, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [26.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [26.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-1.81, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [23.38, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [23.38, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-47.58, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-43.75, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-45.82, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_foot": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_foot": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-29.8, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-29.8, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [4.35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [30.74, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [30.74, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-0.41, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [12.4954, 0.23276, 0.2745] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_right": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [12.4954, -0.23276, -0.2745] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [2.34229, 20.55558, -53.81138] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, 42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -47.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [2.34229, -20.55558, 53.81138] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, -42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 47.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, -75] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [3.31914, 14.63639, -62.07362] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, -60] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 75] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [3.31914, -14.63639, 62.07362] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, 60] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "princess": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 12, 11] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "fly_shoot": { + "loop": true, + "animation_length": 0.7917, + "bones": { + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_foot": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_foot": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "orb_center": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [67.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "0.125": { + "vector": [1.2, 1.2, 1] + }, + "0.7917": { + "vector": [1, 1, 1] + } + } + }, + "orb_right": { + "rotation": { + "0.0": { + "post": { + "vector": [10.54684, -44.0238, -10.54684] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-3.16162, -55.11366, 102.14289] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [10.54684, -44.0238, -10.54684] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [10.54684, -44.0238, -10.54684] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "0.125": { + "vector": [1.2, 1.2, 1] + }, + "0.7917": { + "vector": [1, 1, 1] + } + } + }, + "orb_left": { + "rotation": { + "0.0": { + "post": { + "vector": [10.54684, 44.0238, 10.54684] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-3.16162, 55.11366, -102.14289] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [10.54684, 44.0238, 10.54684] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [10.54684, 44.0238, 10.54684] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "0.125": { + "vector": [1.2, 1.2, 1] + }, + "0.7917": { + "vector": [1, 1, 1] + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [42.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [42.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-24.36578, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, -0.64932, -2.92889] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, -0.64932, -2.92889] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-25.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_right": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-34.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_right": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-24.36578, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, -0.64932, -2.92889] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, -0.64932, -2.92889] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-25.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-34.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_left": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [2.34229, 20.55558, -53.81138] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, 42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -47.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [2.34229, -20.55558, 53.81138] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, -42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 47.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, -75] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [3.31914, 14.63639, -62.07362] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, -60] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 75] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [3.31914, -14.63639, 62.07362] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, 60] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "princess": { + "position": { + "0.0": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 6, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "shoot": { + "animation_length": 1, + "bones": { + "torso": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 3] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 3] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -4] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, -4] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [42.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [42.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "orb_center": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [67.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "0.2917": { + "vector": [1.2, 1.2, 1] + }, + "1.0": { + "vector": [1, 1, 1] + } + } + }, + "orb_right": { + "rotation": { + "0.0": { + "post": { + "vector": [10.54684, -44.0238, -10.54684] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-3.16162, -55.11366, 102.14289] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [10.54684, -44.0238, -10.54684] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [10.54684, -44.0238, -10.54684] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "0.2917": { + "vector": [1.2, 1.2, 1] + }, + "1.0": { + "vector": [1, 1, 1] + } + } + }, + "orb_left": { + "rotation": { + "0.0": { + "post": { + "vector": [10.54684, 44.0238, 10.54684] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-3.16162, 55.11366, -102.14289] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [10.54684, 44.0238, 10.54684] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [10.54684, 44.0238, 10.54684] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "0.2917": { + "vector": [1.2, 1.2, 1] + }, + "1.0": { + "vector": [1, 1, 1] + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [42.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [42.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-24.36578, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-24.36578, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [5.63422, -17.07457, -3.43487] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -0.64932, -2.92889] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -0.64932, -2.92889] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_right3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-25.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-25.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-10.23772, -12.3071, 2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_right": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-34.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-34.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-9.21712, -8.44624, 11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_right": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left": { + "rotation": { + "0.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-24.36578, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-24.36578, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [5.63422, 17.07457, 3.43487] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -0.64932, -2.92889] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -0.64932, -2.92889] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-25.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-25.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-10.23772, 12.3071, -2.20462] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-34.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-34.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-9.21712, 8.44624, -11.33916] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_left": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-32.15172, 20.43663, 74.0527] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-32.15172, 20.43663, 74.0527] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 77.5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 77.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -67.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 50] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 50] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 37.5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 37.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -67.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-32.15172, -20.43663, -74.0527] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-32.15172, -20.43663, -74.0527] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -77.5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, -77.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_upper_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 67.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -50] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, -50] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -37.5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, -37.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 67.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 37.5, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 37.5, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, -37.5, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -37.5, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + } + } + }, + "left_lower_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/animations/queen.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/queen.animation.json new file mode 100644 index 00000000..64c6a808 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/queen.animation.json @@ -0,0 +1,8495 @@ +{ + "format_version": "1.8.0", + "animations": { + "idle": { + "loop": true, + "animation_length": 4, + "bones": { + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck4": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.7917": { + "post": { + "vector": [-0.43415, 0.39727, 19.83342] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.875": { + "post": { + "vector": [23.02, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tongue": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7917": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.7917": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_toungue": { + "rotation": { + "vector": [-12.5, 0, 0] + } + }, + "L_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_tongue": { + "rotation": { + "vector": [-12.5, 0, 0] + } + }, + "L_tight": { + "rotation": { + "0.0": { + "post": { + "vector": [17.5, 10, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [17.5, 10, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_tight": { + "rotation": { + "0.0": { + "post": { + "vector": [17.5, -10, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [17.5, -10, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Torso": { + "rotation": { + "0.0": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.9583": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2083": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail4": { + "rotation": { + "0.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.9583": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "body": { + "position": { + "0.0": { + "post": { + "vector": [0, 7, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 7, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 65] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 10, 50] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 65] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -102.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -80] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -102.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 80] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 65] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 80] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -65] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -10, -50] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -65] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 102.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 80] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 102.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -80] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -65] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -80] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 12, 17] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 12, 17] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -75] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -75] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing6": { + "rotation": { + "0.0": { + "post": { + "vector": [-3.00647, 5.62071, 143.54526] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-3.00647, 5.62071, 143.54526] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 12, 12] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 12, 12] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 75] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 75] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing6": { + "rotation": { + "0.0": { + "post": { + "vector": [-3.00647, -5.62071, -143.54526] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-3.00647, -5.62071, -143.54526] + }, + "lerp_mode": "catmullrom" + } + } + }, + "hair": { + "rotation": { + "0.0": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "hair2": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "hair3": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5417": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "hair4": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0833": { + "post": { + "vector": [8.75, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "r_hair": { + "rotation": { + "0.0": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "r_hair2": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "r_hair3": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5417": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "r_hair4": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0833": { + "post": { + "vector": [8.75, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "l_hair": { + "rotation": { + "0.0": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "l_hair2": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "l_hair3": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5417": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "l_hair4": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0833": { + "post": { + "vector": [8.75, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_mustache": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -50] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -60] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -50] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_mustache2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -17.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -17.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_mustache3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_mustache4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_mustache": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 50] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 60] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 50] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_mustache2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 17.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_mustache3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_mustache4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -17.5] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Queen": { + "position": { + "vector": [0, -15, 0] + } + }, + "R_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [35.20482, 34.48554, 21.38796] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [35.20482, 34.48554, 21.38796] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [35.20482, 34.48554, 21.38796] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [-15.34721, -12.06754, 3.28396] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-25.34721, -12.06754, 3.28396] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-15.34721, -12.06754, 3.28396] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_head": { + "rotation": { + "0.0": { + "post": { + "vector": [5.12076, -12.45167, -1.10693] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [-0.68188, -12.79354, 16.81445] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-7.37924, -12.45167, -1.10693] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-3.97018, -13.02421, -10.40698] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [5.12076, -12.45167, -1.10693] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [35.20482, -34.48554, -21.38796] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [35.20482, -34.48554, -21.38796] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [35.20482, -34.48554, -21.38796] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [-15.34721, 12.06754, -3.28396] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-25.34721, 12.06754, -3.28396] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-15.34721, 12.06754, -3.28396] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_head": { + "rotation": { + "0.0": { + "post": { + "vector": [5.12076, 12.45167, 1.10693] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-7.37924, 12.45167, 1.10693] + }, + "lerp_mode": "catmullrom" + }, + "2.4167": { + "post": { + "vector": [-8.97738, 10.17252, -16.57798] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [5.12076, 12.45167, 1.10693] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "walk": { + "loop": true, + "animation_length": 2, + "bones": { + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck4": { + "rotation": { + "vector": [-15, 0, 0] + } + }, + "head": { + "rotation": { + "vector": [15, 0, 0] + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [7.87, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [22.36, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [25.07, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [7.87, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_tight": { + "rotation": { + "0.0": { + "vector": [27.5, 0, 0] + }, + "0.375": { + "pre": { + "vector": [17.81, 0, 0] + }, + "post": { + "vector": [17.81, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-29.06, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [-45, 0, 0] + }, + "2.0": { + "vector": [27.5, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, -18, 12] + }, + "0.25": { + "pre": { + "vector": [0, -8.65, 7.96] + }, + "post": { + "vector": [0, -8.65, 7.96] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0.69, 3.64] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 2.51, -5.22] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [0, -6.5, -7] + }, + "1.125": { + "vector": [0, -1.81, -4.12] + }, + "1.25": { + "vector": [0, 1.38, -1.25] + }, + "1.375": { + "vector": [0, 2.9, 1.63] + }, + "1.5": { + "vector": [0, 2.42, 3.5] + }, + "1.625": { + "vector": [0, -0.06, 5.38] + }, + "1.75": { + "vector": [0, -4.54, 7.25] + }, + "1.875": { + "vector": [0, -10.77, 10.13] + }, + "2.0": { + "vector": [0, -18, 12] + } + } + }, + "R_leg": { + "rotation": { + "0.0": { + "vector": [5, 0, 0] + }, + "0.5": { + "pre": { + "vector": [-36.25, 0, 0] + }, + "post": { + "vector": [-36.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [-17.5, 0, 0] + }, + "2.0": { + "vector": [5, 0, 0] + } + } + }, + "R_foot": { + "rotation": { + "0.0": { + "vector": [-32.5, 0, 0] + }, + "0.5417": { + "pre": { + "vector": [57.92, 0, 0] + }, + "post": { + "vector": [57.92, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [59.28, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [62.5, 0, 0] + }, + "2.0": { + "vector": [-32.5, 0, 0] + } + } + }, + "L_tight": { + "rotation": { + "0.0": { + "vector": [-45, 0, 0] + }, + "1.0": { + "vector": [27.5, 0, 0] + }, + "1.375": { + "pre": { + "vector": [17.81, 0, 0] + }, + "post": { + "vector": [17.81, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7917": { + "post": { + "vector": [-29.06, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [-45, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, -6.5, -7] + }, + "0.125": { + "vector": [0, -1.81, -4.12] + }, + "0.25": { + "vector": [0, 1.38, -1.25] + }, + "0.375": { + "vector": [0, 2.9, 1.63] + }, + "0.5": { + "vector": [0, 2.42, 3.5] + }, + "0.625": { + "vector": [0, -0.06, 5.38] + }, + "0.75": { + "vector": [0, -4.54, 7.25] + }, + "0.875": { + "vector": [0, -10.77, 10.13] + }, + "1.0": { + "vector": [0, -18, 12] + }, + "1.25": { + "pre": { + "vector": [0, -8.65, 7.96] + }, + "post": { + "vector": [0, -8.65, 7.96] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [0, 0.69, 3.64] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [0, 2.51, -5.22] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [0, -6.5, -7] + } + } + }, + "L_leg": { + "rotation": { + "0.0": { + "vector": [-17.5, 0, 0] + }, + "1.0": { + "vector": [5, 0, 0] + }, + "1.5": { + "pre": { + "vector": [-36.25, 0, 0] + }, + "post": { + "vector": [-36.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [-17.5, 0, 0] + } + } + }, + "L_foot": { + "rotation": { + "0.0": { + "vector": [62.5, 0, 0] + }, + "1.0": { + "vector": [-32.5, 0, 0] + }, + "1.5417": { + "pre": { + "vector": [57.92, 0, 0] + }, + "post": { + "vector": [57.92, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [59.28, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [62.5, 0, 0] + } + } + }, + "Torso": { + "rotation": { + "0.0": { + "post": { + "vector": [3.72, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [5.16, 2.46, 1.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [7.5, 1, 4.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [5.64, -0.56, 4.63] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [3.52, -2, 2] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [3.72, -2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [5.16, -2.46, -1.5] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [7.5, -1, -4.5] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [5.64, 0.56, -4.63] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [3.52, 2, -2] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [3.72, 2.5, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1.77, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "vector": [0, -4.03, 0] + }, + "0.125": { + "vector": [0, 1.5, 0] + }, + "0.25": { + "pre": { + "vector": [0, -1.42, 0] + }, + "post": { + "vector": [0, -1.42, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [0, 0, 0] + }, + "1.0833": { + "vector": [0, -4.03, 0] + }, + "1.125": { + "vector": [0, 1.5, 0] + }, + "1.25": { + "pre": { + "vector": [0, -1.42, 0] + }, + "post": { + "vector": [0, -1.42, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7917": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -1.77, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail": { + "rotation": { + "0.0": { + "post": { + "vector": [-15, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-15, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-15, 15, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 1.25, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 1.25, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -1.39, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 12.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [0, -12.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -1.39, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -11.67, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 17.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, -17.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -11.67, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0.33008, 0.9171, 59.96473] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 52.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 47.5] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 52.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0.33008, 0.9171, 59.96473] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing2": { + "rotation": { + "vector": [0, -7.5, -90] + } + }, + "R_wing3": { + "rotation": { + "vector": [0, 22.5, 0] + } + }, + "L_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0.33008, -0.9171, -59.96473] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -52.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -47.5] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, -52.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0.33008, -0.9171, -59.96473] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing2": { + "rotation": { + "vector": [0, 7.5, 90] + } + }, + "L_wing3": { + "rotation": { + "vector": [0, -22.5, 0] + } + }, + "R_wing4": { + "rotation": { + "0.0": { + "vector": [7.5, -11.5, -11.5] + }, + "1.0": { + "vector": [15, 21, -31.5] + }, + "1.3333": { + "pre": { + "vector": [20.56, 17.57, -8.81] + }, + "post": { + "vector": [20.56, 17.57, -8.81] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [5.39, -13.6, -1.38] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [7.5, -11.5, -11.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing5": { + "rotation": { + "0.0": { + "vector": [-12.5, 5, -42.5] + }, + "0.5": { + "vector": [-18.75, 2.5, -21.25] + }, + "1.0": { + "vector": [-25, -5, -7.5] + }, + "1.3333": { + "pre": { + "vector": [-8.24, 11.3, -42.13] + }, + "post": { + "vector": [-8.24, 11.3, -42.13] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [-14.51, 5.99, -45.71] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-12.5, 5, -42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing6": { + "rotation": { + "0.0": { + "vector": [0, 17.5, 105] + }, + "1.0": { + "vector": [0, 30, 75] + }, + "1.4167": { + "pre": { + "vector": [0, 22.43, 48.67] + }, + "post": { + "vector": [0, 22.43, 48.67] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 17.5, 105] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing4": { + "rotation": { + "0.0": { + "vector": [15, -21, 31.5] + }, + "0.3333": { + "pre": { + "vector": [20.56, -17.57, 8.81] + }, + "post": { + "vector": [20.56, -17.57, 8.81] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [5.39, 13.6, 1.38] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [7.5, 11.5, 11.5] + }, + "2.0": { + "vector": [15, -21, 31.5] + } + } + }, + "L_wing5": { + "rotation": { + "0.0": { + "vector": [-25, 5, 7.5] + }, + "0.3333": { + "pre": { + "vector": [-8.24, -11.3, 42.13] + }, + "post": { + "vector": [-8.24, -11.3, 42.13] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [-14.51, -5.99, 45.71] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [-12.5, -5, 42.5] + }, + "1.5": { + "vector": [-18.75, -2.5, 21.25] + }, + "2.0": { + "vector": [-25, 5, 7.5] + } + } + }, + "L_wing6": { + "rotation": { + "0.0": { + "vector": [0, -30, -75] + }, + "0.4167": { + "pre": { + "vector": [0, -22.43, -48.67] + }, + "post": { + "vector": [0, -22.43, -48.67] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "vector": [0, -17.5, -105] + }, + "2.0": { + "vector": [0, -30, -75] + } + } + }, + "R_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [12.44278, 9.97871, -0.65545] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [12.44278, 9.97871, -0.65545] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [12.44278, 9.97871, -0.65545] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [12.44278, 9.97871, -0.65545] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [12.44278, 9.97871, -0.65545] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [-15.65754, 10.05617, -7.46305] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-15.65754, 10.05617, -7.46305] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-15.65754, 10.05617, -7.46305] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-15.65754, 10.05617, -7.46305] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-15.65754, 10.05617, -7.46305] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [-15.01063, 7.49826, -0.16223] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-15.01063, 7.49826, -0.16223] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-15.01063, 7.49826, -0.16223] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-15.01063, 7.49826, -0.16223] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-15.01063, 7.49826, -0.16223] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_head": { + "rotation": { + "0.0": { + "post": { + "vector": [15.32111, -12.13531, -3.02012] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [15.32111, -12.13531, -3.02012] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15.32111, -12.13531, -3.02012] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [15.32111, -12.13531, -3.02012] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [15.32111, -12.13531, -3.02012] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [7.87, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [22.36, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [25.07, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [7.87, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [12.44278, -9.97871, 0.65545] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [12.44278, -9.97871, 0.65545] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [12.44278, -9.97871, 0.65545] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [12.44278, -9.97871, 0.65545] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [12.44278, -9.97871, 0.65545] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [-15.65754, -10.05617, 7.46305] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-15.65754, -10.05617, 7.46305] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-15.65754, -10.05617, 7.46305] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-15.65754, -10.05617, 7.46305] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-15.65754, -10.05617, 7.46305] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [-15.01063, -7.49826, 0.16223] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-15.01063, -7.49826, 0.16223] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-15.01063, -7.49826, 0.16223] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-15.01063, -7.49826, 0.16223] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-15.01063, -7.49826, 0.16223] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_head": { + "rotation": { + "0.0": { + "post": { + "vector": [15.32111, 12.13531, 3.02012] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [15.32111, 12.13531, 3.02012] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [15.32111, 12.13531, 3.02012] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [15.32111, 12.13531, 3.02012] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [15.32111, 12.13531, 3.02012] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [7.87, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [22.36, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [25.07, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [7.87, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "fly": { + "loop": true, + "animation_length": 2, + "bones": { + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [21.4, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_tight": { + "rotation": { + "vector": [72.5, 0, 0] + } + }, + "R_leg": { + "rotation": { + "vector": [-25, 0, 0] + } + }, + "R_foot": { + "rotation": { + "vector": [67.5, 0, 0] + } + }, + "L_tight": { + "rotation": { + "vector": [72.5, 0, 0] + } + }, + "L_leg": { + "rotation": { + "vector": [-25, 0, 0] + } + }, + "L_foot": { + "rotation": { + "vector": [67.5, 0, 0] + } + }, + "Tail": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [1.88, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [1.88, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [1.67, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [1.67, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "body": { + "rotation": { + "0.0": { + "post": { + "vector": [0.63, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0.63, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 30, 15] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 61.08, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 67, -7] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 46.93, 5.44] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 30, 15] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [-16.18, -8.69, 48.09] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-20, -20, 7.5] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [5, -20, -50] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [26.13, -5.83, -55.07] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [30, 16.14, -12.5] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [0, 15, 50] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-16.18, -8.69, 48.09] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 17.35] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 29.94] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 0, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, -60] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, 7.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 17.35] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 9.75] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [0, 0, -7.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 9.75] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [-16.18, 8.69, -48.09] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-20, 20, -7.5] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [5, 20, 50] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [26.13, 5.83, 55.07] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [30, -16.14, 12.5] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [0, -15, -50] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-16.18, 8.69, -48.09] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -17.35] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, -29.94] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 0, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, 60] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, -7.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -17.35] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -9.75] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [0, 0, 7.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -9.75] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing4": { + "rotation": { + "0.0": { + "post": { + "vector": [-20, -20, -7.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [5, -20, -65] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [26.13, -5.83, -70.07] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [30, 16.14, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [0, 15, 35] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [-16.18, -8.69, 33.09] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-20, -20, -7.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, 29.94] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "1.2083": { + "post": { + "vector": [0, 0, -60] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [0, 0, 7.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing6": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing4": { + "rotation": { + "0.0": { + "post": { + "vector": [-20, 20, 7.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [5, 20, 65] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [26.13, 5.83, 70.07] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [30, -16.14, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [0, -15, -35] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [-16.18, 8.69, -33.09] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-20, 20, 7.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, -29.94] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "1.2083": { + "post": { + "vector": [0, 0, 60] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [0, 0, -7.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing6": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.0519, 22.49857, -0.26095] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-5.41193, 22.40868, -2.07936] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [2.68845, 22.48105, 0.94821] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-0.0519, 22.49857, -0.26095] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [21.4, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.0519, -22.49857, 0.26095] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-5.41193, -22.40868, 2.07936] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [2.68845, -22.48105, -0.94821] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-0.0519, -22.49857, 0.26095] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [21.4, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "wing_gust": { + "animation_length": 2.75, + "bones": { + "neck": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "pre": { + "vector": [0.77, 0, 0] + }, + "post": { + "vector": [0.77, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.3333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [0, 0, 0] + } + } + }, + "neck4": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.7917": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "vector": [0, 0, 0] + } + } + }, + "jaw": { + "rotation": { + "0.8333": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_jaw": { + "rotation": { + "0.8333": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_jaw": { + "rotation": { + "0.8333": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Torso": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2083": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [-35.12, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [-47.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [-52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [-57.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [-52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.1667": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "vector": [0, 0, 0] + } + } + }, + "R_wing": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "vector": [0, 0, 0] + }, + "0.3333": { + "pre": { + "vector": [0, 0, -55] + }, + "post": { + "vector": [0, 0, -55] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, -40] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 7.5] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, -7.5, -87.5] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [0, -20, -115] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, -25, -125] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [0, -20, -115] + }, + "lerp_mode": "catmullrom" + }, + "2.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5417": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.7917": { + "vector": [0, 0, 0] + }, + "1.0": { + "pre": { + "vector": [0, 14, 0] + }, + "post": { + "vector": [0, 14, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 14, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "vector": [0, 0, 0] + } + } + }, + "R_wing2": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "pre": { + "vector": [0, 0, 70] + }, + "post": { + "vector": [0, 0, 70] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 90] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, 62.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 0, 110] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, 145] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 47.34] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [0, 0, 35] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, 35] + }, + "lerp_mode": "catmullrom" + }, + "2.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.4167": { + "vector": [0, 0, 0] + } + } + }, + "R_wing3": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [0, 0, -157.5] + }, + "post": { + "vector": [0, 0, -157.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, -100] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, -70] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, -130] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 0, -113.66] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, -55] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 5.71] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, -26.1] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, -120] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, -147.5] + }, + "lerp_mode": "catmullrom" + }, + "2.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5417": { + "vector": [0, 0, 0] + } + } + }, + "L_wing": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "vector": [0, 0, 0] + }, + "0.3333": { + "pre": { + "vector": [0, 0, 55] + }, + "post": { + "vector": [0, 0, 55] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, 40] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, -7.5] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 7.5, 87.5] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [0, 20, 115] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 25, 125] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [0, 20, 115] + }, + "lerp_mode": "catmullrom" + }, + "2.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5417": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.7917": { + "vector": [0, 0, 0] + }, + "1.0": { + "pre": { + "vector": [0, 14, 0] + }, + "post": { + "vector": [0, 14, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 14, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "vector": [0, 0, 0] + } + } + }, + "L_wing2": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "pre": { + "vector": [0, 0, -70] + }, + "post": { + "vector": [0, 0, -70] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, -90] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, -62.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 0, -110] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, -145] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, -47.34] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [0, 0, -35] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, -35] + }, + "lerp_mode": "catmullrom" + }, + "2.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.4167": { + "vector": [0, 0, 0] + } + } + }, + "L_wing3": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [0, 0, 157.5] + }, + "post": { + "vector": [0, 0, 157.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 100] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 70] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 130] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 0, 113.66] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 55] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -5.71] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 26.1] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, 120] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, 147.5] + }, + "lerp_mode": "catmullrom" + }, + "2.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5417": { + "vector": [0, 0, 0] + } + } + }, + "R_wing4": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2917": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 45, 80] + }, + "lerp_mode": "catmullrom" + }, + "1.7917": { + "post": { + "vector": [0, 45, 80] + }, + "lerp_mode": "catmullrom" + }, + "2.2917": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 22, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 22, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 27, 14] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [0, 31, 17] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [0, 31, 17] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [0, 27, 14] + }, + "lerp_mode": "catmullrom" + }, + "2.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing5": { + "rotation": { + "0.3333": { + "vector": [0, 0, 0] + }, + "0.5833": { + "pre": { + "vector": [0, 0, -97.5] + }, + "post": { + "vector": [0, 0, -97.5] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, -97.5] + }, + "lerp_mode": "catmullrom" + }, + "2.2917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [0, 0, 0] + } + } + }, + "R_wing6": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.375": { + "vector": [0, 0, 0] + }, + "0.5833": { + "pre": { + "vector": [0, 0, 27.5] + }, + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "2.3333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [0, 0, 0] + } + }, + "position": { + "vector": [0, 0, 0] + } + }, + "L_wing4": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2917": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -45, -80] + }, + "lerp_mode": "catmullrom" + }, + "1.7917": { + "post": { + "vector": [0, -45, -80] + }, + "lerp_mode": "catmullrom" + }, + "2.2917": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 22, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 22, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 27, 14] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [0, 31, 17] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [0, 31, 17] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [0, 27, 14] + }, + "lerp_mode": "catmullrom" + }, + "2.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing5": { + "rotation": { + "0.3333": { + "vector": [0, 0, 0] + }, + "0.5833": { + "pre": { + "vector": [0, 0, 97.5] + }, + "post": { + "vector": [0, 0, 97.5] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, 97.5] + }, + "lerp_mode": "catmullrom" + }, + "2.2917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [0, 0, 0] + } + } + }, + "L_wing6": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.375": { + "vector": [0, 0, 0] + }, + "0.5833": { + "pre": { + "vector": [0, 0, -27.5] + }, + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "2.3333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [0, 0, 0] + } + }, + "position": { + "vector": [0, 0, 0] + } + }, + "R_neck": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "pre": { + "vector": [0.77, 0, 0] + }, + "post": { + "vector": [0.77, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.3333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [0, 0, 0] + } + } + }, + "R_neck3": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.7917": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "vector": [0, 0, 0] + } + } + }, + "L_neck": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "pre": { + "vector": [0.77, 0, 0] + }, + "post": { + "vector": [0.77, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.3333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "vector": [0, 0, 0] + } + } + }, + "L_neck3": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.7917": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.2083": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "vector": [0, 0, 0] + } + } + } + } + }, + "stomp": { + "animation_length": 1.25, + "bones": { + "R_wing4": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.125": { + "pre": { + "vector": [0, 0, 22.5] + }, + "post": { + "vector": [0, 0, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, -12.5, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, -12.5, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [0, 12, 0] + }, + "post": { + "vector": [0, 12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 21, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, -12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 8, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, -6, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "vector": [0, 0, 0] + } + } + }, + "L_wing4": { + "rotation": { + "0.5": { + "vector": [0, 0, 0] + }, + "0.625": { + "pre": { + "vector": [0, 0, -22.5] + }, + "post": { + "vector": [0, 0, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [0, 12.5, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 12.5, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.5": { + "vector": [0, 0, 0] + }, + "0.5833": { + "pre": { + "vector": [0, 12, 0] + }, + "post": { + "vector": [0, 12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 21, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, -12, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 8, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, -6, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "vector": [0, 0, 0] + } + } + }, + "body": { + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.125": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "vector": [0, 0, 0] + }, + "0.2917": { + "vector": [0, -12, 0] + }, + "0.3333": { + "vector": [0, 9, 0] + }, + "0.375": { + "vector": [0, -6, 0] + }, + "0.4583": { + "vector": [0, 4, 0] + }, + "0.5417": { + "pre": { + "vector": [0, -3, 0] + }, + "post": { + "vector": [0, -3, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "vector": [0, 0, 0] + }, + "0.7917": { + "vector": [0, -12, 0] + }, + "0.8333": { + "vector": [0, 9, 0] + }, + "0.875": { + "vector": [0, -6, 0] + }, + "0.9583": { + "vector": [0, 4, 0] + }, + "1.0417": { + "pre": { + "vector": [0, -3, 0] + }, + "post": { + "vector": [0, -3, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "vector": [0, 0, 0] + }, + "1.25": { + "vector": [0, 0, 0] + } + } + } + } + }, + "minion_spawn": { + "animation_length": 2.9167, + "bones": { + "neck": { + "rotation": { + "0.25": { + "vector": [0, 0, 0] + }, + "0.3333": { + "pre": { + "vector": [12.5, 0, 0] + }, + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [-40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "vector": [0, 0, 0] + } + } + }, + "neck3": { + "rotation": { + "0.25": { + "vector": [0, 0, 0] + }, + "0.375": { + "pre": { + "vector": [25, 0, 0] + }, + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.3333": { + "vector": [0, 0, 0] + } + } + }, + "head": { + "rotation": { + "0.25": { + "vector": [0, 0, 0] + }, + "0.4167": { + "pre": { + "vector": [37.5, 0, 0] + }, + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.6667": { + "vector": [0, 0, 0] + } + } + }, + "jaw": { + "rotation": { + "0.25": { + "vector": [0, 0, 0] + }, + "0.4583": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4583": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.2083": { + "vector": [0, 0, 0] + } + } + }, + "R_jaw": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2083": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2083": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.9583": { + "vector": [0, 0, 0] + } + } + }, + "L_jaw": { + "rotation": { + "0.5": { + "vector": [0, 0, 0] + }, + "0.7083": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.4583": { + "vector": [0, 0, 0] + } + } + }, + "Torso": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [-10, 0, 0] + }, + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.4167": { + "vector": [0, 0, 0] + } + } + }, + "Tail": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.375": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.9167": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.375": { + "vector": [0, 0, 0] + } + } + }, + "hair": { + "rotation": { + "0.25": { + "vector": [0, 0, 0] + }, + "0.4167": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [6, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5833": { + "vector": [0, 0, 0] + } + } + }, + "r_hair": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [6, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.3333": { + "vector": [0, 0, 0] + } + } + }, + "l_hair": { + "rotation": { + "0.5": { + "vector": [0, 0, 0] + }, + "0.6667": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.6667": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [6, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.8333": { + "vector": [0, 0, 0] + } + } + }, + "body": { + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.125": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 7, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, -7, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 7, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -7, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 3, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [0, -3, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 1, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "vector": [0, 0, 0] + } + } + }, + "R_neck": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "pre": { + "vector": [12.5, 0, 0] + }, + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [-40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "vector": [0, 0, 0] + } + } + }, + "R_neck2": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.125": { + "pre": { + "vector": [25, 0, 0] + }, + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2083": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0833": { + "vector": [0, 0, 0] + } + } + }, + "R_head": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "pre": { + "vector": [37.5, 0, 0] + }, + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.4167": { + "vector": [0, 0, 0] + } + } + }, + "L_neck": { + "rotation": { + "0.5": { + "vector": [0, 0, 0] + }, + "0.5833": { + "pre": { + "vector": [12.5, 0, 0] + }, + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [-40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [-40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5417": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7917": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.125": { + "vector": [0, 0, 0] + } + } + }, + "L_neck2": { + "rotation": { + "0.5": { + "vector": [0, 0, 0] + }, + "0.625": { + "pre": { + "vector": [25, 0, 0] + }, + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5833": { + "vector": [0, 0, 0] + } + } + }, + "L_head": { + "rotation": { + "0.5": { + "vector": [0, 0, 0] + }, + "0.6667": { + "pre": { + "vector": [37.5, 0, 0] + }, + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.8333": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.9167": { + "vector": [0, 0, 0] + } + } + } + } + }, + "bite_1": { + "animation_length": 1, + "bones": { + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-7.5, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-7.5, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-15, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-15, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-1, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-0.07, 0, 5.35] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-1.28, 0, 5.27] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-0.22, 0, 5.13] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-1, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-3.05641, 0.69222, -3.91506] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.625": { + "vector": [0, -1.6, 0] + }, + "1.0": { + "vector": [0, 0, 0] + } + } + } + } + }, + "bite_2": { + "animation_length": 1, + "bones": { + "R_head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-7.5, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-7.5, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-15, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-15, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-1, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-0.07, 0, 5.35] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-1.28, 0, 5.27] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-0.22, 0, 5.13] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-1, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-3.05641, 0.69222, -3.91506] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.625": { + "vector": [0, -1.6, 0] + }, + "1.0": { + "vector": [0, 0, 0] + } + } + } + } + }, + "bite_3": { + "animation_length": 1, + "bones": { + "L_head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-7.5, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-7.5, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-15, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-15, 0, 17.5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-1, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-0.07, 0, 5.35] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-1.28, 0, 5.27] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-0.22, 0, 5.13] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-1, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-3.05641, 0.69222, -3.91506] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.625": { + "vector": [0, -1.6, 0] + }, + "1.0": { + "vector": [0, 0, 0] + } + } + } + } + }, + "shoot_1": { + "animation_length": 1.25, + "bones": { + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "vector": [0, 0, 0] + }, + "0.2083": { + "vector": [1, 0, 0] + }, + "0.25": { + "vector": [-0.14, 0, 0] + }, + "0.2917": { + "vector": [0.88, 0, 0] + }, + "0.3333": { + "vector": [-0.3, 0, 0] + }, + "0.5": { + "vector": [0, 0, 0] + }, + "0.5833": { + "vector": [0, 0, 13] + }, + "1.25": { + "vector": [0, 0, 0] + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.4167": { + "vector": [0, 0, 0] + }, + "0.5417": { + "vector": [0, 0, 14] + }, + "0.625": { + "vector": [0, 0, 0] + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "shoot_2": { + "animation_length": 1.25, + "bones": { + "R_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "vector": [0, 0, 0] + }, + "0.2083": { + "vector": [1, 0, 0] + }, + "0.25": { + "vector": [-0.14, 0, 0] + }, + "0.2917": { + "vector": [0.88, 0, 0] + }, + "0.3333": { + "vector": [-0.3, 0, 0] + }, + "0.5": { + "vector": [0, 0, 0] + }, + "0.5833": { + "vector": [0, 0, 13] + }, + "1.25": { + "vector": [0, 0, 0] + } + } + }, + "R_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.4167": { + "vector": [0, 0, 0] + }, + "0.5417": { + "vector": [0, 0, 14] + }, + "0.625": { + "vector": [0, 0, 0] + } + } + }, + "R_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "shoot_3": { + "animation_length": 1.25, + "bones": { + "L_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "vector": [0, 0, 0] + }, + "0.2083": { + "vector": [-1, 0, 0] + }, + "0.25": { + "vector": [0.14, 0, 0] + }, + "0.2917": { + "vector": [-0.88, 0, 0] + }, + "0.3333": { + "vector": [0.3, 0, 0] + }, + "0.5": { + "vector": [0, 0, 0] + }, + "0.5833": { + "vector": [0, 0, 13] + }, + "1.25": { + "vector": [0, 0, 0] + } + } + }, + "L_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.4167": { + "vector": [0, 0, 0] + }, + "0.5417": { + "vector": [0, 0, 14] + }, + "0.625": { + "vector": [0, 0, 0] + } + } + }, + "L_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "death": { + "animation_length": 1.25, + "bones": { + "neck": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck4": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-4.8493, 11.53486, 67.00992] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-4.95611, 16.51659, 66.56961] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-4.8493, 11.53486, 67.00992] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_tight": { + "rotation": { + "0.0": { + "post": { + "vector": [17.5, -10, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [0, 9, 12] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 18] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 18] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_tight": { + "rotation": { + "0.0": { + "post": { + "vector": [17.5, 10, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -8] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, -8] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_leg": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Torso": { + "rotation": { + "0.0": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-57.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-57.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail4": { + "rotation": { + "0.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "body": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.25": { + "vector": [0, 0, 0] + }, + "0.4167": { + "vector": [57.5, 0, 0] + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 7, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 7, 79] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 7, 79] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, -18, 3] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, -33, -17] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -18, -17] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, -23, -17] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, -18, -17] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 65] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 85] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 85] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, -12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -102.5] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -50] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, -50] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, -15] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -5.31] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, -15] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 80] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 37.5] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 37.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 36.88] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, 27.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -65] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -85] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, -85] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, 12.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 102.5] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 50] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 50] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 15] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 5.31] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, 15] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -80] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -37.5] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, -37.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -36.88] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, -27.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-17.5, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-42.5, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-59.51995, 11.86554, -21.75656] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 12, 17] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 44, 35] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -75] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -35] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, -7.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_wing6": { + "rotation": { + "0.0": { + "post": { + "vector": [-3.00647, 5.62071, 143.54526] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 75] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 7.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-17.5, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-42.5, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-59.51995, -11.86554, 21.75656] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 12, 17] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 44, 35] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 75] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 35] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 7.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "L_wing6": { + "rotation": { + "0.0": { + "post": { + "vector": [-3.00647, -5.62071, -143.54526] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -75] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, -7.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_head": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-4.8493, 11.53486, 67.00992] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-4.95611, 16.51659, 66.56961] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-4.8493, 11.53486, 67.00992] + }, + "lerp_mode": "catmullrom" + } + } + }, + "R_jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left2": { + "rotation": { + "0.0": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "neck_left3": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "head_left": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-4.8493, 11.53486, 67.00992] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-4.95611, 16.51659, 66.56961] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-4.8493, 11.53486, 67.00992] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw_left": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [52.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/animations/royal_assailant_staff.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/royal_assailant_staff.animation.json new file mode 100644 index 00000000..472f4701 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/royal_assailant_staff.animation.json @@ -0,0 +1,238 @@ +{ + "format_version": "1.8.0", + "animations": { + "idle": { + "loop": true, + "animation_length": 1, + "bones": { + "eye": { + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "0.5": { + "vector": [1.02, 1.02, 1.02], + "easing": "easeInOutQuad" + }, + "1.0": { + "vector": [1, 1, 1] + } + } + }, + "wings": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.3333": { + "vector": [-5, 0, 0] + }, + "0.6667": { + "vector": [5, 0, 0] + }, + "1.0": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0.05] + }, + "0.3333": { + "vector": [0, 0, 0.2] + }, + "0.6667": { + "vector": [0, 0, -0.3] + }, + "1.0": { + "vector": [0, 0, 0.05] + } + } + }, + "right_wing": { + "rotation": { + "0.0": { + "vector": [0, 10, 0] + }, + "0.5": { + "vector": [0, -10, 0], + "easing": "easeInOutSine" + }, + "1.0": { + "vector": [0, 10, 0], + "easing": "easeInOutSine" + } + } + }, + "left_wing": { + "rotation": { + "0.0": { + "vector": [0, -10, 0] + }, + "0.5": { + "vector": [0, 10, 0], + "easing": "easeInOutSine" + }, + "1.0": { + "vector": [0, -10, 0], + "easing": "easeInOutSine" + } + } + } + } + }, + "use": { + "animation_length": 0.75, + "bones": { + "eye": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.125": { + "vector": [0, 10, 0], + "easing": "easeInOutSine" + }, + "0.625": { + "vector": [0, -360, 0], + "easing": "easeOutQuart" + }, + "0.6667": { + "pre": [0, -360, 0], + "post": [0, 0, 0] + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "0.0417": { + "vector": [0.8, 0.8, 0.8], + "easing": "easeInOutSine" + }, + "0.125": { + "vector": [1.1, 1.1, 1.1], + "easing": "easeOutQuart" + }, + "0.6667": { + "vector": [1, 1, 1], + "easing": "easeInOutSine" + } + } + }, + "wings": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0833": { + "vector": [-5, 0, 0] + }, + "0.1667": { + "vector": [0, 0, 0] + }, + "0.25": { + "vector": [-5, 0, 0] + }, + "0.375": { + "vector": [0, 0, 0] + }, + "0.5": { + "vector": [-5, 0, 0] + }, + "0.75": { + "vector": [0, 0, 0], + "easing": "easeInOutSine" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0.05] + }, + "0.0833": { + "vector": [0, 0, 0.2] + }, + "0.1667": { + "vector": [0, 0, 0.05] + }, + "0.25": { + "vector": [0, 0, 0.2] + }, + "0.375": { + "vector": [0, 0, 0.05] + }, + "0.5": { + "vector": [0, 0, 0.2] + }, + "0.75": { + "vector": [0, 0, 0.05], + "easing": "easeInOutSine" + } + } + }, + "right_wing": { + "rotation": { + "0.0": { + "vector": [0, 10, 0] + }, + "0.0833": { + "vector": [0, -10, 0], + "easing": "easeInOutSine" + }, + "0.1667": { + "vector": [0, 10, 0], + "easing": "easeInOutSine" + }, + "0.25": { + "vector": [0, -10, 0], + "easing": "easeInOutSine" + }, + "0.375": { + "vector": [0, 10, 0], + "easing": "easeInOutSine" + }, + "0.5": { + "vector": [0, -10, 0], + "easing": "easeInOutSine" + }, + "0.75": { + "vector": [0, 10, 0], + "easing": "easeOutCubic" + } + } + }, + "left_wing": { + "rotation": { + "0.0": { + "vector": [0, -10, 0] + }, + "0.0833": { + "vector": [0, 10, 0], + "easing": "easeInOutSine" + }, + "0.1667": { + "vector": [0, -10, 0], + "easing": "easeInOutSine" + }, + "0.25": { + "vector": [0, 10, 0], + "easing": "easeInOutSine" + }, + "0.375": { + "vector": [0, -10, 0], + "easing": "easeInOutSine" + }, + "0.5": { + "vector": [0, 10, 0], + "easing": "easeInOutSine" + }, + "0.75": { + "vector": [0, -10, 0], + "easing": "easeOutCubic" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/animations/vortex.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/vortex.animation.json new file mode 100644 index 00000000..7e3aa723 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/vortex.animation.json @@ -0,0 +1,1440 @@ +{ + "format_version": "1.8.0", + "animations": { + "idle": { + "loop": true, + "animation_length": 4, + "bones": { + "head": { + "rotation": { + "vector": ["5-math.cos(q.anim_time*90-50)*5", 0, 0] + }, + "position": { + "vector": [0, "math.cos(q.anim_time*90+30)*3+10", 0] + } + }, + "right_wing": { + "rotation": { + "vector": ["math.cos(q.anim_time*90+50)*15", "math.cos(q.anim_time*90-60)*30", "22.5+math.cos(q.anim_time*90-30)*10"] + } + }, + "right_wing_bottom": { + "rotation": { + "vector": ["-math.cos(q.anim_time*90+50)*15", "math.cos(q.anim_time*90-60)*30", "-22.5+math.cos(q.anim_time*90-30)*10"] + } + }, + "left_wing_bottom": { + "rotation": { + "vector": ["-math.cos(q.anim_time*90+50)*15", "-math.cos(q.anim_time*90-60)*30", "22.5-math.cos(q.anim_time*90-30)*10"] + } + }, + "left_wing": { + "rotation": { + "vector": ["math.cos(q.anim_time*90+50)*15", "-math.cos(q.anim_time*90-60)*30", "-22.5-math.cos(q.anim_time*90-30)*10"] + } + }, + "clouds": { + "rotation": { + "vector": [0, "-q.anim_time*90", "math.cos(q.anim_time*90)*15"] + } + } + } + }, + "walk": { + "loop": true, + "animation_length": 2, + "bones": { + "head": { + "rotation": { + "vector": ["17.5-math.cos(q.anim_time*90*2-90)*5", 0, 0] + }, + "position": { + "vector": [0, "math.cos(q.anim_time*90*2)*4+14", "math.cos(q.anim_time*90*2+40)*6"] + } + }, + "right_wing": { + "rotation": { + "vector": ["30-math.cos(q.anim_time*90*2-110)*25", "math.cos(q.anim_time*90*2-30)*30", "35+math.cos(q.anim_time*90*2-80)*20"] + } + }, + "right_wing_bottom": { + "rotation": { + "vector": ["30+math.cos(q.anim_time*90*2-110)*25", "math.cos(q.anim_time*90*2-30)*30", "-35+math.cos(q.anim_time*90*2-80)*20"] + } + }, + "left_wing_bottom": { + "rotation": { + "vector": ["30+math.cos(q.anim_time*90*2-110)*25", "-math.cos(q.anim_time*90*2-30)*30", "35-math.cos(q.anim_time*90*2-80)*20"] + } + }, + "left_wing": { + "rotation": { + "vector": ["30-math.cos(q.anim_time*90*2-110)*25", "-math.cos(q.anim_time*90*2-30)*30", "-35-math.cos(q.anim_time*90*2-80)*20"] + } + }, + "clouds": { + "rotation": { + "vector": [0, "-q.anim_time*90*2", "math.cos(q.anim_time*90*2)*15"] + } + } + } + }, + "wind_gust": { + "animation_length": 2, + "bones": { + "head": { + "rotation": { + "0.0": { + "vector": [7.5, 0, 0] + }, + "0.1667": { + "pre": { + "vector": [17.5, 0, 0] + }, + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [15.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [9.3, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9583": { + "post": { + "vector": [-9.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-9.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-2.2, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [5.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [7.5, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, 13, 0] + }, + "0.1667": { + "pre": { + "vector": [0, 15.64, 7.11] + }, + "post": { + "vector": [0, 15.64, 7.11] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 23, 21] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 23, 20] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 10, -14] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0, 10.69, -26.94] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 15, -31] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 17.31, -30.2] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 19, -26] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [0, 17.58, -16.46] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 15.09, -7.32] + }, + "lerp_mode": "catmullrom" + }, + "1.7083": { + "post": { + "vector": [0, 13.62, -2.2] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [0, 13, 0] + } + } + }, + "right_wing": { + "rotation": { + "0.0": { + "vector": [0, 0, 22.5] + }, + "0.0833": { + "pre": { + "vector": [-12.5, -16.56, 23.7] + }, + "post": { + "vector": [-12.5, -16.56, 23.7] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, -45, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [25, -52.5, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-12.5, 45.47, 13.44] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [-22.5, 67.5, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-29.91, 35.98, 22.8] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-25.26, -6.17, 22.04] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [3.5, -47.5, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [23.55, "-67.58+math.cos(q.anim_time*90*32)*7", 27.53] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [30, "-72.5+math.cos(q.anim_time*90*32)*7", 32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [37.5, -85, 37.5] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "post": { + "vector": [0, 0, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [0, 0, 22.5] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.25": { + "pre": { + "vector": [0, -4, -9] + }, + "post": { + "vector": [0, -4, -9] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [3, -0.75, 1.94] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [4, 1, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-1.44, -1.89, -5.25] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [3, -5, -17] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [5, -6, -20] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [4.63, -4.06, -17.19] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [2, -2, -5] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [0, 0, 0] + } + } + }, + "right_wing_bottom": { + "rotation": { + "0.0": { + "vector": [0, 0, -22.5] + }, + "0.0833": { + "pre": { + "vector": [12.5, -16.56, -23.7] + }, + "post": { + "vector": [12.5, -16.56, -23.7] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, -45, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-25, -52.5, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [12.5, 45.47, -13.44] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [22.5, 67.5, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [29.91, 35.98, -22.8] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [25.26, -6.17, -22.04] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [-3.5, -47.5, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [-23.55, "-67.58+math.cos(q.anim_time*90*32)*7", -27.53] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-30, "-72.5+math.cos(q.anim_time*90*32)*7", -32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [-37.5, -85, -37.5] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "post": { + "vector": [0, 0, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [0, 0, -22.5] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.25": { + "pre": { + "vector": [0, 4, -9] + }, + "post": { + "vector": [0, 4, -9] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [3, 0.75, 1.94] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [4, -1, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-1.44, 1.89, -5.25] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [3, 5, -17] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [5, 6, -20] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [4.63, 4.06, -17.19] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [2, 2, -5] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [0, 0, 0] + } + } + }, + "left_wing_bottom": { + "rotation": { + "0.0": { + "vector": [0, 0, 22.5] + }, + "0.0833": { + "pre": { + "vector": [12.5, 16.56, 23.7] + }, + "post": { + "vector": [12.5, 16.56, 23.7] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 45, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-25, 52.5, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [12.5, -45.47, 13.44] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [22.5, -67.5, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [29.91, -35.98, 22.8] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [25.26, 6.17, 22.04] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [-3.5, 47.5, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [-23.55, "67.58-math.cos(q.anim_time*90*32)*7", 27.53] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-30, "72.5-math.cos(q.anim_time*90*32)*7", 32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [-37.5, 85, 37.5] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "post": { + "vector": [0, 0, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [0, 0, 22.5] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.25": { + "pre": { + "vector": [0, 4, -9] + }, + "post": { + "vector": [0, 4, -9] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-3, 0.75, 1.94] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [-4, -1, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [1.44, 1.89, -5.25] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [-3, 5, -17] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [-5, 6, -20] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [-4.63, 4.06, -17.19] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [-2, 2, -5] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [0, 0, 0] + } + } + }, + "left_wing": { + "rotation": { + "0.0": { + "vector": [0, 0, -22.5] + }, + "0.0833": { + "pre": { + "vector": [-12.5, 16.56, -23.7] + }, + "post": { + "vector": [-12.5, 16.56, -23.7] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [0, 45, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [25, 52.5, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-12.5, -45.47, -13.44] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [-22.5, -67.5, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-29.91, -35.98, -22.8] + }, + "lerp_mode": "catmullrom" + }, + "0.7917": { + "post": { + "vector": [-25.26, 6.17, -22.04] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [3.5, 47.5, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [23.55, "67.58-math.cos(q.anim_time*90*32)*7", -27.53] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [30, "72.5-math.cos(q.anim_time*90*32)*7", -32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [37.5, 85, -37.5] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "post": { + "vector": [0, 0, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [0, 0, -22.5] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.25": { + "pre": { + "vector": [0, -4, -9] + }, + "post": { + "vector": [0, -4, -9] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-3, -0.75, 1.94] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [-4, 1, 6] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [1.44, -1.89, -5.25] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [-3, -5, -17] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [-5, -6, -20] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [-4.63, -4.06, -17.19] + }, + "lerp_mode": "catmullrom" + }, + "1.3333": { + "post": { + "vector": [-2, -2, -5] + }, + "lerp_mode": "catmullrom" + }, + "1.5833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "vector": [0, 0, 0] + } + } + }, + "clouds": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.375": { + "vector": [0, "-q.anim_time*90*2", 0] + }, + "0.75": { + "vector": [0, "-q.anim_time*90*6", 0] + }, + "1.5": { + "vector": [0, "-q.anim_time*90*6", 0] + }, + "2.0": { + "vector": [0, -1080, 0] + } + } + } + } + }, + "death": { + "animation_length": 2, + "bones": { + "head": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "pre": { + "vector": [20, 0, 0] + }, + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [47.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [-87.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.2083": { + "vector": [-170, 0, 0] + }, + "1.2917": { + "vector": [-180, 0, 0] + } + }, + "position": { + "0.0": { + "vector": [0, 9, 0] + }, + "0.0833": { + "pre": { + "vector": [0, 19, 9] + }, + "post": { + "vector": [0, 19, 9] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 14, 14] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 34, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 43, 32] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 39, 39] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "vector": [0, -21, 54] + }, + "0.9583": { + "vector": [0, -6, 60] + }, + "1.0833": { + "pre": { + "vector": [0, -7, 70] + }, + "post": { + "vector": [0, -7, 70] + }, + "lerp_mode": "catmullrom" + }, + "1.2083": { + "post": { + "vector": [0, -18, 75] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.5": { + "pre": { + "vector": [1, 1, 1] + }, + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.7083": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + }, + "0.8333": { + "post": { + "vector": [0.5, 0.5, 1.5] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [1.3, 1.3, 0.7] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + }, + "1.2083": { + "post": { + "vector": [1, 1, 1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "right_wing": { + "rotation": { + "0.0": { + "vector": [0, 0, 22.5] + }, + "0.0417": { + "pre": { + "vector": [-22.06, -28.62, 20.45] + }, + "post": { + "vector": [-22.06, -28.62, 20.45] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [30, -45, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [20, 37.5, 55] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-10.63, -7.34, 39.53] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [30, -85, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [30, -70, -15] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -45, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -67.5, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "vector": [0, -67.5, 45] + }, + "0.9583": { + "vector": [0, 22.5, 45] + }, + "1.0417": { + "pre": { + "vector": [0, -67.5, 45] + }, + "post": { + "vector": [0, -67.5, 45] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [-93.66, -59.7, -20.58] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [-90, -45, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [-90, -45, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "1.125": { + "vector": [0, 0, 0] + }, + "1.25": { + "pre": { + "vector": [-4.25, -5.5, -12] + }, + "post": { + "vector": [-4.25, -5.5, -12] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "vector": [-5, -6, -14] + } + } + }, + "right_wing_bottom": { + "rotation": { + "0.0": { + "vector": [0, 0, -22.5] + }, + "0.0417": { + "pre": { + "vector": [22.06, -28.62, -20.45] + }, + "post": { + "vector": [22.06, -28.62, -20.45] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-30, -45, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, 37.5, -55] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [10.63, -7.34, -39.53] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-30, -85, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-30, -70, 15] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -45, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -67.5, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "vector": [0, -67.5, -45] + }, + "0.9583": { + "vector": [0, 22.5, -45] + }, + "1.0417": { + "pre": { + "vector": [0, 67.5, -45] + }, + "post": { + "vector": [0, 67.5, -45] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [93.66, 59.7, 20.58] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [90, 45, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [90, 45, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "1.125": { + "vector": [0, 0, 0] + }, + "1.25": { + "pre": { + "vector": [-4, 16, 11] + }, + "post": { + "vector": [-4, 16, 11] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "vector": [-5, 21, 12] + } + } + }, + "left_wing_bottom": { + "rotation": { + "0.0": { + "vector": [0, 0, 22.5] + }, + "0.0417": { + "pre": { + "vector": [22.06, 28.62, 20.45] + }, + "post": { + "vector": [22.06, 28.62, 20.45] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-30, 45, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [-20, -37.5, 55] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [10.63, 7.34, 39.53] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-30, 85, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-30, 70, -15] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 45, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 67.5, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "vector": [0, 67.5, 45] + }, + "0.9583": { + "vector": [0, -22.5, 45] + }, + "1.0417": { + "pre": { + "vector": [0, -67.5, 45] + }, + "post": { + "vector": [0, -67.5, 45] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [93.66, -59.7, -20.58] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [90, -45, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [90, -45, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "1.125": { + "vector": [0, 0, 0] + }, + "1.25": { + "pre": { + "vector": [4, 16, 11] + }, + "post": { + "vector": [4, 16, 11] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "vector": [5, 21, 12] + } + } + }, + "left_wing": { + "rotation": { + "0.0": { + "vector": [0, 0, -22.5] + }, + "0.0417": { + "pre": { + "vector": [-22.06, 28.62, -20.45] + }, + "post": { + "vector": [-22.06, 28.62, -20.45] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [30, 45, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2083": { + "post": { + "vector": [20, -37.5, -55] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-10.63, 7.34, -39.53] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [30, 85, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [30, 70, 15] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 45, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 67.5, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "vector": [0, 67.5, -45] + }, + "0.9583": { + "vector": [0, -22.5, -45] + }, + "1.0417": { + "pre": { + "vector": [0, 67.5, -45] + }, + "post": { + "vector": [0, 67.5, -45] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [-93.66, 59.7, 20.58] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "post": { + "vector": [-90, 45, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [-90, 45, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "1.125": { + "vector": [0, 0, 0] + }, + "1.25": { + "pre": { + "vector": [4.25, -5.5, -12] + }, + "post": { + "vector": [4.25, -5.5, -12] + }, + "lerp_mode": "catmullrom" + }, + "1.2917": { + "vector": [5, -6, -14] + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/animations/worm_medium.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/worm_medium.animation.json new file mode 100644 index 00000000..77075889 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/worm_medium.animation.json @@ -0,0 +1,571 @@ +{ + "format_version": "1.8.0", + "animations": { + "idle": { + "loop": true, + "animation_length": 3, + "bones": { + "root": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, -5] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [0, 0, -5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -8, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, -8, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "post": { + "vector": [1.1, 0.9, 1.1] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0.9, 1.1, 0.9] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [1.1, 0.9, 1.1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "body": { + "rotation": { + "0.0": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tooth1": { + "rotation": { + "0.0": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tooth2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tooth3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tooth4": { + "rotation": { + "0.0": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "crawl": { + "loop": true, + "animation_length": 2, + "bones": { + "head": { + "rotation": { + "vector": ["-math.cos(q.anim_time*90*2+180)*4", 0, "math.cos(q.anim_time*90*4+130)*10"] + } + }, + "tooth5": { + "rotation": { + "vector": [0, 0, "-math.cos(q.anim_time*90*2*3-80)*20"] + } + }, + "tooth7": { + "rotation": { + "vector": ["-math.cos(q.anim_time*90*2*3-80)*20", 0, 0] + } + }, + "tooth6": { + "rotation": { + "vector": ["math.cos(q.anim_time*90*2*3)*20", "-math.cos(q.anim_time*90*2*3-50)*10", "-math.cos(q.anim_time*90*2*3)*20"] + } + }, + "tooth8": { + "rotation": { + "vector": ["math.cos(q.anim_time*90*2*3)*20", "math.cos(q.anim_time*90*2*3-50)*10", "math.cos(q.anim_time*90*2*3)*20"] + } + }, + "body": { + "rotation": { + "vector": ["90-math.cos(q.anim_time*90*2+90)*2", "-math.cos(q.anim_time*90*4)*5", 0] + }, + "position": { + "vector": ["math.cos(q.anim_time*90*4-70)", "-14+math.cos(q.anim_time*90*2)-1", 0] + } + }, + "tooth1": { + "rotation": { + "vector": ["-math.cos(q.anim_time*90*2*3)*20", 0, 0] + } + }, + "tooth2": { + "rotation": { + "vector": [0, 0, "-math.cos(q.anim_time*90*2*3)*20"] + } + }, + "tooth3": { + "rotation": { + "vector": [0, 0, "math.cos(q.anim_time*90*2*3)*20"] + } + }, + "tooth4": { + "rotation": { + "vector": ["math.cos(q.anim_time*90*2*3)*20", 0, 0] + } + }, + "tail": { + "rotation": { + "vector": ["-math.cos(q.anim_time*90*2+30)*5", 0, "-math.cos(q.anim_time*90*4+70)*6"] + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/animations/worm_small.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/animations/worm_small.animation.json new file mode 100644 index 00000000..54c816e6 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/animations/worm_small.animation.json @@ -0,0 +1,1665 @@ +{ + "format_version": "1.8.0", + "animations": { + "idle": { + "loop": true, + "animation_length": 7.5, + "bones": { + "body": { + "rotation": { + "0.0": { + "vector": [0, 0, -5] + }, + "0.0417": { + "vector": [-0.95, 0, -4.75] + }, + "0.0833": { + "vector": [-2.04, 0, -4.07] + }, + "0.125": { + "vector": [-3.13, 0, -3.12] + }, + "0.1667": { + "vector": [-4.07, 0, -2.04] + }, + "0.2083": { + "vector": [-4.75, 0, -0.95] + }, + "0.25": { + "vector": [-5, 0, 0] + }, + "0.2917": { + "vector": [-4.75, 0, 0.95] + }, + "0.3333": { + "vector": [-4.07, 0, 2.04] + }, + "0.375": { + "vector": [-3.13, 0, 3.13] + }, + "0.4167": { + "vector": [-2.04, 0, 4.07] + }, + "0.4583": { + "vector": [-0.95, 0, 4.75] + }, + "0.5": { + "vector": [0, 0, 5] + }, + "0.5417": { + "vector": [0.95, 0, 4.75] + }, + "0.5833": { + "vector": [2.04, 0, 4.07] + }, + "0.625": { + "vector": [3.12, 0, 3.13] + }, + "0.6667": { + "vector": [4.07, 0, 2.04] + }, + "0.7083": { + "vector": [4.75, 0, 0.95] + }, + "0.75": { + "vector": [5, 0, 0] + }, + "0.7917": { + "vector": [4.75, 0, -0.95] + }, + "0.8333": { + "vector": [4.07, 0, -2.04] + }, + "0.875": { + "vector": [3.12, 0, -3.12] + }, + "0.9167": { + "vector": [2.04, 0, -4.07] + }, + "0.9583": { + "vector": [0.95, 0, -4.75] + }, + "1.0": { + "vector": [0, 0, -5] + }, + "1.0417": { + "vector": [-0.95, 0, -4.75] + }, + "1.0833": { + "vector": [-2.04, 0, -4.07] + }, + "1.125": { + "vector": [-3.13, 0, -3.12] + }, + "1.1667": { + "vector": [-4.07, 0, -2.04] + }, + "1.2083": { + "vector": [-4.75, 0, -0.95] + }, + "1.25": { + "vector": [-5, 0, 0] + }, + "1.2917": { + "vector": [-4.75, 0, 0.95] + }, + "1.3333": { + "vector": [-4.07, 0, 2.04] + }, + "1.375": { + "vector": [-3.13, 0, 3.13] + }, + "1.4167": { + "vector": [-2.04, 0, 4.07] + }, + "1.4583": { + "vector": [-0.95, 0, 4.75] + }, + "1.5": { + "vector": [0, 0, 5] + }, + "1.5417": { + "vector": [0.95, 0, 4.75] + }, + "1.5833": { + "vector": [2.04, 0, 4.07] + }, + "1.625": { + "vector": [3.12, 0, 3.13] + }, + "1.6667": { + "vector": [4.07, 0, 2.04] + }, + "1.7083": { + "vector": [4.75, 0, 0.95] + }, + "1.75": { + "vector": [5, 0, 0] + }, + "1.7917": { + "vector": [4.75, 0, -0.95] + }, + "1.8333": { + "vector": [4.07, 0, -2.04] + }, + "1.875": { + "vector": [3.12, 0, -3.12] + }, + "1.9167": { + "vector": [2.04, 0, -4.07] + }, + "1.9583": { + "vector": [0.95, 0, -4.75] + }, + "2.0": { + "vector": [0, 0, -5] + }, + "2.0417": { + "vector": [-0.95, 0, -4.75] + }, + "2.0833": { + "vector": [-2.04, 0, -4.07] + }, + "2.125": { + "vector": [-3.13, 0, -3.12] + }, + "2.1667": { + "vector": [-4.07, 0, -2.04] + }, + "2.2083": { + "vector": [-4.75, 0, -0.95] + }, + "2.25": { + "vector": [-5, 0, 0] + }, + "2.2917": { + "vector": [-4.75, 0, 0.95] + }, + "2.3333": { + "vector": [-4.07, 0, 2.04] + }, + "2.375": { + "vector": [-3.13, 0, 3.13] + }, + "2.4167": { + "vector": [-2.04, 0, 4.07] + }, + "2.4583": { + "vector": [-0.95, 0, 4.75] + }, + "2.5": { + "vector": [0, 0, 5] + }, + "2.5417": { + "vector": [0.95, 0, 4.75] + }, + "2.5833": { + "vector": [2.04, 0, 4.07] + }, + "2.625": { + "vector": [3.12, 0, 3.13] + }, + "2.6667": { + "vector": [4.07, 0, 2.04] + }, + "2.7083": { + "vector": [4.75, 0, 0.95] + }, + "2.75": { + "vector": [5, 0, 0] + }, + "2.7917": { + "vector": [4.75, 0, -0.95] + }, + "2.8333": { + "vector": [4.07, 0, -2.04] + }, + "2.875": { + "vector": [3.12, 0, -3.12] + }, + "2.9167": { + "vector": [2.04, 0, -4.07] + }, + "2.9583": { + "vector": [0.95, 0, -4.75] + }, + "3.0": { + "vector": [0, 0, -5] + }, + "3.0417": { + "vector": [-0.95, 0, -4.75] + }, + "3.0833": { + "vector": [-2.04, 0, -4.07] + }, + "3.125": { + "vector": [-3.13, 0, -3.12] + }, + "3.1667": { + "vector": [-4.07, 0, -2.04] + }, + "3.2083": { + "vector": [-4.75, 0, -0.95] + }, + "3.25": { + "vector": [-5, 0, 0] + }, + "3.2917": { + "vector": [-4.75, 0, 0.95] + }, + "3.3333": { + "vector": [-4.07, 0, 2.04] + }, + "3.375": { + "vector": [-3.13, 0, 3.13] + }, + "3.4167": { + "vector": [-2.04, 0, 4.07] + }, + "3.4583": { + "vector": [-0.95, 0, 4.75] + }, + "3.5": { + "vector": [0, 0, 5] + }, + "3.5417": { + "vector": [0.95, 0, 4.75] + }, + "3.5833": { + "vector": [2.04, 0, 4.07] + }, + "3.625": { + "vector": [3.12, 0, 3.13] + }, + "3.6667": { + "vector": [4.07, 0, 2.04] + }, + "3.7083": { + "vector": [4.75, 0, 0.95] + }, + "3.75": { + "vector": [5, 0, 0] + }, + "3.7917": { + "vector": [4.75, 0, -0.95] + }, + "3.8333": { + "vector": [4.07, 0, -2.04] + }, + "3.875": { + "vector": [3.12, 0, -3.12] + }, + "3.9167": { + "vector": [2.04, 0, -4.07] + }, + "3.9583": { + "vector": [0.95, 0, -4.75] + }, + "4.0": { + "vector": [0, 0, -5] + }, + "4.0417": { + "vector": [-0.95, 0, -4.75] + }, + "4.0833": { + "vector": [-2.04, 0, -4.07] + }, + "4.125": { + "vector": [-3.13, 0, -3.12] + }, + "4.1667": { + "vector": [-4.07, 0, -2.04] + }, + "4.2083": { + "vector": [-4.75, 0, -0.95] + }, + "4.25": { + "vector": [-5, 0, 0] + }, + "4.2917": { + "vector": [-4.75, 0, 0.95] + }, + "4.3333": { + "vector": [-4.07, 0, 2.04] + }, + "4.375": { + "vector": [-3.13, 0, 3.13] + }, + "4.4167": { + "vector": [-2.04, 0, 4.07] + }, + "4.4583": { + "vector": [-0.95, 0, 4.75] + }, + "4.5": { + "vector": [0, 0, 5] + }, + "4.5417": { + "vector": [0.95, 0, 4.75] + }, + "4.5833": { + "vector": [2.04, 0, 4.07] + }, + "4.625": { + "vector": [3.12, 0, 3.13] + }, + "4.6667": { + "vector": [4.07, 0, 2.04] + }, + "4.7083": { + "vector": [4.75, 0, 0.95] + }, + "4.75": { + "vector": [5, 0, 0] + }, + "4.7917": { + "vector": [4.75, 0, -0.95] + }, + "4.8333": { + "vector": [4.07, 0, -2.04] + }, + "4.875": { + "vector": [3.12, 0, -3.12] + }, + "4.9167": { + "vector": [2.04, 0, -4.07] + }, + "4.9583": { + "vector": [0.95, 0, -4.75] + }, + "5.0": { + "vector": [0, 0, -5] + }, + "5.0417": { + "vector": [-0.95, 0, -4.75] + }, + "5.0833": { + "vector": [-2.04, 0, -4.07] + }, + "5.125": { + "vector": [-3.13, 0, -3.12] + }, + "5.1667": { + "vector": [-4.07, 0, -2.04] + }, + "5.2083": { + "vector": [-4.75, 0, -0.95] + }, + "5.25": { + "vector": [-5, 0, 0] + }, + "5.2917": { + "vector": [-4.75, 0, 0.95] + }, + "5.3333": { + "vector": [-4.07, 0, 2.04] + }, + "5.375": { + "vector": [-3.13, 0, 3.13] + }, + "5.4167": { + "vector": [-2.04, 0, 4.07] + }, + "5.4583": { + "vector": [-0.95, 0, 4.75] + }, + "5.5": { + "vector": [0, 0, 5] + }, + "5.5417": { + "vector": [0.95, 0, 4.63] + }, + "5.5833": { + "vector": [2.04, 0, 3.7] + }, + "5.625": { + "vector": [3.12, 0, 2.5] + }, + "5.6667": { + "vector": [4.07, 0, 1.3] + }, + "5.7083": { + "vector": [4.75, 0, 0.37] + }, + "5.75": { + "vector": [5, 0, 0] + }, + "5.7917": { + "vector": [4.63, 0, 0.37] + }, + "5.8333": { + "vector": [3.7, 0, 1.3] + }, + "5.875": { + "vector": [2.5, 0, 2.5] + }, + "5.9167": { + "vector": [1.3, 0, 3.7] + }, + "5.9583": { + "vector": [0.37, 0, 4.63] + }, + "6.0": { + "vector": [0, 0, 5] + }, + "6.0417": { + "vector": [0.37, 0, 4.75] + }, + "6.0833": { + "vector": [1.3, 0, 4.07] + }, + "6.125": { + "vector": [2.5, 0, 3.13] + }, + "6.1667": { + "vector": [3.7, 0, 2.04] + }, + "6.2083": { + "vector": [4.63, 0, 0.95] + }, + "6.25": { + "vector": [5, 0, 0] + }, + "6.2917": { + "vector": [4.75, 0, -0.95] + }, + "6.3333": { + "vector": [4.07, 0, -2.04] + }, + "6.375": { + "vector": [3.12, 0, -3.12] + }, + "6.4167": { + "vector": [2.04, 0, -4.07] + }, + "6.4583": { + "vector": [0.95, 0, -4.75] + }, + "6.5": { + "vector": [0, 0, -5] + }, + "6.5417": { + "vector": [-0.95, 0, -4.75] + }, + "6.5833": { + "vector": [-2.04, 0, -4.07] + }, + "6.625": { + "vector": [-3.13, 0, -3.12] + }, + "6.6667": { + "vector": [-4.07, 0, -2.04] + }, + "6.7083": { + "vector": [-4.75, 0, -0.95] + }, + "6.75": { + "vector": [-5, 0, 0] + }, + "6.7917": { + "vector": [-4.75, 0, 0.95] + }, + "6.8333": { + "vector": [-4.07, 0, 2.04] + }, + "6.875": { + "vector": [-3.13, 0, 3.13] + }, + "6.9167": { + "vector": [-2.04, 0, 4.07] + }, + "6.9583": { + "vector": [-0.95, 0, 4.75] + }, + "7.0": { + "vector": [0, 0, 5] + }, + "7.0417": { + "vector": [0.95, 0, 4.75] + }, + "7.0833": { + "vector": [2.04, 0, 4.07] + }, + "7.125": { + "vector": [3.12, 0, 3.13] + }, + "7.1667": { + "vector": [4.07, 0, 2.04] + }, + "7.2083": { + "vector": [4.75, 0, 0.95] + }, + "7.25": { + "vector": [5, 0, 0] + }, + "7.2917": { + "vector": [4.75, 0, -0.95] + }, + "7.3333": { + "vector": [4.07, 0, -2.04] + }, + "7.375": { + "vector": [3.12, 0, -3.12] + }, + "7.4167": { + "vector": [2.04, 0, -4.07] + }, + "7.4583": { + "vector": [0.95, 0, -4.75] + }, + "7.5": { + "vector": [0, 0, -5] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "vector": [0, -0.03, 0] + }, + "0.0833": { + "vector": [0, -0.13, 0] + }, + "0.125": { + "vector": [0, -0.26, 0] + }, + "0.1667": { + "vector": [0, -0.42, 0] + }, + "0.2083": { + "vector": [0, -0.58, 0] + }, + "0.25": { + "vector": [0, -0.74, 0] + }, + "0.2917": { + "vector": [0, -0.87, 0] + }, + "0.3333": { + "vector": [0, -0.97, 0] + }, + "0.375": { + "vector": [0, -1, 0] + }, + "0.4167": { + "vector": [0, -0.97, 0] + }, + "0.4583": { + "vector": [0, -0.87, 0] + }, + "0.5": { + "vector": [0, -0.74, 0] + }, + "0.5417": { + "vector": [0, -0.58, 0] + }, + "0.5833": { + "vector": [0, -0.42, 0] + }, + "0.625": { + "vector": [0, -0.26, 0] + }, + "0.6667": { + "vector": [0, -0.13, 0] + }, + "0.7083": { + "vector": [0, -0.03, 0] + }, + "0.75": { + "vector": [0, 0, 0] + }, + "0.7917": { + "vector": [0, -0.03, 0] + }, + "0.8333": { + "vector": [0, -0.13, 0] + }, + "0.875": { + "vector": [0, -0.26, 0] + }, + "0.9167": { + "vector": [0, -0.42, 0] + }, + "0.9583": { + "vector": [0, -0.58, 0] + }, + "1.0": { + "vector": [0, -0.74, 0] + }, + "1.0417": { + "vector": [0, -0.87, 0] + }, + "1.0833": { + "vector": [0, -0.97, 0] + }, + "1.125": { + "vector": [0, -1, 0] + }, + "1.1667": { + "vector": [0, -0.97, 0] + }, + "1.2083": { + "vector": [0, -0.87, 0] + }, + "1.25": { + "vector": [0, -0.74, 0] + }, + "1.2917": { + "vector": [0, -0.58, 0] + }, + "1.3333": { + "vector": [0, -0.42, 0] + }, + "1.375": { + "vector": [0, -0.26, 0] + }, + "1.4167": { + "vector": [0, -0.13, 0] + }, + "1.4583": { + "vector": [0, -0.03, 0] + }, + "1.5": { + "vector": [0, 0, 0] + }, + "1.5417": { + "vector": [0, -0.03, 0] + }, + "1.5833": { + "vector": [0, -0.13, 0] + }, + "1.625": { + "vector": [0, -0.26, 0] + }, + "1.6667": { + "vector": [0, -0.42, 0] + }, + "1.7083": { + "vector": [0, -0.58, 0] + }, + "1.75": { + "vector": [0, -0.74, 0] + }, + "1.7917": { + "vector": [0, -0.87, 0] + }, + "1.8333": { + "vector": [0, -0.97, 0] + }, + "1.875": { + "vector": [0, -1, 0] + }, + "1.9167": { + "vector": [0, -0.97, 0] + }, + "1.9583": { + "vector": [0, -0.87, 0] + }, + "2.0": { + "vector": [0, -0.74, 0] + }, + "2.0417": { + "vector": [0, -0.58, 0] + }, + "2.0833": { + "vector": [0, -0.42, 0] + }, + "2.125": { + "vector": [0, -0.26, 0] + }, + "2.1667": { + "vector": [0, -0.13, 0] + }, + "2.2083": { + "vector": [0, -0.03, 0] + }, + "2.25": { + "vector": [0, 0, 0] + }, + "2.2917": { + "vector": [0, -0.03, 0] + }, + "2.3333": { + "vector": [0, -0.13, 0] + }, + "2.375": { + "vector": [0, -0.26, 0] + }, + "2.4167": { + "vector": [0, -0.42, 0] + }, + "2.4583": { + "vector": [0, -0.58, 0] + }, + "2.5": { + "vector": [0, -0.74, 0] + }, + "2.5417": { + "vector": [0, -0.87, 0] + }, + "2.5833": { + "vector": [0, -0.97, 0] + }, + "2.625": { + "vector": [0, -1, 0] + }, + "2.6667": { + "vector": [0, -0.97, 0] + }, + "2.7083": { + "vector": [0, -0.87, 0] + }, + "2.75": { + "vector": [0, -0.74, 0] + }, + "2.7917": { + "vector": [0, -0.58, 0] + }, + "2.8333": { + "vector": [0, -0.42, 0] + }, + "2.875": { + "vector": [0, -0.26, 0] + }, + "2.9167": { + "vector": [0, -0.13, 0] + }, + "2.9583": { + "vector": [0, -0.03, 0] + }, + "3.0": { + "vector": [0, 0, 0] + }, + "3.0417": { + "vector": [0, -0.03, 0] + }, + "3.0833": { + "vector": [0, -0.13, 0] + }, + "3.125": { + "vector": [0, -0.26, 0] + }, + "3.1667": { + "vector": [0, -0.42, 0] + }, + "3.2083": { + "vector": [0, -0.58, 0] + }, + "3.25": { + "vector": [0, -0.74, 0] + }, + "3.2917": { + "vector": [0, -0.87, 0] + }, + "3.3333": { + "vector": [0, -0.97, 0] + }, + "3.375": { + "vector": [0, -1, 0] + }, + "3.4167": { + "vector": [0, -0.97, 0] + }, + "3.4583": { + "vector": [0, -0.87, 0] + }, + "3.5": { + "vector": [0, -0.74, 0] + }, + "3.5417": { + "vector": [0, -0.58, 0] + }, + "3.5833": { + "vector": [0, -0.42, 0] + }, + "3.625": { + "vector": [0, -0.26, 0] + }, + "3.6667": { + "vector": [0, -0.13, 0] + }, + "3.7083": { + "vector": [0, -0.03, 0] + }, + "3.75": { + "vector": [0, 0, 0] + }, + "3.7917": { + "vector": [0, -0.03, 0] + }, + "3.8333": { + "vector": [0, -0.13, 0] + }, + "3.875": { + "vector": [0, -0.26, 0] + }, + "3.9167": { + "vector": [0, -0.42, 0] + }, + "3.9583": { + "vector": [0, -0.58, 0] + }, + "4.0": { + "vector": [0, -0.74, 0] + }, + "4.0417": { + "vector": [0, -0.87, 0] + }, + "4.0833": { + "vector": [0, -0.97, 0] + }, + "4.125": { + "vector": [0, -1, 0] + }, + "4.1667": { + "vector": [0, -0.97, 0] + }, + "4.2083": { + "vector": [0, -0.87, 0] + }, + "4.25": { + "vector": [0, -0.74, 0] + }, + "4.2917": { + "vector": [0, -0.58, 0] + }, + "4.3333": { + "vector": [0, -0.42, 0] + }, + "4.375": { + "vector": [0, -0.26, 0] + }, + "4.4167": { + "vector": [0, -0.13, 0] + }, + "4.4583": { + "vector": [0, -0.03, 0] + }, + "4.5": { + "vector": [0, 0, 0] + }, + "4.5417": { + "vector": [0, -0.03, 0] + }, + "4.5833": { + "vector": [0, -0.13, 0] + }, + "4.625": { + "vector": [0, -0.26, 0] + }, + "4.6667": { + "vector": [0, -0.42, 0] + }, + "4.7083": { + "vector": [0, -0.58, 0] + }, + "4.75": { + "vector": [0, -0.74, 0] + }, + "4.7917": { + "vector": [0, -0.87, 0] + }, + "4.8333": { + "vector": [0, -0.97, 0] + }, + "4.875": { + "vector": [0, -1, 0] + }, + "4.9167": { + "vector": [0, -0.97, 0] + }, + "4.9583": { + "vector": [0, -0.87, 0] + }, + "5.0": { + "vector": [0, -0.74, 0] + }, + "5.0417": { + "vector": [0, -0.58, 0] + }, + "5.0833": { + "vector": [0, -0.42, 0] + }, + "5.125": { + "vector": [0, -0.26, 0] + }, + "5.1667": { + "vector": [0, -0.13, 0] + }, + "5.2083": { + "vector": [0, -0.03, 0] + }, + "5.25": { + "vector": [0, 0, 0] + }, + "5.2917": { + "vector": [0, -0.03, 0] + }, + "5.3333": { + "vector": [0, -0.13, 0] + }, + "5.375": { + "vector": [0, -0.26, 0] + }, + "5.4167": { + "vector": [0, -0.42, 0] + }, + "5.4583": { + "vector": [0, -0.58, 0] + }, + "5.5": { + "vector": [0, -0.74, 0] + }, + "5.5417": { + "vector": [0, -0.87, 0] + }, + "5.5833": { + "vector": [0, -0.97, 0] + }, + "5.625": { + "vector": [0, -1, 0] + }, + "5.6667": { + "vector": [0, -0.97, 0] + }, + "5.7083": { + "vector": [0, -0.87, 0] + }, + "5.75": { + "vector": [0, -0.74, 0] + }, + "5.7917": { + "vector": [0, -0.58, 0] + }, + "5.8333": { + "vector": [0, -0.42, 0] + }, + "5.875": { + "vector": [0, -0.26, 0] + }, + "5.9167": { + "vector": [0, -0.13, 0] + }, + "5.9583": { + "vector": [0, -0.03, 0] + }, + "6.0": { + "vector": [0, 0, 0] + }, + "6.0417": { + "vector": [0, -0.03, 0] + }, + "6.0833": { + "vector": [0, -0.13, 0] + }, + "6.125": { + "vector": [0, -0.26, 0] + }, + "6.1667": { + "vector": [0, -0.42, 0] + }, + "6.2083": { + "vector": [0, -0.58, 0] + }, + "6.25": { + "vector": [0, -0.74, 0] + }, + "6.2917": { + "vector": [0, -0.87, 0] + }, + "6.3333": { + "vector": [0, -0.97, 0] + }, + "6.375": { + "vector": [0, -1, 0] + }, + "6.4167": { + "vector": [0, -0.97, 0] + }, + "6.4583": { + "vector": [0, -0.87, 0] + }, + "6.5": { + "vector": [0, -0.74, 0] + }, + "6.5417": { + "vector": [0, -0.58, 0] + }, + "6.5833": { + "vector": [0, -0.42, 0] + }, + "6.625": { + "vector": [0, -0.26, 0] + }, + "6.6667": { + "vector": [0, -0.13, 0] + }, + "6.7083": { + "vector": [0, -0.03, 0] + }, + "6.75": { + "vector": [0, 0, 0] + }, + "6.7917": { + "vector": [0, -0.03, 0] + }, + "6.8333": { + "vector": [0, -0.13, 0] + }, + "6.875": { + "vector": [0, -0.26, 0] + }, + "6.9167": { + "vector": [0, -0.42, 0] + }, + "6.9583": { + "vector": [0, -0.58, 0] + }, + "7.0": { + "vector": [0, -0.74, 0] + }, + "7.0417": { + "vector": [0, -0.87, 0] + }, + "7.0833": { + "vector": [0, -0.97, 0] + }, + "7.125": { + "vector": [0, -1, 0] + }, + "7.1667": { + "vector": [0, -0.97, 0] + }, + "7.2083": { + "vector": [0, -0.87, 0] + }, + "7.25": { + "vector": [0, -0.74, 0] + }, + "7.2917": { + "vector": [0, -0.58, 0] + }, + "7.3333": { + "vector": [0, -0.42, 0] + }, + "7.375": { + "vector": [0, -0.26, 0] + }, + "7.4167": { + "vector": [0, -0.13, 0] + }, + "7.4583": { + "vector": [0, -0.03, 0] + }, + "7.5": { + "vector": [0, 0, 0] + } + }, + "scale": { + "0.0": { + "vector": [1.1, 0.9, 1.1] + }, + "0.0417": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "0.0833": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "0.125": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "0.1667": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "0.2083": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "0.25": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "0.2917": { + "vector": [1.01, 0.99, 1.01] + }, + "0.3333": { + "vector": [0.99, 1.01, 0.99] + }, + "0.375": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "0.4167": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "0.4583": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "0.5": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "0.5417": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "0.5833": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "0.625": { + "vector": [0.9, 1.1, 0.9] + }, + "0.6667": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "0.7083": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "0.75": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "0.7917": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "0.8333": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "0.875": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "0.9167": { + "vector": [0.99, 1.01, 0.99] + }, + "0.9583": { + "vector": [1.01, 0.99, 1.01] + }, + "1.0": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "1.0417": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "1.0833": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "1.125": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "1.1667": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "1.2083": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "1.25": { + "vector": [1.1, 0.9, 1.1] + }, + "1.2917": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "1.3333": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "1.375": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "1.4167": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "1.4583": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "1.5": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "1.5417": { + "vector": [1.01, 0.99, 1.01] + }, + "1.5833": { + "vector": [0.99, 1.01, 0.99] + }, + "1.625": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "1.6667": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "1.7083": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "1.75": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "1.7917": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "1.8333": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "1.875": { + "vector": [0.9, 1.1, 0.9] + }, + "1.9167": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "1.9583": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "2.0": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "2.0417": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "2.0833": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "2.125": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "2.1667": { + "vector": [0.99, 1.01, 0.99] + }, + "2.2083": { + "vector": [1.01, 0.99, 1.01] + }, + "2.25": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "2.2917": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "2.3333": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "2.375": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "2.4167": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "2.4583": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "2.5": { + "vector": [1.1, 0.9, 1.1] + }, + "2.5417": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "2.5833": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "2.625": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "2.6667": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "2.7083": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "2.75": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "2.7917": { + "vector": [1.01, 0.99, 1.01] + }, + "2.8333": { + "vector": [0.99, 1.01, 0.99] + }, + "2.875": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "2.9167": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "2.9583": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "3.0": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "3.0417": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "3.0833": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "3.125": { + "vector": [0.9, 1.1, 0.9] + }, + "3.1667": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "3.2083": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "3.25": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "3.2917": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "3.3333": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "3.375": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "3.4167": { + "vector": [0.99, 1.01, 0.99] + }, + "3.4583": { + "vector": [1.01, 0.99, 1.01] + }, + "3.5": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "3.5417": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "3.5833": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "3.625": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "3.6667": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "3.7083": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "3.75": { + "vector": [1.1, 0.9, 1.1] + }, + "3.7917": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "3.8333": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "3.875": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "3.9167": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "3.9583": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "4.0": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "4.0417": { + "vector": [1.01, 0.99, 1.01] + }, + "4.0833": { + "vector": [0.99, 1.01, 0.99] + }, + "4.125": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "4.1667": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "4.2083": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "4.25": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "4.2917": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "4.3333": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "4.375": { + "vector": [0.9, 1.1, 0.9] + }, + "4.4167": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "4.4583": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "4.5": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "4.5417": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "4.5833": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "4.625": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "4.6667": { + "vector": [0.99, 1.01, 0.99] + }, + "4.7083": { + "vector": [1.01, 0.99, 1.01] + }, + "4.75": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "4.7917": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "4.8333": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "4.875": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "4.9167": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "4.9583": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "5.0": { + "vector": [1.1, 0.9, 1.1] + }, + "5.0417": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "5.0833": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "5.125": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "5.1667": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "5.2083": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "5.25": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "5.2917": { + "vector": [1.01, 0.99, 1.01] + }, + "5.3333": { + "vector": [0.99, 1.01, 0.99] + }, + "5.375": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "5.4167": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "5.4583": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "5.5": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "5.5417": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "5.5833": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "5.625": { + "vector": [0.9, 1.1, 0.9] + }, + "5.6667": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "5.7083": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "5.75": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "5.7917": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "5.8333": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "5.875": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "5.9167": { + "vector": [0.99, 1.01, 0.99] + }, + "5.9583": { + "vector": [1.01, 0.99, 1.01] + }, + "6.0": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "6.0417": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "6.0833": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "6.125": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "6.1667": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "6.2083": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "6.25": { + "vector": [1.1, 0.9, 1.1] + }, + "6.2917": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "6.3333": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "6.375": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "6.4167": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "6.4583": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "6.5": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "6.5417": { + "vector": [1.01, 0.99, 1.01] + }, + "6.5833": { + "vector": [0.99, 1.01, 0.99] + }, + "6.625": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "6.6667": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "6.7083": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "6.75": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "6.7917": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "6.8333": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "6.875": { + "vector": [0.9, 1.1, 0.9] + }, + "6.9167": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "6.9583": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "7.0": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "7.0417": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "7.0833": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "7.125": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "7.1667": { + "vector": [0.99, 1.01, 0.99] + }, + "7.2083": { + "vector": [1.01, 0.99, 1.01] + }, + "7.25": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "7.2917": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "7.3333": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "7.375": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "7.4167": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "7.4583": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "7.5": { + "vector": [1.1, 0.9, 1.1] + } + } + } + } + }, + "crawl": { + "loop": true, + "animation_length": 0.5, + "bones": { + "body": { + "rotation": { + "vector": [90, 0, 0] + }, + "position": { + "vector": [0, -3, "math.cos(q.anim_time*90*4*2)"] + }, + "scale": { + "vector": ["1+math.cos(q.anim_time*90*4*2+80)/5/2", "1-math.cos(q.anim_time*90*4*2+80)/5", "1+math.cos(q.anim_time*90*4*2+80)/5/2"] + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/black_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/black_truffalo_tuft.json new file mode 100644 index 00000000..e605dcdc --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/black_truffalo_tuft.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_tuft_black" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/blue_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/blue_truffalo_tuft.json new file mode 100644 index 00000000..a52b32f3 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/blue_truffalo_tuft.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_tuft_blue" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/brown_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/brown_truffalo_tuft.json new file mode 100644 index 00000000..41cc6cb5 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/brown_truffalo_tuft.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_tuft_brown" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/chiseled_loam_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/chiseled_loam_bricks.json new file mode 100644 index 00000000..38f370c3 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/chiseled_myrmite.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/chiseled_myrmite.json new file mode 100644 index 00000000..a781555a --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/chiseled_typhonite.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/chiseled_typhonite.json new file mode 100644 index 00000000..6335e00c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/chiseled_typhonite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/chiseled_typhonite" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/cyan_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/cyan_truffalo_tuft.json new file mode 100644 index 00000000..7ebbddd6 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/cyan_truffalo_tuft.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_tuft_cyan" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/duskbell.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/duskbell.json new file mode 100644 index 00000000..51776d54 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/duskbell.json @@ -0,0 +1,11 @@ +{ + "variants": { + "vertical_direction=up": { + "model": "antarchy:block/duskbell" + }, + "vertical_direction=down": { + "model": "antarchy:block/duskbell", + "x": 180 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/glimmering_reed.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/glimmering_reed.json new file mode 100644 index 00000000..838792d2 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/glimmering_reed.json @@ -0,0 +1,10 @@ +{ + "variants": { + "half=lower": { + "model": "antarchy:block/glimmering_reed_bottom" + }, + "half=upper": { + "model": "antarchy:block/glimmering_reed_top" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/gorevine.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/gorevine.json new file mode 100644 index 00000000..cfb10566 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/gorevine.json @@ -0,0 +1,43 @@ +{ + "multipart": [ + { + "when": { + "growth_direction": "down", + "bottom_cap": "true" + }, + "apply": { + "model": "antarchy:block/gorevine", + "x": 0 + } + }, + { + "when": { + "growth_direction": "down", + "bottom_cap": "false" + }, + "apply": { + "model": "antarchy:block/gorevine_body", + "x": 180 + } + }, + { + "when": { + "growth_direction": "up", + "top_cap": "true" + }, + "apply": { + "model": "antarchy:block/gorevine", + "x": 180 + } + }, + { + "when": { + "growth_direction": "up", + "top_cap": "false" + }, + "apply": { + "model": "antarchy:block/gorevine_body" + } + } + ] +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/gray_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/gray_truffalo_tuft.json new file mode 100644 index 00000000..851f95b7 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/gray_truffalo_tuft.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_tuft_gray" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/green_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/green_truffalo_tuft.json new file mode 100644 index 00000000..933f9bb4 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/green_truffalo_tuft.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_tuft_green" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/large_nadir_fern.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/large_nadir_fern.json new file mode 100644 index 00000000..9c34152b --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/large_nadir_fern.json @@ -0,0 +1,18 @@ +{ + "variants": { + "half=bottom,vertical_direction=up": { + "model": "antarchy:block/large_nadir_fern_bottom" + }, + "half=top,vertical_direction=up": { + "model": "antarchy:block/large_nadir_fern_top" + }, + "half=bottom,vertical_direction=down": { + "model": "antarchy:block/large_nadir_fern_bottom", + "x": 180 + }, + "half=top,vertical_direction=down": { + "model": "antarchy:block/large_nadir_fern_top", + "x": 180 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/light_blue_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/light_blue_truffalo_tuft.json new file mode 100644 index 00000000..c6f61e04 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/light_blue_truffalo_tuft.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_tuft_light_blue" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/light_gray_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/light_gray_truffalo_tuft.json new file mode 100644 index 00000000..c577cbd0 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/light_gray_truffalo_tuft.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_tuft_light_gray" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/lime_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/lime_truffalo_tuft.json new file mode 100644 index 00000000..aa33a6ad --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/lime_truffalo_tuft.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_tuft_lime" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/loam_brick_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/loam_brick_slab.json new file mode 100644 index 00000000..239a88fc --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/loam_brick_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/loam_brick_stairs.json new file mode 100644 index 00000000..e4a8c0ec --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/loam_brick_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/loam_brick_wall.json new file mode 100644 index 00000000..fcfac968 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/loam_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/loam_bricks.json new file mode 100644 index 00000000..bcb97c07 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/magenta_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/magenta_truffalo_tuft.json new file mode 100644 index 00000000..69a63007 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/magenta_truffalo_tuft.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_tuft_magenta" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_brick_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_brick_slab.json new file mode 100644 index 00000000..51f612bb --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_brick_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_brick_stairs.json new file mode 100644 index 00000000..a03427e1 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_brick_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_brick_wall.json new file mode 100644 index 00000000..d66eeac9 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/mossy_broodstone_bricks.json new file mode 100644 index 00000000..fb9074e6 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_brick_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_brick_slab.json new file mode 100644 index 00000000..57448dd8 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_brick_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_brick_stairs.json new file mode 100644 index 00000000..3f6fa609 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_brick_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_brick_wall.json new file mode 100644 index 00000000..fa80c745 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/mossy_myrmite_bricks.json new file mode 100644 index 00000000..965e67df --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_brick_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_brick_slab.json new file mode 100644 index 00000000..5a6fb1f8 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_brick_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_brick_stairs.json new file mode 100644 index 00000000..d7993490 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_brick_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_brick_wall.json new file mode 100644 index 00000000..6d48a7b6 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/mossy_nyxite_bricks.json new file mode 100644 index 00000000..2588a902 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/myrmite_brick_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/myrmite_brick_slab.json new file mode 100644 index 00000000..5543b856 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/myrmite_brick_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/myrmite_brick_stairs.json new file mode 100644 index 00000000..2d64faa5 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/myrmite_brick_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/myrmite_brick_wall.json new file mode 100644 index 00000000..5810e32e --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/myrmite_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/myrmite_bricks.json new file mode 100644 index 00000000..34f93a5a --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/myrmite_pillar.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/myrmite_pillar.json new file mode 100644 index 00000000..f7b88b9e --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/myrmite_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/myrmite_slab.json new file mode 100644 index 00000000..8c0a3ec3 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/myrmite_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/myrmite_stairs.json new file mode 100644 index 00000000..f360f413 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/myrmite_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/myrmite_wall.json new file mode 100644 index 00000000..c0da350d --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/nadir_fern.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/nadir_fern.json new file mode 100644 index 00000000..fe681975 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/nadir_fern.json @@ -0,0 +1,11 @@ +{ + "variants": { + "vertical_direction=up": { + "model": "antarchy:block/nadir_fern" + }, + "vertical_direction=down": { + "model": "antarchy:block/nadir_fern", + "x": 180 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/nadir_nyxium.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/nadir_nyxium.json new file mode 100644 index 00000000..6a0ec269 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/nadir_nyxium.json @@ -0,0 +1,11 @@ +{ + "variants": { + "vertical_direction=up": { + "model": "antarchy:block/nadir_nyxium" + }, + "vertical_direction=down": { + "model": "antarchy:block/nadir_nyxium", + "x": 180 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/nadir_roots.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/nadir_roots.json new file mode 100644 index 00000000..79f37a1f --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/nadir_roots.json @@ -0,0 +1,11 @@ +{ + "variants": { + "vertical_direction=up": { + "model": "antarchy:block/nadir_roots" + }, + "vertical_direction=down": { + "model": "antarchy:block/nadir_roots", + "x": 180 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/orange_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/orange_truffalo_tuft.json new file mode 100644 index 00000000..7c7a51ea --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/orange_truffalo_tuft.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_tuft_orange" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/packed_loam.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/packed_loam.json new file mode 100644 index 00000000..f90bda40 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/pink_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/pink_truffalo_tuft.json new file mode 100644 index 00000000..5ab5db31 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/pink_truffalo_tuft.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_tuft_pink" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite.json new file mode 100644 index 00000000..420c583e --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite_slab.json new file mode 100644 index 00000000..09bc9c07 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite_stairs.json new file mode 100644 index 00000000..64e329ac --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/polished_myrmite_wall.json new file mode 100644 index 00000000..8b6ce752 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/polished_typhonite.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/polished_typhonite.json new file mode 100644 index 00000000..05dd453f --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/polished_typhonite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/polished_typhonite" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/polished_typhonite_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/polished_typhonite_slab.json new file mode 100644 index 00000000..ba046fcb --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/polished_typhonite_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double": { + "model": "antarchy:block/polished_typhonite" + }, + "type=bottom": { + "model": "antarchy:block/polished_typhonite_slab" + }, + "type=top": { + "model": "antarchy:block/polished_typhonite_slab_top" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/polished_typhonite_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/polished_typhonite_stairs.json new file mode 100644 index 00000000..89eb5cf8 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/polished_typhonite_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/polished_typhonite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/polished_typhonite_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/polished_typhonite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/polished_typhonite_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/polished_typhonite_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/polished_typhonite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/polished_typhonite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/polished_typhonite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/polished_typhonite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/polished_typhonite_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/polished_typhonite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/polished_typhonite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/polished_typhonite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/polished_typhonite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/polished_typhonite_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/polished_typhonite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/polished_typhonite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/polished_typhonite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/polished_typhonite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/polished_typhonite_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/polished_typhonite_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/polished_typhonite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/polished_typhonite_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/polished_typhonite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/polished_typhonite_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/polished_typhonite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/polished_typhonite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/polished_typhonite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/polished_typhonite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/polished_typhonite_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/polished_typhonite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/polished_typhonite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/polished_typhonite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/polished_typhonite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/polished_typhonite_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/polished_typhonite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/polished_typhonite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/polished_typhonite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/polished_typhonite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/polished_typhonite_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/polished_typhonite_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/polished_typhonite_wall.json new file mode 100644 index 00000000..2a7fccc1 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/polished_typhonite_wall.json @@ -0,0 +1,40 @@ +{ + "multipart": [ + { + "when": { "up": "true" }, + "apply": { "model": "antarchy:block/polished_typhonite_wall_post" } + }, + { + "when": { "north": "low" }, + "apply": { "model": "antarchy:block/polished_typhonite_wall_side", "uvlock": true } + }, + { + "when": { "east": "low" }, + "apply": { "model": "antarchy:block/polished_typhonite_wall_side", "y": 90, "uvlock": true } + }, + { + "when": { "south": "low" }, + "apply": { "model": "antarchy:block/polished_typhonite_wall_side", "y": 180, "uvlock": true } + }, + { + "when": { "west": "low" }, + "apply": { "model": "antarchy:block/polished_typhonite_wall_side", "y": 270, "uvlock": true } + }, + { + "when": { "north": "tall" }, + "apply": { "model": "antarchy:block/polished_typhonite_wall_side_tall", "uvlock": true } + }, + { + "when": { "east": "tall" }, + "apply": { "model": "antarchy:block/polished_typhonite_wall_side_tall", "y": 90, "uvlock": true } + }, + { + "when": { "south": "tall" }, + "apply": { "model": "antarchy:block/polished_typhonite_wall_side_tall", "y": 180, "uvlock": true } + }, + { + "when": { "west": "tall" }, + "apply": { "model": "antarchy:block/polished_typhonite_wall_side_tall", "y": 270, "uvlock": true } + } + ] +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/potted_royal_sapling.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/potted_royal_sapling.json new file mode 100644 index 00000000..7ebf3af3 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/potted_royal_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/potted_royal_sapling" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/potted_truffalo_sapling.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/potted_truffalo_sapling.json new file mode 100644 index 00000000..c713772a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/potted_truffalo_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/potted_truffalo_sapling" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/prince_egg.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/prince_egg.json new file mode 100644 index 00000000..ab78d2c4 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/prince_egg.json @@ -0,0 +1,13 @@ +{ + "variants": { + "hatch=0": { + "model": "antarchy:block/prince_egg" + }, + "hatch=1": { + "model": "antarchy:block/prince_egg" + }, + "hatch=2": { + "model": "antarchy:block/prince_egg" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/princess_egg.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/princess_egg.json new file mode 100644 index 00000000..54582800 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/princess_egg.json @@ -0,0 +1,13 @@ +{ + "variants": { + "hatch=0": { + "model": "antarchy:block/princess_egg" + }, + "hatch=1": { + "model": "antarchy:block/princess_egg" + }, + "hatch=2": { + "model": "antarchy:block/princess_egg" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/purple_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/purple_truffalo_tuft.json new file mode 100644 index 00000000..d6a20a04 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/purple_truffalo_tuft.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_tuft_purple" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/red_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/red_truffalo_tuft.json new file mode 100644 index 00000000..e2e927df --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/red_truffalo_tuft.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_tuft_red" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_button.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_button.json new file mode 100644 index 00000000..22d07a2c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_button.json @@ -0,0 +1,119 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "antarchy:block/royal_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "antarchy:block/royal_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "antarchy:block/royal_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "antarchy:block/royal_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "antarchy:block/royal_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "antarchy:block/royal_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "antarchy:block/royal_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "antarchy:block/royal_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "antarchy:block/royal_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "antarchy:block/royal_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "antarchy:block/royal_button" + }, + "face=floor,facing=north,powered=true": { + "model": "antarchy:block/royal_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "antarchy:block/royal_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "antarchy:block/royal_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "antarchy:block/royal_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "antarchy:block/royal_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "antarchy:block/royal_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "antarchy:block/royal_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "antarchy:block/royal_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "antarchy:block/royal_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "antarchy:block/royal_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "antarchy:block/royal_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "antarchy:block/royal_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "antarchy:block/royal_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_door.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_door.json new file mode 100644 index 00000000..01888cdb --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_door.json @@ -0,0 +1,125 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "antarchy:block/royal_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "antarchy:block/royal_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "antarchy:block/royal_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "antarchy:block/royal_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "antarchy:block/royal_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "antarchy:block/royal_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "antarchy:block/royal_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "antarchy:block/royal_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "antarchy:block/royal_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "antarchy:block/royal_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "antarchy:block/royal_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "antarchy:block/royal_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "antarchy:block/royal_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "antarchy:block/royal_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "antarchy:block/royal_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "antarchy:block/royal_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "antarchy:block/royal_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "antarchy:block/royal_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "antarchy:block/royal_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "antarchy:block/royal_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "antarchy:block/royal_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "antarchy:block/royal_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "antarchy:block/royal_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "antarchy:block/royal_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "antarchy:block/royal_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "antarchy:block/royal_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "antarchy:block/royal_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "antarchy:block/royal_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "antarchy:block/royal_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "antarchy:block/royal_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "antarchy:block/royal_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "antarchy:block/royal_door_top_right_open", + "y": 90 + } + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_fence.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_fence.json new file mode 100644 index 00000000..944fe8b0 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_fence.json @@ -0,0 +1,49 @@ +{ + "multipart": [ + { + "apply": { + "model": "antarchy:block/royal_fence_post" + } + }, + { + "apply": { + "model": "antarchy:block/royal_fence_side", + "uvlock": true + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "antarchy:block/royal_fence_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "antarchy:block/royal_fence_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "antarchy:block/royal_fence_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + } + ] +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_fence_gate.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_fence_gate.json new file mode 100644 index 00000000..98a8dc44 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_fence_gate.json @@ -0,0 +1,81 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "model": "antarchy:block/royal_fence_gate", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=false,open=true": { + "model": "antarchy:block/royal_fence_gate_open", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=false": { + "model": "antarchy:block/royal_fence_gate_wall", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=true": { + "model": "antarchy:block/royal_fence_gate_wall_open", + "uvlock": true, + "y": 270 + }, + "facing=north,in_wall=false,open=false": { + "model": "antarchy:block/royal_fence_gate", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=false,open=true": { + "model": "antarchy:block/royal_fence_gate_open", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=false": { + "model": "antarchy:block/royal_fence_gate_wall", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=true": { + "model": "antarchy:block/royal_fence_gate_wall_open", + "uvlock": true, + "y": 180 + }, + "facing=south,in_wall=false,open=false": { + "model": "antarchy:block/royal_fence_gate", + "uvlock": true + }, + "facing=south,in_wall=false,open=true": { + "model": "antarchy:block/royal_fence_gate_open", + "uvlock": true + }, + "facing=south,in_wall=true,open=false": { + "model": "antarchy:block/royal_fence_gate_wall", + "uvlock": true + }, + "facing=south,in_wall=true,open=true": { + "model": "antarchy:block/royal_fence_gate_wall_open", + "uvlock": true + }, + "facing=west,in_wall=false,open=false": { + "model": "antarchy:block/royal_fence_gate", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=false,open=true": { + "model": "antarchy:block/royal_fence_gate_open", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=false": { + "model": "antarchy:block/royal_fence_gate_wall", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=true": { + "model": "antarchy:block/royal_fence_gate_wall_open", + "uvlock": true, + "y": 90 + } + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_flowering_leaves.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_flowering_leaves.json new file mode 100644 index 00000000..1fee65ca --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_flowering_leaves.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "antarchy:block/royal_flowering_leaves" } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_hanging_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_hanging_sign.json new file mode 100644 index 00000000..dac9b579 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/royal_hanging_sign" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_leaves.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_leaves.json new file mode 100644 index 00000000..1fa0e4ca --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_leaves.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "antarchy:block/royal_leaves" } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_log.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_log.json new file mode 100644 index 00000000..081bfac7 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "antarchy:block/royal_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "antarchy:block/royal_log" + }, + "axis=z": { + "model": "antarchy:block/royal_log_horizontal", + "x": 90 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_planks.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_planks.json new file mode 100644 index 00000000..7019354a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/royal_planks" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_pressure_plate.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_pressure_plate.json new file mode 100644 index 00000000..33378daa --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "antarchy:block/royal_pressure_plate" + }, + "powered=true": { + "model": "antarchy:block/royal_pressure_plate_down" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_sapling.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_sapling.json new file mode 100644 index 00000000..022f1ec9 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/royal_sapling" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_sign.json new file mode 100644 index 00000000..dce6c6ab --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/royal_sign" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_slab.json new file mode 100644 index 00000000..4cbd3f3e --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "antarchy:block/royal_slab" + }, + "type=double": { + "model": "antarchy:block/royal_planks" + }, + "type=top": { + "model": "antarchy:block/royal_slab_top" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_stairs.json new file mode 100644 index 00000000..fb10d2e3 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_stairs.json @@ -0,0 +1,210 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/royal_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/royal_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/royal_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/royal_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/royal_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/royal_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/royal_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/royal_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/royal_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/royal_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/royal_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/royal_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/royal_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/royal_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/royal_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/royal_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/royal_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/royal_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/royal_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/royal_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/royal_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/royal_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/royal_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/royal_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/royal_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/royal_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/royal_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/royal_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/royal_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/royal_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/royal_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/royal_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/royal_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/royal_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/royal_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/royal_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/royal_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/royal_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/royal_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/royal_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_trapdoor.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_trapdoor.json new file mode 100644 index 00000000..3029c0cb --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_trapdoor.json @@ -0,0 +1,70 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "antarchy:block/royal_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "antarchy:block/royal_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "antarchy:block/royal_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "antarchy:block/royal_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "antarchy:block/royal_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "antarchy:block/royal_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "antarchy:block/royal_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "antarchy:block/royal_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "antarchy:block/royal_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "antarchy:block/royal_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "antarchy:block/royal_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "antarchy:block/royal_trapdoor_open", + "x": 180, + "y": 0 + }, + "facing=west,half=bottom,open=false": { + "model": "antarchy:block/royal_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "antarchy:block/royal_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "antarchy:block/royal_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "antarchy:block/royal_trapdoor_open", + "x": 180, + "y": 90 + } + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_wall_hanging_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_wall_hanging_sign.json new file mode 100644 index 00000000..d47ca965 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_wall_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/royal_wall_hanging_sign" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_wall_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_wall_sign.json new file mode 100644 index 00000000..1bd469d0 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_wall_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/royal_wall_sign" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_wood.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_wood.json new file mode 100644 index 00000000..8c8fbf23 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/royal_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "antarchy:block/royal_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "antarchy:block/royal_wood" + }, + "axis=z": { + "model": "antarchy:block/royal_wood", + "x": 90 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/spiraling_vines.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/spiraling_vines.json new file mode 100644 index 00000000..43c61c1d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/spiraling_vines.json @@ -0,0 +1,42 @@ +{ + "multipart": [ + { + "when": { + "growth_direction": "down", + "bottom_cap": "true" + }, + "apply": { + "model": "antarchy:block/spiraling_vines", + "x": 180 + } + }, + { + "when": { + "growth_direction": "down", + "bottom_cap": "false" + }, + "apply": { + "model": "antarchy:block/spiraling_vines_body", + "x": 180 + } + }, + { + "when": { + "growth_direction": "up", + "top_cap": "true" + }, + "apply": { + "model": "antarchy:block/spiraling_vines" + } + }, + { + "when": { + "growth_direction": "up", + "top_cap": "false" + }, + "apply": { + "model": "antarchy:block/spiraling_vines_body" + } + } + ] +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_nadir_log.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_nadir_log.json new file mode 100644 index 00000000..ff5233b0 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_nadir_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "antarchy:block/stripped_nadir_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "antarchy:block/stripped_nadir_log" + }, + "axis=z": { + "model": "antarchy:block/stripped_nadir_log_horizontal", + "x": 90 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_nadir_wood.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_nadir_wood.json new file mode 100644 index 00000000..7d75d3fb --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_nadir_wood.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/stripped_nadir_wood" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_royal_log.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_royal_log.json new file mode 100644 index 00000000..cdc9230d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_royal_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "antarchy:block/stripped_royal_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "antarchy:block/stripped_royal_log" + }, + "axis=z": { + "model": "antarchy:block/stripped_royal_log_horizontal", + "x": 90 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_royal_wood.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_royal_wood.json new file mode 100644 index 00000000..356657d4 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_royal_wood.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/stripped_royal_wood" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_truffalo_log.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_truffalo_log.json new file mode 100644 index 00000000..8b18eecb --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_truffalo_log.json @@ -0,0 +1,14 @@ +{ + "variants": { + "axis=x": { + "model": "antarchy:block/stripped_truffalo_log_horizontal" + }, + "axis=y": { + "model": "antarchy:block/stripped_truffalo_log" + }, + "axis=z": { + "model": "antarchy:block/stripped_truffalo_log_horizontal", + "y": 90 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_truffalo_wood.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_truffalo_wood.json new file mode 100644 index 00000000..f6c15a4b --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/stripped_truffalo_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "antarchy:block/stripped_truffalo_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "antarchy:block/stripped_truffalo_wood" + }, + "axis=z": { + "model": "antarchy:block/stripped_truffalo_wood", + "x": 90 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/tigers_eye_block.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/tigers_eye_block.json new file mode 100644 index 00000000..dd98b388 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_button.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_button.json new file mode 100644 index 00000000..1e026ad1 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_button.json @@ -0,0 +1,119 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "antarchy:block/truffalo_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "antarchy:block/truffalo_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "antarchy:block/truffalo_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "antarchy:block/truffalo_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "antarchy:block/truffalo_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "antarchy:block/truffalo_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "antarchy:block/truffalo_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "antarchy:block/truffalo_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "antarchy:block/truffalo_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "antarchy:block/truffalo_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "antarchy:block/truffalo_button" + }, + "face=floor,facing=north,powered=true": { + "model": "antarchy:block/truffalo_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "antarchy:block/truffalo_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "antarchy:block/truffalo_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "antarchy:block/truffalo_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "antarchy:block/truffalo_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "antarchy:block/truffalo_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "antarchy:block/truffalo_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "antarchy:block/truffalo_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "antarchy:block/truffalo_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "antarchy:block/truffalo_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "antarchy:block/truffalo_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "antarchy:block/truffalo_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "antarchy:block/truffalo_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_door.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_door.json new file mode 100644 index 00000000..5b247211 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_door.json @@ -0,0 +1,125 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "antarchy:block/truffalo_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "antarchy:block/truffalo_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "antarchy:block/truffalo_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "antarchy:block/truffalo_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "antarchy:block/truffalo_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "antarchy:block/truffalo_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "antarchy:block/truffalo_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "antarchy:block/truffalo_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "antarchy:block/truffalo_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "antarchy:block/truffalo_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "antarchy:block/truffalo_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "antarchy:block/truffalo_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "antarchy:block/truffalo_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "antarchy:block/truffalo_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "antarchy:block/truffalo_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "antarchy:block/truffalo_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "antarchy:block/truffalo_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "antarchy:block/truffalo_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "antarchy:block/truffalo_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "antarchy:block/truffalo_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "antarchy:block/truffalo_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "antarchy:block/truffalo_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "antarchy:block/truffalo_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "antarchy:block/truffalo_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "antarchy:block/truffalo_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "antarchy:block/truffalo_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "antarchy:block/truffalo_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "antarchy:block/truffalo_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "antarchy:block/truffalo_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "antarchy:block/truffalo_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "antarchy:block/truffalo_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "antarchy:block/truffalo_door_top_right_open", + "y": 90 + } + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_fence.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_fence.json new file mode 100644 index 00000000..f6e05b9b --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_fence.json @@ -0,0 +1,49 @@ +{ + "multipart": [ + { + "apply": { + "model": "antarchy:block/truffalo_fence_post" + } + }, + { + "apply": { + "model": "antarchy:block/truffalo_fence_side", + "uvlock": true + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "antarchy:block/truffalo_fence_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "antarchy:block/truffalo_fence_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "antarchy:block/truffalo_fence_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + } + ] +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_fence_gate.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_fence_gate.json new file mode 100644 index 00000000..af596f37 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_fence_gate.json @@ -0,0 +1,81 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "model": "antarchy:block/truffalo_fence_gate", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=false,open=true": { + "model": "antarchy:block/truffalo_fence_gate_open", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=false": { + "model": "antarchy:block/truffalo_fence_gate_wall", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=true": { + "model": "antarchy:block/truffalo_fence_gate_wall_open", + "uvlock": true, + "y": 270 + }, + "facing=north,in_wall=false,open=false": { + "model": "antarchy:block/truffalo_fence_gate", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=false,open=true": { + "model": "antarchy:block/truffalo_fence_gate_open", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=false": { + "model": "antarchy:block/truffalo_fence_gate_wall", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=true": { + "model": "antarchy:block/truffalo_fence_gate_wall_open", + "uvlock": true, + "y": 180 + }, + "facing=south,in_wall=false,open=false": { + "model": "antarchy:block/truffalo_fence_gate", + "uvlock": true + }, + "facing=south,in_wall=false,open=true": { + "model": "antarchy:block/truffalo_fence_gate_open", + "uvlock": true + }, + "facing=south,in_wall=true,open=false": { + "model": "antarchy:block/truffalo_fence_gate_wall", + "uvlock": true + }, + "facing=south,in_wall=true,open=true": { + "model": "antarchy:block/truffalo_fence_gate_wall_open", + "uvlock": true + }, + "facing=west,in_wall=false,open=false": { + "model": "antarchy:block/truffalo_fence_gate", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=false,open=true": { + "model": "antarchy:block/truffalo_fence_gate_open", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=false": { + "model": "antarchy:block/truffalo_fence_gate_wall", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=true": { + "model": "antarchy:block/truffalo_fence_gate_wall_open", + "uvlock": true, + "y": 90 + } + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_hanging_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_hanging_sign.json new file mode 100644 index 00000000..ca9077ec --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_hanging_sign" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_log.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_log.json new file mode 100644 index 00000000..1369d404 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_log.json @@ -0,0 +1,14 @@ +{ + "variants": { + "axis=x": { + "model": "antarchy:block/truffalo_log_horizontal" + }, + "axis=y": { + "model": "antarchy:block/truffalo_log" + }, + "axis=z": { + "model": "antarchy:block/truffalo_log_horizontal", + "y": 90 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_planks.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_planks.json new file mode 100644 index 00000000..725a3452 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_planks" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_pressure_plate.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_pressure_plate.json new file mode 100644 index 00000000..bced016f --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "antarchy:block/truffalo_pressure_plate" + }, + "powered=true": { + "model": "antarchy:block/truffalo_pressure_plate_down" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_sapling.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_sapling.json new file mode 100644 index 00000000..e35deabc --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_sapling" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_sign.json new file mode 100644 index 00000000..cc22d4e5 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_sign" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_slab.json new file mode 100644 index 00000000..2ca5b864 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "antarchy:block/truffalo_slab" + }, + "type=double": { + "model": "antarchy:block/truffalo_planks" + }, + "type=top": { + "model": "antarchy:block/truffalo_slab_top" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_stairs.json new file mode 100644 index 00000000..9fa999b5 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_stairs.json @@ -0,0 +1,210 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/truffalo_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/truffalo_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/truffalo_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/truffalo_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/truffalo_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/truffalo_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/truffalo_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/truffalo_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/truffalo_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/truffalo_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/truffalo_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/truffalo_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/truffalo_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/truffalo_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/truffalo_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/truffalo_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/truffalo_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/truffalo_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/truffalo_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/truffalo_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/truffalo_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/truffalo_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/truffalo_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/truffalo_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/truffalo_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/truffalo_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/truffalo_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/truffalo_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/truffalo_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/truffalo_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/truffalo_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/truffalo_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/truffalo_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/truffalo_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/truffalo_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/truffalo_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/truffalo_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/truffalo_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/truffalo_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/truffalo_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_trapdoor.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_trapdoor.json new file mode 100644 index 00000000..b96f1c2c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_trapdoor.json @@ -0,0 +1,70 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "antarchy:block/truffalo_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "antarchy:block/truffalo_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "antarchy:block/truffalo_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "antarchy:block/truffalo_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "antarchy:block/truffalo_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "antarchy:block/truffalo_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "antarchy:block/truffalo_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "antarchy:block/truffalo_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "antarchy:block/truffalo_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "antarchy:block/truffalo_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "antarchy:block/truffalo_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "antarchy:block/truffalo_trapdoor_open", + "x": 180, + "y": 0 + }, + "facing=west,half=bottom,open=false": { + "model": "antarchy:block/truffalo_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "antarchy:block/truffalo_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "antarchy:block/truffalo_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "antarchy:block/truffalo_trapdoor_open", + "x": 180, + "y": 90 + } + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_wall_hanging_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_wall_hanging_sign.json new file mode 100644 index 00000000..bd349912 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_wall_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_wall_hanging_sign" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_wall_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_wall_sign.json new file mode 100644 index 00000000..7968d0ee --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_wall_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_wall_sign" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_wood.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_wood.json new file mode 100644 index 00000000..16eb8297 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/truffalo_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "antarchy:block/truffalo_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "antarchy:block/truffalo_wood" + }, + "axis=z": { + "model": "antarchy:block/truffalo_wood", + "x": 90 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite.json new file mode 100644 index 00000000..da7792b6 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/typhonite" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_brick_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_brick_slab.json new file mode 100644 index 00000000..6a14317d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double": { + "model": "antarchy:block/typhonite_bricks" + }, + "type=bottom": { + "model": "antarchy:block/typhonite_brick_slab" + }, + "type=top": { + "model": "antarchy:block/typhonite_brick_slab_top" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_brick_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_brick_stairs.json new file mode 100644 index 00000000..fa67db42 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/typhonite_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/typhonite_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/typhonite_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/typhonite_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/typhonite_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/typhonite_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/typhonite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/typhonite_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/typhonite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/typhonite_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/typhonite_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/typhonite_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/typhonite_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/typhonite_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/typhonite_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/typhonite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/typhonite_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/typhonite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/typhonite_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/typhonite_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/typhonite_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/typhonite_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/typhonite_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/typhonite_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/typhonite_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/typhonite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/typhonite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/typhonite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/typhonite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/typhonite_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/typhonite_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/typhonite_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/typhonite_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/typhonite_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/typhonite_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/typhonite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/typhonite_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/typhonite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/typhonite_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/typhonite_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_brick_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_brick_wall.json new file mode 100644 index 00000000..431ccf05 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_brick_wall.json @@ -0,0 +1,40 @@ +{ + "multipart": [ + { + "when": { "up": "true" }, + "apply": { "model": "antarchy:block/typhonite_brick_wall_post" } + }, + { + "when": { "north": "low" }, + "apply": { "model": "antarchy:block/typhonite_brick_wall_side", "uvlock": true } + }, + { + "when": { "east": "low" }, + "apply": { "model": "antarchy:block/typhonite_brick_wall_side", "y": 90, "uvlock": true } + }, + { + "when": { "south": "low" }, + "apply": { "model": "antarchy:block/typhonite_brick_wall_side", "y": 180, "uvlock": true } + }, + { + "when": { "west": "low" }, + "apply": { "model": "antarchy:block/typhonite_brick_wall_side", "y": 270, "uvlock": true } + }, + { + "when": { "north": "tall" }, + "apply": { "model": "antarchy:block/typhonite_brick_wall_side_tall", "uvlock": true } + }, + { + "when": { "east": "tall" }, + "apply": { "model": "antarchy:block/typhonite_brick_wall_side_tall", "y": 90, "uvlock": true } + }, + { + "when": { "south": "tall" }, + "apply": { "model": "antarchy:block/typhonite_brick_wall_side_tall", "y": 180, "uvlock": true } + }, + { + "when": { "west": "tall" }, + "apply": { "model": "antarchy:block/typhonite_brick_wall_side_tall", "y": 270, "uvlock": true } + } + ] +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_bricks.json new file mode 100644 index 00000000..64621e5f --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/typhonite_bricks" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_pillar.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_pillar.json new file mode 100644 index 00000000..c1dab633 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_pillar.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "antarchy:block/typhonite_pillar", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "antarchy:block/typhonite_pillar" + }, + "axis=z": { + "model": "antarchy:block/typhonite_pillar", + "x": 90 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_slab.json new file mode 100644 index 00000000..7ca2af49 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double": { + "model": "antarchy:block/typhonite" + }, + "type=bottom": { + "model": "antarchy:block/typhonite_slab" + }, + "type=top": { + "model": "antarchy:block/typhonite_slab_top" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_spike.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_spike.json new file mode 100644 index 00000000..b22e8a99 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_spike.json @@ -0,0 +1,44 @@ +{ + "variants": { + "thickness=base,vertical_direction=down": { + "model": "antarchy:block/typhonite_spike_down_base", + "x": 180, + "uvlock": true + }, + "thickness=base,vertical_direction=up": { + "model": "antarchy:block/typhonite_spike_up_base" + }, + "thickness=frustum,vertical_direction=down": { + "model": "antarchy:block/typhonite_spike_down_frustum", + "x": 180, + "uvlock": true + }, + "thickness=frustum,vertical_direction=up": { + "model": "antarchy:block/typhonite_spike_up_frustum" + }, + "thickness=middle,vertical_direction=down": { + "model": "antarchy:block/typhonite_spike_down_middle", + "x": 180, + "uvlock": true + }, + "thickness=middle,vertical_direction=up": { + "model": "antarchy:block/typhonite_spike_up_middle" + }, + "thickness=tip,vertical_direction=down": { + "model": "antarchy:block/typhonite_spike_down_tip", + "x": 180, + "uvlock": true + }, + "thickness=tip,vertical_direction=up": { + "model": "antarchy:block/typhonite_spike_up_tip" + }, + "thickness=tip_merge,vertical_direction=down": { + "model": "antarchy:block/typhonite_spike_down_tip_merge", + "x": 180, + "uvlock": true + }, + "thickness=tip_merge,vertical_direction=up": { + "model": "antarchy:block/typhonite_spike_up_tip_merge" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_stairs.json new file mode 100644 index 00000000..b818971c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/typhonite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/typhonite_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/typhonite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/typhonite_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/typhonite_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/typhonite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/typhonite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/typhonite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/typhonite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/typhonite_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/typhonite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/typhonite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/typhonite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/typhonite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/typhonite_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/typhonite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/typhonite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/typhonite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/typhonite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/typhonite_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/typhonite_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/typhonite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/typhonite_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/typhonite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/typhonite_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/typhonite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/typhonite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/typhonite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/typhonite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/typhonite_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/typhonite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/typhonite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/typhonite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/typhonite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/typhonite_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/typhonite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/typhonite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/typhonite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/typhonite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/typhonite_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_wall.json new file mode 100644 index 00000000..32859008 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/typhonite_wall.json @@ -0,0 +1,40 @@ +{ + "multipart": [ + { + "when": { "up": "true" }, + "apply": { "model": "antarchy:block/typhonite_wall_post" } + }, + { + "when": { "north": "low" }, + "apply": { "model": "antarchy:block/typhonite_wall_side", "uvlock": true } + }, + { + "when": { "east": "low" }, + "apply": { "model": "antarchy:block/typhonite_wall_side", "y": 90, "uvlock": true } + }, + { + "when": { "south": "low" }, + "apply": { "model": "antarchy:block/typhonite_wall_side", "y": 180, "uvlock": true } + }, + { + "when": { "west": "low" }, + "apply": { "model": "antarchy:block/typhonite_wall_side", "y": 270, "uvlock": true } + }, + { + "when": { "north": "tall" }, + "apply": { "model": "antarchy:block/typhonite_wall_side_tall", "uvlock": true } + }, + { + "when": { "east": "tall" }, + "apply": { "model": "antarchy:block/typhonite_wall_side_tall", "y": 90, "uvlock": true } + }, + { + "when": { "south": "tall" }, + "apply": { "model": "antarchy:block/typhonite_wall_side_tall", "y": 180, "uvlock": true } + }, + { + "when": { "west": "tall" }, + "apply": { "model": "antarchy:block/typhonite_wall_side_tall", "y": 270, "uvlock": true } + } + ] +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/veined_typhonite.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/veined_typhonite.json new file mode 100644 index 00000000..dd4565d2 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/veined_typhonite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/veined_typhonite" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/verdant_nyxium.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/verdant_nyxium.json new file mode 100644 index 00000000..b1236083 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/verdant_nyxium.json @@ -0,0 +1,11 @@ +{ + "variants": { + "vertical_direction=up": { + "model": "antarchy:block/verdant_nyxium" + }, + "vertical_direction=down": { + "model": "antarchy:block/verdant_nyxium", + "x": 180 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/verdant_roots.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/verdant_roots.json new file mode 100644 index 00000000..7243adc8 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/verdant_roots.json @@ -0,0 +1,11 @@ +{ + "variants": { + "vertical_direction=up": { + "model": "antarchy:block/verdant_roots" + }, + "vertical_direction=down": { + "model": "antarchy:block/verdant_roots", + "x": 180 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/vortex_lens.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/vortex_lens.json new file mode 100644 index 00000000..c2102b8a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/vortex_lens.json @@ -0,0 +1,33 @@ +{ + "variants": { + "facing=up,powered=false,pushing=false": { "model": "antarchy:block/vortex_lens" }, + "facing=up,powered=false,pushing=true": { "model": "antarchy:block/vortex_lens" }, + "facing=up,powered=true,pushing=false": { "model": "antarchy:block/vortex_lens_on" }, + "facing=up,powered=true,pushing=true": { "model": "antarchy:block/vortex_lens_on_bluestone" }, + + "facing=down,powered=false,pushing=false": { "model": "antarchy:block/vortex_lens", "x": 180 }, + "facing=down,powered=false,pushing=true": { "model": "antarchy:block/vortex_lens", "x": 180 }, + "facing=down,powered=true,pushing=false": { "model": "antarchy:block/vortex_lens_on", "x": 180 }, + "facing=down,powered=true,pushing=true": { "model": "antarchy:block/vortex_lens_on_bluestone", "x": 180 }, + + "facing=north,powered=false,pushing=false": { "model": "antarchy:block/vortex_lens", "x": 90 }, + "facing=north,powered=false,pushing=true": { "model": "antarchy:block/vortex_lens", "x": 90 }, + "facing=north,powered=true,pushing=false": { "model": "antarchy:block/vortex_lens_on", "x": 90 }, + "facing=north,powered=true,pushing=true": { "model": "antarchy:block/vortex_lens_on_bluestone", "x": 90 }, + + "facing=south,powered=false,pushing=false": { "model": "antarchy:block/vortex_lens", "x": 270 }, + "facing=south,powered=false,pushing=true": { "model": "antarchy:block/vortex_lens", "x": 270 }, + "facing=south,powered=true,pushing=false": { "model": "antarchy:block/vortex_lens_on", "x": 270 }, + "facing=south,powered=true,pushing=true": { "model": "antarchy:block/vortex_lens_on_bluestone", "x": 270 }, + + "facing=west,powered=false,pushing=false": { "model": "antarchy:block/vortex_lens", "x": 90, "y": 270 }, + "facing=west,powered=false,pushing=true": { "model": "antarchy:block/vortex_lens", "x": 90, "y": 270 }, + "facing=west,powered=true,pushing=false": { "model": "antarchy:block/vortex_lens_on", "x": 90, "y": 270 }, + "facing=west,powered=true,pushing=true": { "model": "antarchy:block/vortex_lens_on_bluestone", "x": 90, "y": 270 }, + + "facing=east,powered=false,pushing=false": { "model": "antarchy:block/vortex_lens", "x": 90, "y": 90 }, + "facing=east,powered=false,pushing=true": { "model": "antarchy:block/vortex_lens", "x": 90, "y": 90 }, + "facing=east,powered=true,pushing=false": { "model": "antarchy:block/vortex_lens_on", "x": 90, "y": 90 }, + "facing=east,powered=true,pushing=true": { "model": "antarchy:block/vortex_lens_on_bluestone", "x": 90, "y": 90 } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/whirlflower.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/whirlflower.json new file mode 100644 index 00000000..4a6e3481 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/whirlflower.json @@ -0,0 +1,11 @@ +{ + "variants": { + "vertical_direction=up": { + "model": "antarchy:block/whirlflower" + }, + "vertical_direction=down": { + "model": "antarchy:block/whirlflower", + "x": 180 + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/white_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/white_truffalo_tuft.json new file mode 100644 index 00000000..ae692741 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/white_truffalo_tuft.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_tuft_white" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/blockstates/yellow_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/yellow_truffalo_tuft.json new file mode 100644 index 00000000..c552abcc --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/blockstates/yellow_truffalo_tuft.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/truffalo_tuft_yellow" + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/black_hole.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/black_hole.geo.json new file mode 100644 index 00000000..7bc78ad5 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/black_hole.geo.json @@ -0,0 +1,118 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 300, + "texture_height": 300, + "visible_bounds_width": 33, + "visible_bounds_height": 16, + "visible_bounds_offset": [0, 7, 0] + }, + "bones": [ + { + "name": "blocks", + "pivot": [136, -9, 0], + "cubes": [ + {"origin": [128, -17, -8], "size": [16, 16, 16], "uv": [0, 214]} + ] + }, + { + "name": "blocks11", + "pivot": [230, -9, 133], + "cubes": [ + {"origin": [222, -17, 125], "size": [16, 16, 16], "uv": [0, 214]} + ] + }, + { + "name": "blocks10", + "pivot": [18, -9, 0], + "cubes": [ + {"origin": [10, -17, -8], "size": [16, 16, 16], "uv": [0, 214]} + ] + }, + { + "name": "blocks9", + "pivot": [245, -9, 0], + "cubes": [ + {"origin": [237, -17, -8], "size": [16, 16, 16], "uv": [0, 214]} + ] + }, + { + "name": "blocks6", + "pivot": [155, -9, -152], + "cubes": [ + {"origin": [147, -17, -160], "size": [16, 16, 16], "uv": [0, 214]} + ] + }, + { + "name": "blocks3", + "pivot": [66, -9, 175], + "cubes": [ + {"origin": [58, -17, 167], "size": [16, 16, 16], "uv": [0, 214]} + ] + }, + { + "name": "blocks2", + "pivot": [-111, -9, 0], + "cubes": [ + {"origin": [-119, -17, -8], "size": [16, 16, 16], "uv": [0, 214]} + ] + }, + { + "name": "blocks8", + "pivot": [-248, -9, 0], + "cubes": [ + {"origin": [-256, -17, -8], "size": [16, 16, 16], "uv": [0, 214]} + ] + }, + { + "name": "blocks5", + "pivot": [-111, -9, 176], + "cubes": [ + {"origin": [-119, -17, 168], "size": [16, 16, 16], "uv": [0, 214]} + ] + }, + { + "name": "blocks4", + "pivot": [-35, -9, -146], + "cubes": [ + {"origin": [-43, -17, -154], "size": [16, 16, 16], "uv": [0, 214]} + ] + }, + { + "name": "blocks7", + "pivot": [-193, -9, -146], + "cubes": [ + {"origin": [-201, -17, -154], "size": [16, 16, 16], "uv": [0, 214]} + ] + }, + { + "name": "black_hole", + "pivot": [0, 151, 0], + "cubes": [ + {"origin": [-75, 151, -75], "size": [150, 0, 150], "uv": [-150, 0]}, + {"origin": [-16, 130, -16], "size": [32, 32, 32], "uv": [0, 150]}, + {"origin": [-75, 151, -75], "size": [150, 0, 150], "pivot": [0, 151, 0], "rotation": [90, 0, 0], "uv": [-150, 0]} + ] + }, + { + "name": "beam", + "parent": "black_hole", + "pivot": [0, 147, 0], + "cubes": [ + {"origin": [-16, 123, -16], "size": [32, 48, 32], "uv": [172, 152]} + ] + }, + { + "name": "group", + "pivot": [0, 147, 0], + "cubes": [ + {"origin": [-16, 123, -16], "size": [32, 48, 32], "uv": [172, 152]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/eye_of_the_storm.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/eye_of_the_storm.geo.json new file mode 100644 index 00000000..0526dfce --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/eye_of_the_storm.geo.json @@ -0,0 +1,217 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.eye_of_the_storm", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 2, + "visible_bounds_height": 4, + "visible_bounds_offset": [0, 1, 0] + }, + "bones": [ + { + "name": "eye_of_the_storm", + "pivot": [8, 0, -8] + }, + { + "name": "staff", + "parent": "eye_of_the_storm", + "pivot": [1, -8, -1], + "cubes": [ + { + "origin": [-0.5, -12, -0.5], + "size": [1, 36, 1], + "uv": { + "north": {"uv": [3, 0], "uv_size": [1, 36]}, + "east": {"uv": [3, 0], "uv_size": [1, 36]}, + "south": {"uv": [3, 0], "uv_size": [1, 36]}, + "west": {"uv": [3, 0], "uv_size": [1, 36]}, + "up": {"uv": [4, 36], "uv_size": [-1, -36]}, + "down": {"uv": [4, 36], "uv_size": [-1, -36]} + } + }, + { + "origin": [-1.5, -15, -1.5], + "size": [3, 3, 3], + "uv": { + "north": {"uv": [17, 20], "uv_size": [3, 3]}, + "east": {"uv": [17, 20], "uv_size": [3, 3]}, + "south": {"uv": [17, 20], "uv_size": [3, 3]}, + "west": {"uv": [17, 20], "uv_size": [3, 3]}, + "up": {"uv": [23, 23], "uv_size": [-3, -3]}, + "down": {"uv": [23, 23], "uv_size": [-3, -3]} + } + }, + { + "origin": [-2, 30, -2], + "size": [4, 2, 4], + "uv": { + "north": {"uv": [7, 21], "uv_size": [4, 2]}, + "east": {"uv": [7, 21], "uv_size": [4, 2]}, + "south": {"uv": [7, 21], "uv_size": [4, 2]}, + "west": {"uv": [7, 21], "uv_size": [4, 2]}, + "up": {"uv": [20, 4], "uv_size": [-4, -4]}, + "down": {"uv": [12, 28], "uv_size": [-4, -4]} + } + }, + { + "origin": [-2, 20, -2], + "size": [4, 2, 4], + "uv": { + "north": {"uv": [7, 21], "uv_size": [4, 2]}, + "east": {"uv": [7, 21], "uv_size": [4, 2]}, + "south": {"uv": [7, 21], "uv_size": [4, 2]}, + "west": {"uv": [7, 21], "uv_size": [4, 2]}, + "up": {"uv": [20, 4], "uv_size": [-4, -4]}, + "down": {"uv": [12, 28], "uv_size": [-4, -4]} + } + }, + { + "origin": [-0.5, 29, -0.5], + "size": [1, 1, 1], + "uv": { + "north": {"uv": [3, 15], "uv_size": [1, 1]}, + "east": {"uv": [3, 15], "uv_size": [1, 1]}, + "south": {"uv": [3, 15], "uv_size": [1, 1]}, + "west": {"uv": [3, 15], "uv_size": [1, 1]}, + "up": {"uv": [4, 16], "uv_size": [-1, -1]}, + "down": {"uv": [4, 16], "uv_size": [-1, -1]} + } + } + ] + }, + { + "name": "top_ring", + "parent": "eye_of_the_storm", + "pivot": [0, 27, 0], + "cubes": [ + { + "origin": [-5, 26.5, -5], + "size": [0, 1, 10], + "uv": { + "north": {"uv": [0, 0], "uv_size": [0, 1]}, + "east": {"uv": [20, 0], "uv_size": [10, 1]}, + "south": {"uv": [0, 0], "uv_size": [0, 1]}, + "west": {"uv": [20, 0], "uv_size": [10, 1]}, + "up": {"uv": [0, 0], "uv_size": [0, 10]}, + "down": {"uv": [0, 10], "uv_size": [0, -10]} + } + }, + { + "origin": [5, 26.5, -5], + "size": [0, 1, 10], + "uv": { + "north": {"uv": [0, 0], "uv_size": [0, 1]}, + "east": {"uv": [20, 0], "uv_size": [10, 1]}, + "south": {"uv": [0, 0], "uv_size": [0, 1]}, + "west": {"uv": [20, 0], "uv_size": [10, 1]}, + "up": {"uv": [0, 0], "uv_size": [0, 10]}, + "down": {"uv": [0, 10], "uv_size": [0, -10]} + } + }, + { + "origin": [-5, 26.5, -5], + "size": [10, 1, 0], + "uv": { + "north": {"uv": [20, 0], "uv_size": [10, 1]}, + "east": {"uv": [0, 0], "uv_size": [0, 1]}, + "south": {"uv": [20, 0], "uv_size": [10, 1]}, + "west": {"uv": [0, 0], "uv_size": [0, 1]}, + "up": {"uv": [0, 0], "uv_size": [10, 0]}, + "down": {"uv": [0, 0], "uv_size": [10, 0]} + } + }, + { + "origin": [-5, 26.5, 5], + "size": [10, 1, 0], + "uv": { + "north": {"uv": [20, 0], "uv_size": [10, 1]}, + "east": {"uv": [0, 0], "uv_size": [0, 1]}, + "south": {"uv": [20, 0], "uv_size": [10, 1]}, + "west": {"uv": [0, 0], "uv_size": [0, 1]}, + "up": {"uv": [0, 0], "uv_size": [10, 0]}, + "down": {"uv": [0, 0], "uv_size": [10, 0]} + } + } + ] + }, + { + "name": "bottom_ring", + "parent": "eye_of_the_storm", + "pivot": [0, 25, 0], + "cubes": [ + { + "origin": [-5, 24.5, -5], + "size": [10, 1, 0], + "uv": { + "north": {"uv": [20, 0], "uv_size": [10, 1]}, + "east": {"uv": [0, 0], "uv_size": [0, 1]}, + "south": {"uv": [20, 0], "uv_size": [10, 1]}, + "west": {"uv": [0, 0], "uv_size": [0, 1]}, + "up": {"uv": [0, 0], "uv_size": [10, 0]}, + "down": {"uv": [0, 0], "uv_size": [10, 0]} + } + }, + { + "origin": [5, 24.5, -5], + "size": [0, 1, 10], + "uv": { + "north": {"uv": [0, 0], "uv_size": [0, 1]}, + "east": {"uv": [20, 0], "uv_size": [10, 1]}, + "south": {"uv": [0, 0], "uv_size": [0, 1]}, + "west": {"uv": [20, 0], "uv_size": [10, 1]}, + "up": {"uv": [0, 0], "uv_size": [0, 10]}, + "down": {"uv": [0, 10], "uv_size": [0, -10]} + } + }, + { + "origin": [-5, 24.5, 5], + "size": [10, 1, 0], + "uv": { + "north": {"uv": [20, 0], "uv_size": [10, 1]}, + "east": {"uv": [0, 0], "uv_size": [0, 1]}, + "south": {"uv": [20, 0], "uv_size": [10, 1]}, + "west": {"uv": [0, 0], "uv_size": [0, 1]}, + "up": {"uv": [0, 0], "uv_size": [10, 0]}, + "down": {"uv": [0, 0], "uv_size": [10, 0]} + } + }, + { + "origin": [-5, 24.5, -5], + "size": [0, 1, 10], + "uv": { + "north": {"uv": [0, 0], "uv_size": [0, 1]}, + "east": {"uv": [20, 0], "uv_size": [10, 1]}, + "south": {"uv": [0, 0], "uv_size": [0, 1]}, + "west": {"uv": [20, 0], "uv_size": [10, 1]}, + "up": {"uv": [0, 0], "uv_size": [0, 10]}, + "down": {"uv": [0, 10], "uv_size": [0, -10]} + } + } + ] + }, + { + "name": "eye", + "parent": "eye_of_the_storm", + "pivot": [0, 26, 0], + "cubes": [ + { + "origin": [-3, 23, -3], + "size": [6, 6, 6], + "uv": { + "north": {"uv": [10, 0], "uv_size": [6, 6]}, + "east": {"uv": [10, 0], "uv_size": [6, 6]}, + "south": {"uv": [10, 0], "uv_size": [6, 6]}, + "west": {"uv": [10, 0], "uv_size": [6, 6]}, + "up": {"uv": [10, 12], "uv_size": [-6, -6]}, + "down": {"uv": [10, 6], "uv_size": [-6, -6]} + } + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/fire_ball.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/fire_ball.geo.json new file mode 100644 index 00000000..dc9ff1f0 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/fire_ball.geo.json @@ -0,0 +1,28 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 128, + "texture_height": 128, + "visible_bounds_width": 7, + "visible_bounds_height": 4, + "visible_bounds_offset": [0, 1, 0] + }, + "bones": [ + { + "name": "fireball", + "pivot": [0, 8, 8.1], + "cubes": [ + {"origin": [-6, -25, -8], "size": [0, 36, 52], "pivot": [0, -7, 18], "rotation": [0, 0, 90], "uv": [0, 40]}, + {"origin": [-24, -25, -8], "size": [0, 36, 52], "pivot": [0, -7, 18], "rotation": [0, 0, 90], "uv": [0, 40]}, + {"origin": [-23, -14, -8], "size": [15, 14, 13], "pivot": [0, -7, 18], "rotation": [0, 0, 90], "uv": [0, 0]}, + {"origin": [8, -10, -8], "size": [0, 36, 52], "uv": [0, 40], "mirror": true}, + {"origin": [-8, -10, -8], "size": [0, 36, 52], "uv": [0, 40]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/hoverboard.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/hoverboard.geo.json new file mode 100644 index 00000000..0a140e50 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/hoverboard.geo.json @@ -0,0 +1,75 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 4, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "hoverboard", + "pivot": [0, 5.54167, -1.56398], + "cubes": [ + {"origin": [-4.5, 5, -11], "size": [9, 1, 8], "uv": [0, 0]}, + {"origin": [-2.5, 5, -2], "size": [5, 1, 5], "uv": [34, 12]}, + {"origin": [-9, 5, -15], "size": [3, 1, 8], "pivot": [-9.5, 5.5, -9], "rotation": [0, -22.5, 0], "uv": [0, 35]}, + {"origin": [-10, 5, -13], "size": [1, 1, 2], "pivot": [-9.5, 5.5, -9], "rotation": [0, -22.5, 0], "uv": [44, 21]}, + {"origin": [-9, 6, -18], "size": [3, 0, 3], "pivot": [-9.5, 5.5, -9], "rotation": [0, -22.5, 0], "uv": [18, 44]}, + {"origin": [9, 5, -13], "size": [1, 1, 2], "pivot": [9.5, 5.5, -9], "rotation": [0, 22.5, 0], "uv": [44, 24]}, + {"origin": [6, 6, -18], "size": [3, 0, 3], "pivot": [9.5, 5.5, -9], "rotation": [0, 22.5, 0], "uv": [44, 18]}, + {"origin": [6, 5, -15], "size": [3, 1, 8], "pivot": [9.5, 5.5, -9], "rotation": [0, 22.5, 0], "uv": [22, 35]}, + {"origin": [-3.5, 6, -15], "size": [7, 0, 4], "uv": [-1, 44]}, + {"origin": [-4.5, 5, 4], "size": [9, 1, 8], "uv": [0, 9]}, + {"origin": [-1.5, 9, 13], "size": [3, 1, 5], "uv": [0, 55]}, + {"origin": [-4.5, 5, 13], "size": [9, 4, 3], "uv": [0, 48]}, + {"origin": [-8.5, 5, -6], "size": [2, 4, 4], "uv": [46, 27]}, + {"origin": [6.5, 5, -6], "size": [2, 4, 4], "uv": [46, 27], "mirror": true}, + {"origin": [-5, 4, -6], "size": [0, 4, 4], "pivot": [-5, 6, -4], "rotation": [45, 0, 0], "uv": [36, 31]}, + {"origin": [5, 4, -6], "size": [0, 4, 4], "pivot": [5, 6, -4], "rotation": [45, 0, 0], "uv": [36, 31], "mirror": true} + ] + }, + { + "name": "disk_front", + "parent": "hoverboard", + "pivot": [0, 2, -7], + "cubes": [ + {"origin": [-3.5, 3, -10], "size": [7, 0, 6], "uv": [26, 29]}, + {"origin": [-3.5, 1, -10], "size": [7, 0, 6], "uv": [0, 29]} + ] + }, + { + "name": "disk_back", + "parent": "hoverboard", + "pivot": [0, 2, 8], + "cubes": [ + {"origin": [-3.5, 3, 5], "size": [7, 0, 6], "uv": [34, 6]}, + {"origin": [-3.5, 1, 5], "size": [7, 0, 6], "uv": [34, 0]} + ] + }, + { + "name": "motor_right", + "parent": "hoverboard", + "pivot": [-9.06066, 6.5, 8], + "cubes": [ + {"origin": [-8.5, 5, 4], "size": [3, 3, 8], "pivot": [-7, 6.5, 8], "rotation": [0, 0, -45], "uv": [0, 18], "mirror": true}, + {"origin": [-13.12132, 6.5, 4], "size": [4, 0, 8], "uv": [6, 18], "mirror": true} + ] + }, + { + "name": "motor_left", + "parent": "hoverboard", + "pivot": [9.06066, 6.5, 8], + "cubes": [ + {"origin": [5.5, 5, 4], "size": [3, 3, 8], "pivot": [7, 6.5, 8], "rotation": [0, 0, 45], "uv": [0, 18]}, + {"origin": [9.12132, 6.5, 4], "size": [4, 0, 8], "uv": [6, 18]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/ice_ball.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/ice_ball.geo.json new file mode 100644 index 00000000..9e51b94b --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/ice_ball.geo.json @@ -0,0 +1,24 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "ice_ball", + "pivot": [0, 8, 0], + "cubes": [ + {"origin": [-8, 0, -8], "size": [16, 16, 16], "uv": [0, 0]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/ice_spike.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/ice_spike.geo.json new file mode 100644 index 00000000..89c4648d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/ice_spike.geo.json @@ -0,0 +1,214 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 256, + "texture_height": 256, + "visible_bounds_width": 17, + "visible_bounds_height": 6.5, + "visible_bounds_offset": [0, 2.75, 0] + }, + "bones": [ + { + "name": "bb_main", + "pivot": [0, 0, 0], + "locators": { + "spike_2": [0, 0, -39], + "spike_3": [0, 0, -80], + "spike_4": [0, 0, -121] + } + }, + { + "name": "group", + "pivot": [0, 0, 0], + "rotation": [0, 90, 0] + }, + { + "name": "ice_spike_impact", + "parent": "group", + "pivot": [-1.4, 46.7, 0], + "cubes": [ + {"origin": [-7, 0, -7], "size": [14, 29, 14], "inflate": -0.03, "uv": [0, 108]}, + {"origin": [-6, 29, -6], "size": [12, 10, 12], "inflate": -0.03, "uv": [0, 151]}, + {"origin": [-5, 39, -5], "size": [10, 10, 10], "inflate": -0.03, "uv": [56, 108]}, + {"origin": [-3, 59, -3], "size": [6, 10, 6], "inflate": -0.03, "uv": [50, 146]}, + {"origin": [-4, 49, -4], "size": [8, 10, 8], "inflate": -0.03, "uv": [56, 128]}, + {"origin": [-2, 69, -2], "size": [4, 10, 4], "inflate": -0.03, "uv": [48, 162]}, + {"origin": [5, 39, 0], "size": [19, 16, 0], "inflate": -0.03, "uv": [74, 146]}, + {"origin": [-25, 9, 0], "size": [18, 26, 0], "inflate": -0.03, "uv": [0, 173]}, + {"origin": [-16, 40, 0], "size": [18, 17, 0], "inflate": -0.03, "uv": [0, 199]}, + {"origin": [-8, 61, 0], "size": [5, 8, 0], "inflate": -0.03, "uv": [65, 162]} + ] + }, + { + "name": "ice_spike", + "parent": "group", + "pivot": [-1.4, 46.7, 0], + "cubes": [ + {"origin": [-7, 0, -7], "size": [14, 29, 14], "uv": [0, 0]}, + {"origin": [-6, 29, -6], "size": [12, 10, 12], "uv": [0, 43]}, + {"origin": [-5, 39, -5], "size": [10, 10, 10], "uv": [56, 0]}, + {"origin": [-3, 59, -3], "size": [6, 10, 6], "uv": [50, 38]}, + {"origin": [-4, 49, -4], "size": [8, 10, 8], "uv": [56, 20]}, + {"origin": [-2, 69, -2], "size": [4, 10, 4], "uv": [48, 54]}, + {"origin": [5, 39, 0], "size": [19, 16, 0], "uv": [74, 38]}, + {"origin": [-25, 9, 0], "size": [18, 26, 0], "uv": [0, 65]}, + {"origin": [-16, 40, 0], "size": [18, 17, 0], "uv": [0, 91]}, + {"origin": [-8, 61, 0], "size": [5, 8, 0], "uv": [65, 54]} + ] + }, + { + "name": "sparkle", + "parent": "ice_spike", + "pivot": [2.5, 79.5, -3], + "cubes": [ + {"origin": [1, 77, -3], "size": [3, 5, 0], "uv": [38, 46]} + ] + }, + { + "name": "group2", + "pivot": [0, 0, -40], + "rotation": [0, 90, 0] + }, + { + "name": "ice_spike_impact2", + "parent": "group2", + "pivot": [-1.4, 46.7, -40], + "cubes": [ + {"origin": [-7, 0, -47], "size": [14, 29, 14], "inflate": -0.03, "uv": [0, 108]}, + {"origin": [-6, 29, -46], "size": [12, 10, 12], "inflate": -0.03, "uv": [0, 151]}, + {"origin": [-5, 39, -45], "size": [10, 10, 10], "inflate": -0.03, "uv": [56, 108]}, + {"origin": [-3, 59, -43], "size": [6, 10, 6], "inflate": -0.03, "uv": [50, 146]}, + {"origin": [-4, 49, -44], "size": [8, 10, 8], "inflate": -0.03, "uv": [56, 128]}, + {"origin": [-2, 69, -42], "size": [4, 10, 4], "inflate": -0.03, "uv": [48, 162]}, + {"origin": [5, 39, -40], "size": [19, 16, 0], "inflate": -0.03, "uv": [74, 146]}, + {"origin": [-25, 9, -40], "size": [18, 26, 0], "inflate": -0.03, "uv": [0, 173]}, + {"origin": [-16, 40, -40], "size": [18, 17, 0], "inflate": -0.03, "uv": [0, 199]}, + {"origin": [-8, 61, -40], "size": [5, 8, 0], "inflate": -0.03, "uv": [65, 162]} + ] + }, + { + "name": "ice_spike2", + "parent": "group2", + "pivot": [-1.4, 46.7, -40], + "cubes": [ + {"origin": [-7, 0, -47], "size": [14, 29, 14], "uv": [0, 0]}, + {"origin": [-6, 29, -46], "size": [12, 10, 12], "uv": [0, 43]}, + {"origin": [-5, 39, -45], "size": [10, 10, 10], "uv": [56, 0]}, + {"origin": [-3, 59, -43], "size": [6, 10, 6], "uv": [50, 38]}, + {"origin": [-4, 49, -44], "size": [8, 10, 8], "uv": [56, 20]}, + {"origin": [-2, 69, -42], "size": [4, 10, 4], "uv": [48, 54]}, + {"origin": [5, 39, -40], "size": [19, 16, 0], "uv": [74, 38]}, + {"origin": [-25, 9, -40], "size": [18, 26, 0], "uv": [0, 65]}, + {"origin": [-16, 40, -40], "size": [18, 17, 0], "uv": [0, 91]}, + {"origin": [-8, 61, -40], "size": [5, 8, 0], "uv": [65, 54]} + ] + }, + { + "name": "sparkle2", + "parent": "ice_spike2", + "pivot": [2.5, 79.5, -43], + "cubes": [ + {"origin": [1, 77, -43], "size": [3, 5, 0], "uv": [38, 46]} + ] + }, + { + "name": "group3", + "pivot": [0, 0, -80], + "rotation": [0, 90, 0] + }, + { + "name": "ice_spike_impact3", + "parent": "group3", + "pivot": [-1.4, 46.7, -80], + "cubes": [ + {"origin": [-7, 0, -87], "size": [14, 29, 14], "inflate": -0.03, "uv": [0, 108]}, + {"origin": [-6, 29, -86], "size": [12, 10, 12], "inflate": -0.03, "uv": [0, 151]}, + {"origin": [-5, 39, -85], "size": [10, 10, 10], "inflate": -0.03, "uv": [56, 108]}, + {"origin": [-3, 59, -83], "size": [6, 10, 6], "inflate": -0.03, "uv": [50, 146]}, + {"origin": [-4, 49, -84], "size": [8, 10, 8], "inflate": -0.03, "uv": [56, 128]}, + {"origin": [-2, 69, -82], "size": [4, 10, 4], "inflate": -0.03, "uv": [48, 162]}, + {"origin": [5, 39, -80], "size": [19, 16, 0], "inflate": -0.03, "uv": [74, 146]}, + {"origin": [-25, 9, -80], "size": [18, 26, 0], "inflate": -0.03, "uv": [0, 173]}, + {"origin": [-16, 40, -80], "size": [18, 17, 0], "inflate": -0.03, "uv": [0, 199]}, + {"origin": [-8, 61, -80], "size": [5, 8, 0], "inflate": -0.03, "uv": [65, 162]} + ] + }, + { + "name": "ice_spike3", + "parent": "group3", + "pivot": [-1.4, 46.7, -80], + "cubes": [ + {"origin": [-7, 0, -87], "size": [14, 29, 14], "uv": [0, 0]}, + {"origin": [-6, 29, -86], "size": [12, 10, 12], "uv": [0, 43]}, + {"origin": [-5, 39, -85], "size": [10, 10, 10], "uv": [56, 0]}, + {"origin": [-3, 59, -83], "size": [6, 10, 6], "uv": [50, 38]}, + {"origin": [-4, 49, -84], "size": [8, 10, 8], "uv": [56, 20]}, + {"origin": [-2, 69, -82], "size": [4, 10, 4], "uv": [48, 54]}, + {"origin": [5, 39, -80], "size": [19, 16, 0], "uv": [74, 38]}, + {"origin": [-25, 9, -80], "size": [18, 26, 0], "uv": [0, 65]}, + {"origin": [-16, 40, -80], "size": [18, 17, 0], "uv": [0, 91]}, + {"origin": [-8, 61, -80], "size": [5, 8, 0], "uv": [65, 54]} + ] + }, + { + "name": "sparkle3", + "parent": "ice_spike3", + "pivot": [2.5, 79.5, -83], + "cubes": [ + {"origin": [1, 77, -83], "size": [3, 5, 0], "uv": [38, 46]} + ] + }, + { + "name": "group4", + "pivot": [0, 0, -120], + "rotation": [0, 90, 0] + }, + { + "name": "ice_spike_impact4", + "parent": "group4", + "pivot": [-1.4, 46.7, -120], + "cubes": [ + {"origin": [-7, 0, -127], "size": [14, 29, 14], "inflate": -0.03, "uv": [0, 108]}, + {"origin": [-6, 29, -126], "size": [12, 10, 12], "inflate": -0.03, "uv": [0, 151]}, + {"origin": [-5, 39, -125], "size": [10, 10, 10], "inflate": -0.03, "uv": [56, 108]}, + {"origin": [-3, 59, -123], "size": [6, 10, 6], "inflate": -0.03, "uv": [50, 146]}, + {"origin": [-4, 49, -124], "size": [8, 10, 8], "inflate": -0.03, "uv": [56, 128]}, + {"origin": [-2, 69, -122], "size": [4, 10, 4], "inflate": -0.03, "uv": [48, 162]}, + {"origin": [5, 39, -120], "size": [19, 16, 0], "inflate": -0.03, "uv": [74, 146]}, + {"origin": [-25, 9, -120], "size": [18, 26, 0], "inflate": -0.03, "uv": [0, 173]}, + {"origin": [-16, 40, -120], "size": [18, 17, 0], "inflate": -0.03, "uv": [0, 199]}, + {"origin": [-8, 61, -120], "size": [5, 8, 0], "inflate": -0.03, "uv": [65, 162]} + ] + }, + { + "name": "ice_spike4", + "parent": "group4", + "pivot": [-1.4, 46.7, -120], + "cubes": [ + {"origin": [-7, 0, -127], "size": [14, 29, 14], "uv": [0, 0]}, + {"origin": [-6, 29, -126], "size": [12, 10, 12], "uv": [0, 43]}, + {"origin": [-5, 39, -125], "size": [10, 10, 10], "uv": [56, 0]}, + {"origin": [-3, 59, -123], "size": [6, 10, 6], "uv": [50, 38]}, + {"origin": [-4, 49, -124], "size": [8, 10, 8], "uv": [56, 20]}, + {"origin": [-2, 69, -122], "size": [4, 10, 4], "uv": [48, 54]}, + {"origin": [5, 39, -120], "size": [19, 16, 0], "uv": [74, 38]}, + {"origin": [-25, 9, -120], "size": [18, 26, 0], "uv": [0, 65]}, + {"origin": [-16, 40, -120], "size": [18, 17, 0], "uv": [0, 91]}, + {"origin": [-8, 61, -120], "size": [5, 8, 0], "uv": [65, 54]} + ] + }, + { + "name": "sparkle4", + "parent": "ice_spike4", + "pivot": [2.5, 79.5, -123], + "cubes": [ + {"origin": [1, 77, -123], "size": [3, 5, 0], "uv": [38, 46]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/king.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/king.geo.json new file mode 100644 index 00000000..427e095e --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/king.geo.json @@ -0,0 +1,501 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 512, + "texture_height": 512, + "visible_bounds_width": 36, + "visible_bounds_height": 8.5, + "visible_bounds_offset": [0, 3.75, 0] + }, + "bones": [ + { + "name": "King", + "pivot": [0, 58.96667, 12.86667] + }, + { + "name": "body", + "parent": "King", + "pivot": [0, 58.96667, 12.86667] + }, + { + "name": "L_wing4", + "parent": "body", + "pivot": [27, 61.5, -48], + "cubes": [ + {"origin": [25, 54, -54], "size": [13, 12, 14], "uv": [327, 161], "mirror": true}, + {"origin": [38, 58, -49], "size": [47, 8, 9], "uv": [83, 303], "mirror": true}, + {"origin": [6, 62, -40], "size": [70, 0, 83], "uv": [118, 92], "mirror": true} + ] + }, + { + "name": "L_wing5", + "parent": "L_wing4", + "pivot": [76, 62, -36], + "cubes": [ + {"origin": [76, 58, -40], "size": [69, 8, 9], "uv": [0, 283], "mirror": true}, + {"origin": [136, 58, -66], "size": [9, 8, 26], "uv": [381, 151], "mirror": true}, + {"origin": [139, 58, -92], "size": [6, 8, 26], "uv": [0, 249], "mirror": true}, + {"origin": [76, 62, -31], "size": [69, 0, 81], "uv": [27, 175], "mirror": true} + ] + }, + { + "name": "L_wing6", + "parent": "L_wing5", + "pivot": [145, 62, -40], + "cubes": [ + {"origin": [145, 62, -40], "size": [83, 0, 92], "uv": [85, 0], "mirror": true} + ] + }, + { + "name": "R_wing4", + "parent": "body", + "pivot": [-27, 61.5, -48], + "cubes": [ + {"origin": [-38, 54, -54], "size": [13, 12, 14], "uv": [327, 161]}, + {"origin": [-85, 58, -49], "size": [47, 8, 9], "uv": [83, 303]}, + {"origin": [-76, 62, -40], "size": [70, 0, 83], "uv": [118, 92]} + ] + }, + { + "name": "R_wing5", + "parent": "R_wing4", + "pivot": [-76, 62, -36], + "cubes": [ + {"origin": [-145, 58, -40], "size": [69, 8, 9], "uv": [0, 283]}, + {"origin": [-145, 58, -66], "size": [9, 8, 26], "uv": [381, 151]}, + {"origin": [-145, 58, -92], "size": [6, 8, 26], "uv": [0, 249]}, + {"origin": [-145, 62, -31], "size": [69, 0, 81], "uv": [27, 175]} + ] + }, + { + "name": "R_wing6", + "parent": "R_wing5", + "pivot": [-145, 62, -40], + "cubes": [ + {"origin": [-228, 62, -40], "size": [83, 0, 92], "uv": [85, 0]} + ] + }, + { + "name": "Torso", + "parent": "body", + "pivot": [0, 60.5, 12], + "cubes": [ + {"origin": [0, 96.76849, -60.81541], "size": [0, 15, 35], "uv": [60, 48]}, + {"origin": [0, 96.76849, -24.81541], "size": [0, 15, 35], "uv": [60, 48]}, + {"origin": [-24, 45, -61], "size": [48, 52, 96], "uv": [136, 256]}, + {"origin": [-54.5, 45, -61], "size": [0, 29, 20], "pivot": [-24, 74, -51], "rotation": [0, 0, -67.5], "uv": [192, 236]}, + {"origin": [-54.5, 74, -61], "size": [31, 0, 20], "pivot": [-24, 74, -51], "rotation": [0, 0, -67.5], "uv": [150, 332]}, + {"origin": [23.5, 74, -61], "size": [31, 0, 20], "pivot": [24, 74, -51], "rotation": [0, 0, 67.5], "uv": [150, 332], "mirror": true}, + {"origin": [54.5, 45, -61], "size": [0, 29, 20], "pivot": [24, 74, -51], "rotation": [0, 0, 67.5], "uv": [192, 236], "mirror": true} + ] + }, + { + "name": "neck", + "parent": "Torso", + "pivot": [0, 77, -74], + "rotation": [20, 0, 0], + "cubes": [ + {"origin": [-12, 65, -88], "size": [24, 26, 23], "inflate": 0.1, "pivot": [0, 68.5, -69], "rotation": [-20, 0, 0], "uv": [362, 268], "mirror": true}, + {"origin": [-11, 66, -108], "size": [22, 24, 59], "inflate": 0.1, "pivot": [0, 77.5, -69], "rotation": [-20, 0, 0], "uv": [0, 0]}, + {"origin": [0, 98.01849, -97.81541], "size": [0, 15, 35], "pivot": [0, 110.51849, -87.31541], "rotation": [-20, 0, 0], "uv": [60, 48]} + ] + }, + { + "name": "neck3", + "parent": "neck", + "pivot": [0, 91.02606, -104.81908], + "rotation": [-19.98762, 0, 0], + "cubes": [ + {"origin": [0, 101.02692, -143.81584], "size": [0, 15, 35], "uv": [60, 48]}, + {"origin": [-7.5, 83.02584, -144.81908], "size": [15, 18, 41], "uv": [89, 83]} + ] + }, + { + "name": "neck4", + "parent": "neck3", + "pivot": [0.5, 91.03751, -144.81908], + "cubes": [ + {"origin": [-6.5, 86.0347, -185.81908], "size": [13, 15, 41], "uv": [0, 146]}, + {"origin": [0, 101.0347, -179.81584], "size": [0, 15, 35], "uv": [60, 48]} + ] + }, + { + "name": "head", + "parent": "neck4", + "pivot": [0, 88.0347, -183.81908], + "cubes": [ + {"origin": [-9, 93.0347, -202.81843], "size": [18, 8, 19], "inflate": 0.1, "uv": [103, 32]}, + {"origin": [-15, 101.0347, -183.81843], "size": [30, 0, 45], "pivot": [0, 101.0347, -183.81843], "rotation": [22.5, 0, 0], "uv": [395, 243]}, + {"origin": [-5, 100.0347, -183.81843], "size": [30, 0, 45], "pivot": [10, 100.0347, -161.31843], "rotation": [0, 0, 90], "uv": [395, 243]}, + {"origin": [-25, 100.0347, -183.81843], "size": [30, 0, 45], "pivot": [-10, 100.0347, -161.31843], "rotation": [0, 0, -90], "uv": [395, 243], "mirror": true}, + {"origin": [-13, 91.0347, -192.81843], "size": [4, 6, 9], "uv": [132, 17]}, + {"origin": [-17, 91.0347, -187.81843], "size": [4, 6, 9], "uv": [158, 36]}, + {"origin": [-17, 91.0347, -178.81843], "size": [4, 4, 9], "uv": [150, 12]}, + {"origin": [9, 91.0347, -192.81843], "size": [4, 6, 9], "uv": [132, 17], "mirror": true}, + {"origin": [13, 91.0347, -187.81843], "size": [4, 6, 9], "uv": [158, 36], "mirror": true}, + {"origin": [13, 91.0347, -178.81843], "size": [4, 4, 9], "uv": [150, 12], "mirror": true}, + {"origin": [-7.5, 101.03405, -200.81778], "size": [15, 3, 15], "uv": [0, 83]}, + {"origin": [-6.5, 98.03405, -199.81735], "size": [13, 8, 13], "uv": [5, 38]}, + {"origin": [-5.5, 104.03405, -198.81606], "size": [11, 5, 11], "uv": [11, 22]}, + {"origin": [-12, 98.0347, -194.81886], "size": [4, 8, 12], "uv": [0, 0]}, + {"origin": [-11, 98.03211, -182.81886], "size": [2, 7, 6], "uv": [0, 20]}, + {"origin": [-11, 98.03081, -176.81886], "size": [2, 4, 7], "uv": [0, 33]}, + {"origin": [-2, 103.0347, -196.81886], "size": [4, 8, 12], "pivot": [0, 106.03276, -183.06886], "rotation": [22.5, 0, 0], "uv": [0, 0]}, + {"origin": [-1, 103.03211, -184.81886], "size": [2, 7, 6], "pivot": [0, 106.03276, -183.06886], "rotation": [22.5, 0, 0], "uv": [0, 20]}, + {"origin": [-1, 103.03081, -178.81886], "size": [2, 4, 7], "pivot": [0, 106.03276, -183.06886], "rotation": [22.5, 0, 0], "uv": [0, 33]}, + {"origin": [8, 98.0347, -194.81886], "size": [4, 8, 12], "uv": [0, 0], "mirror": true}, + {"origin": [9, 98.03211, -182.81886], "size": [2, 7, 6], "uv": [0, 20], "mirror": true}, + {"origin": [9, 98.03081, -176.81886], "size": [2, 4, 7], "uv": [0, 33], "mirror": true}, + {"origin": [-8.5, 85.0347, -193.82038], "size": [17, 9, 10], "uv": [0, 101]}, + {"origin": [-8, 90.0347, -202.82016], "size": [0, 3, 14], "uv": [54, 87]}, + {"origin": [8, 90.0347, -202.82016], "size": [0, 3, 14], "uv": [54, 87], "mirror": true}, + {"origin": [-5, 87.03881, -217.82038], "size": [10, 5, 0], "uv": [55, 118]}, + {"origin": [-5, 87.03881, -217.82038], "size": [0, 5, 15], "uv": [55, 98]}, + {"origin": [5, 87.03881, -217.82038], "size": [0, 5, 15], "uv": [55, 98], "mirror": true}, + {"origin": [-10.525, 99.0347, -203.81714], "size": [5, 3, 14], "uv": [92, 98]}, + {"origin": [5.525, 99.0347, -203.81714], "size": [5, 3, 14], "uv": [92, 98], "mirror": true}, + {"origin": [-5.5, 92.0347, -218.81843], "size": [11, 9, 16], "uv": [67, 142]}, + {"origin": [-2, 101.0347, -216.81843], "size": [4, 7, 6], "uv": [107, 145]}, + {"origin": [-26.5, 72.0347, -219.06843], "size": [25, 29, 0], "uv": [238, 452]}, + {"origin": [1.5, 72.0347, -219.06843], "size": [25, 29, 0], "uv": [238, 452], "mirror": true} + ] + }, + { + "name": "pharynx", + "parent": "head", + "pivot": [0, 88.0347, -184.81908] + }, + { + "name": "jaw", + "parent": "head", + "pivot": [0, 92.0347, -183.7693], + "cubes": [ + {"origin": [-10, 83.0347, -203.818], "size": [20, 7, 21], "inflate": 0.3, "uv": [149, 409]}, + {"origin": [-9, 85.0347, -202.818], "size": [18, 7, 19], "uv": [0, 120]}, + {"origin": [-15, 85.0347, -197.818], "size": [9, 0, 14], "pivot": [-9, 85.0347, -193.318], "rotation": [0, 0, -45], "uv": [89, 21]}, + {"origin": [6, 85.0347, -197.818], "size": [9, 0, 14], "pivot": [9, 85.0347, -193.318], "rotation": [0, 0, 45], "uv": [89, 21], "mirror": true}, + {"origin": [-9, 85.0347, -183.818], "size": [0, 7, 8], "pivot": [-9, 88.5347, -183.818], "rotation": [0, -45, 0], "uv": [104, 6]}, + {"origin": [9, 85.0347, -183.818], "size": [0, 7, 8], "pivot": [9, 88.5347, -183.818], "rotation": [0, 45, 0], "uv": [104, 6], "mirror": true}, + {"origin": [-9, 92.0347, -202.81649], "size": [0, 3, 15], "uv": [54, 92]}, + {"origin": [-5, 92.1147, -218.79798], "size": [10, 3, 0], "uv": [54, 110]}, + {"origin": [-5.479, 92.11448, -217.79798], "size": [0, 3, 15], "uv": [54, 89]}, + {"origin": [5.479, 92.11448, -217.79798], "size": [0, 3, 15], "uv": [54, 89], "mirror": true}, + {"origin": [9, 92.0347, -202.81649], "size": [0, 3, 15], "uv": [54, 92], "mirror": true}, + {"origin": [-5.5, 85.1347, -218.81798], "size": [11, 7, 16], "inflate": -0.02, "uv": [121, 142]}, + {"origin": [-6.5, 77.1347, -219.81798], "size": [13, 11, 6], "inflate": -0.02, "uv": [148, 438]}, + {"origin": [-5.5, 78.18427, -216.81948], "size": [11, 7, 0], "uv": [103, 7]}, + {"origin": [-5.5, 78.18405, -215.81948], "size": [0, 7, 16], "uv": [103, -16]}, + {"origin": [5.5, 78.18405, -215.81948], "size": [0, 7, 16], "uv": [103, -16], "mirror": true} + ] + }, + { + "name": "R_neck", + "parent": "Torso", + "pivot": [-21, 68, -74], + "rotation": [20, 0, 0], + "cubes": [ + {"origin": [-35, 65, -86], "size": [2, 9, 4], "inflate": 0.1, "pivot": [-21, 68.5, -69], "rotation": [-20, 0, 0], "uv": [400, 247]}, + {"origin": [-9, 65, -86], "size": [2, 9, 4], "inflate": 0.1, "pivot": [21, 68.5, -69], "rotation": [-20, 0, 0], "uv": [400, 247], "mirror": true}, + {"origin": [-33, 56, -95], "size": [24, 26, 23], "inflate": 0.1, "pivot": [-21, 68.5, -69], "rotation": [-20, 0, 0], "uv": [362, 268]}, + {"origin": [-32, 57, -108], "size": [22, 24, 59], "inflate": 0.1, "pivot": [-21, 68.5, -69], "rotation": [-20, 0, 0], "uv": [0, 0]}, + {"origin": [-21, 89.01849, -97.81541], "size": [0, 15, 35], "pivot": [-21, 101.51849, -87.31541], "rotation": [-20, 0, 0], "uv": [60, 48]} + ] + }, + { + "name": "R_neck2", + "parent": "R_neck", + "pivot": [-21, 82.02606, -104.81908], + "rotation": [-19.98762, 0, 0], + "cubes": [ + {"origin": [-21, 92.02692, -143.81584], "size": [0, 15, 35], "uv": [60, 48]}, + {"origin": [-28.5, 74.02584, -144.81908], "size": [15, 18, 41], "uv": [89, 83]} + ] + }, + { + "name": "R_neck3", + "parent": "R_neck2", + "pivot": [-20.5, 82.03751, -144.81908], + "cubes": [ + {"origin": [-27.5, 77.0347, -185.81908], "size": [13, 15, 41], "uv": [0, 146]}, + {"origin": [-21, 92.0347, -179.81584], "size": [0, 15, 35], "uv": [60, 48]} + ] + }, + { + "name": "R_head", + "parent": "R_neck3", + "pivot": [-21, 79.0347, -183.81908], + "cubes": [ + {"origin": [-30, 84.0347, -202.81843], "size": [18, 8, 19], "inflate": 0.1, "uv": [328, 325]}, + {"origin": [-33, 89.0347, -194.81886], "size": [4, 8, 12], "uv": [0, 0]}, + {"origin": [-32, 89.03211, -182.81886], "size": [2, 7, 6], "uv": [0, 20]}, + {"origin": [-32, 89.03081, -176.81886], "size": [2, 4, 7], "uv": [0, 33]}, + {"origin": [-13, 89.0347, -194.81886], "size": [4, 8, 12], "uv": [0, 0], "mirror": true}, + {"origin": [-12, 89.03211, -182.81886], "size": [2, 7, 6], "uv": [0, 20], "mirror": true}, + {"origin": [-12, 89.03081, -176.81886], "size": [2, 4, 7], "uv": [0, 33], "mirror": true}, + {"origin": [-29.5, 76.0347, -193.82038], "size": [17, 9, 10], "uv": [0, 101]}, + {"origin": [-29, 81.0347, -202.82016], "size": [0, 3, 14], "uv": [54, 87]}, + {"origin": [-13, 81.0347, -202.82016], "size": [0, 3, 14], "uv": [54, 87], "mirror": true}, + {"origin": [-26, 78.03881, -217.82038], "size": [10, 5, 0], "uv": [55, 118]}, + {"origin": [-26, 78.03881, -217.82038], "size": [0, 5, 15], "uv": [55, 98]}, + {"origin": [-16, 78.03881, -217.82038], "size": [0, 5, 15], "uv": [55, 98], "mirror": true}, + {"origin": [-31.525, 90.0347, -203.81714], "size": [5, 3, 14], "uv": [92, 98]}, + {"origin": [-15.475, 90.0347, -203.81714], "size": [5, 3, 14], "uv": [92, 98], "mirror": true}, + {"origin": [-26.5, 83.0347, -218.81843], "size": [11, 9, 16], "uv": [67, 142]} + ] + }, + { + "name": "R_jaw", + "parent": "R_head", + "pivot": [-21, 83.0347, -183.7693], + "cubes": [ + {"origin": [-30, 76.0347, -202.818], "size": [18, 7, 19], "uv": [0, 120]}, + {"origin": [-36, 76.0347, -197.818], "size": [9, 0, 14], "pivot": [-30, 76.0347, -193.318], "rotation": [0, 0, -45], "uv": [89, 21]}, + {"origin": [-15, 76.0347, -197.818], "size": [9, 0, 14], "pivot": [-12, 76.0347, -193.318], "rotation": [0, 0, 45], "uv": [89, 21], "mirror": true}, + {"origin": [-30, 76.0347, -183.818], "size": [0, 7, 8], "pivot": [-30, 79.5347, -183.818], "rotation": [0, -45, 0], "uv": [104, 6]}, + {"origin": [-12, 76.0347, -183.818], "size": [0, 7, 8], "pivot": [-12, 79.5347, -183.818], "rotation": [0, 45, 0], "uv": [104, 6], "mirror": true}, + {"origin": [-30, 83.0347, -202.81649], "size": [0, 3, 15], "uv": [54, 92]}, + {"origin": [-26, 83.1147, -218.79798], "size": [10, 3, 0], "uv": [54, 110]}, + {"origin": [-26.479, 83.11448, -217.79798], "size": [0, 3, 15], "uv": [54, 89]}, + {"origin": [-15.521, 83.11448, -217.79798], "size": [0, 3, 15], "uv": [54, 89], "mirror": true}, + {"origin": [-12, 83.0347, -202.81649], "size": [0, 3, 15], "uv": [54, 92], "mirror": true}, + {"origin": [-26.5, 76.1347, -218.81798], "size": [11, 7, 16], "inflate": -0.02, "uv": [121, 142]}, + {"origin": [-26.5, 69.18427, -216.81948], "size": [11, 7, 0], "uv": [103, 7]}, + {"origin": [-26.5, 69.18405, -215.81948], "size": [0, 7, 16], "uv": [103, -16]}, + {"origin": [-15.5, 69.18405, -215.81948], "size": [0, 7, 16], "uv": [103, -16], "mirror": true} + ] + }, + { + "name": "L_neck", + "parent": "Torso", + "pivot": [21, 68, -74], + "rotation": [20, 0, 0], + "cubes": [ + {"origin": [9, 56, -95], "size": [24, 26, 23], "inflate": 0.1, "pivot": [21, 68.5, -69], "rotation": [-20, 0, 0], "uv": [362, 268], "mirror": true}, + {"origin": [33, 65, -86], "size": [2, 9, 4], "inflate": 0.1, "pivot": [21, 68.5, -69], "rotation": [-20, 0, 0], "uv": [412, 247], "mirror": true}, + {"origin": [7, 65, -86], "size": [2, 9, 4], "inflate": 0.1, "pivot": [-21, 68.5, -69], "rotation": [-20, 0, 0], "uv": [412, 247]}, + {"origin": [10, 57, -108], "size": [22, 24, 59], "inflate": 0.1, "pivot": [21, 68.5, -69], "rotation": [-20, 0, 0], "uv": [0, 0], "mirror": true}, + {"origin": [21, 89.01849, -97.81541], "size": [0, 15, 35], "pivot": [21, 101.51849, -87.31541], "rotation": [-20, 0, 0], "uv": [60, 48], "mirror": true} + ] + }, + { + "name": "L_neck2", + "parent": "L_neck", + "pivot": [21, 82.02606, -104.81908], + "rotation": [-19.98762, 0, 0], + "cubes": [ + {"origin": [21, 92.02692, -143.81584], "size": [0, 15, 35], "uv": [60, 48], "mirror": true}, + {"origin": [13.5, 74.02584, -144.81908], "size": [15, 18, 41], "uv": [89, 83], "mirror": true} + ] + }, + { + "name": "L_neck3", + "parent": "L_neck2", + "pivot": [20.5, 82.03751, -144.81908], + "cubes": [ + {"origin": [14.5, 77.0347, -185.81908], "size": [13, 15, 41], "uv": [0, 146], "mirror": true}, + {"origin": [21, 92.0347, -179.81584], "size": [0, 15, 35], "uv": [60, 48], "mirror": true} + ] + }, + { + "name": "L_head", + "parent": "L_neck3", + "pivot": [21, 79.0347, -183.81908], + "cubes": [ + {"origin": [12, 84.0347, -202.81843], "size": [18, 8, 19], "inflate": 0.1, "uv": [402, 325], "mirror": true}, + {"origin": [29, 89.0347, -194.81886], "size": [4, 8, 12], "uv": [0, 0], "mirror": true}, + {"origin": [30, 89.03211, -182.81886], "size": [2, 7, 6], "uv": [0, 20], "mirror": true}, + {"origin": [30, 89.03081, -176.81886], "size": [2, 4, 7], "uv": [0, 33], "mirror": true}, + {"origin": [9, 89.0347, -194.81886], "size": [4, 8, 12], "uv": [0, 0]}, + {"origin": [10, 89.03211, -182.81886], "size": [2, 7, 6], "uv": [0, 20]}, + {"origin": [10, 89.03081, -176.81886], "size": [2, 4, 7], "uv": [0, 33]}, + {"origin": [12.5, 76.0347, -193.82038], "size": [17, 9, 10], "uv": [0, 101], "mirror": true}, + {"origin": [29, 81.0347, -202.82016], "size": [0, 3, 14], "uv": [54, 87], "mirror": true}, + {"origin": [13, 81.0347, -202.82016], "size": [0, 3, 14], "uv": [54, 87]}, + {"origin": [16, 78.03881, -217.82038], "size": [10, 5, 0], "uv": [55, 118], "mirror": true}, + {"origin": [26, 78.03881, -217.82038], "size": [0, 5, 15], "uv": [55, 98], "mirror": true}, + {"origin": [16, 78.03881, -217.82038], "size": [0, 5, 15], "uv": [55, 98]}, + {"origin": [26.525, 90.0347, -203.81714], "size": [5, 3, 14], "uv": [92, 98], "mirror": true}, + {"origin": [10.475, 90.0347, -203.81714], "size": [5, 3, 14], "uv": [92, 98]}, + {"origin": [15.5, 83.0347, -218.81843], "size": [11, 9, 16], "uv": [67, 142], "mirror": true} + ] + }, + { + "name": "L_jaw", + "parent": "L_head", + "pivot": [21, 83.0347, -183.7693], + "cubes": [ + {"origin": [12, 76.0347, -202.818], "size": [18, 7, 19], "uv": [0, 120], "mirror": true}, + {"origin": [27, 76.0347, -197.818], "size": [9, 0, 14], "pivot": [30, 76.0347, -193.318], "rotation": [0, 0, 45], "uv": [89, 21], "mirror": true}, + {"origin": [6, 76.0347, -197.818], "size": [9, 0, 14], "pivot": [12, 76.0347, -193.318], "rotation": [0, 0, -45], "uv": [89, 21]}, + {"origin": [30, 76.0347, -183.818], "size": [0, 7, 8], "pivot": [30, 79.5347, -183.818], "rotation": [0, 45, 0], "uv": [104, 6], "mirror": true}, + {"origin": [12, 76.0347, -183.818], "size": [0, 7, 8], "pivot": [12, 79.5347, -183.818], "rotation": [0, -45, 0], "uv": [104, 6]}, + {"origin": [30, 83.0347, -202.81649], "size": [0, 3, 15], "uv": [54, 92], "mirror": true}, + {"origin": [16, 83.1147, -218.79798], "size": [10, 3, 0], "uv": [54, 110], "mirror": true}, + {"origin": [26.479, 83.11448, -217.79798], "size": [0, 3, 15], "uv": [54, 89], "mirror": true}, + {"origin": [15.521, 83.11448, -217.79798], "size": [0, 3, 15], "uv": [54, 89]}, + {"origin": [12, 83.0347, -202.81649], "size": [0, 3, 15], "uv": [54, 92]}, + {"origin": [15.5, 76.1347, -218.81798], "size": [11, 7, 16], "inflate": -0.02, "uv": [121, 142], "mirror": true}, + {"origin": [15.5, 69.18427, -216.81948], "size": [11, 7, 0], "uv": [103, 7], "mirror": true}, + {"origin": [26.5, 69.18405, -215.81948], "size": [0, 7, 16], "uv": [103, -16], "mirror": true}, + {"origin": [15.5, 69.18405, -215.81948], "size": [0, 7, 16], "uv": [103, -16]} + ] + }, + { + "name": "R_wing", + "parent": "Torso", + "pivot": [-26, 94.5, -48], + "cubes": [ + {"origin": [-37, 87, -54], "size": [13, 12, 14], "uv": [327, 161]}, + {"origin": [-84, 91, -49], "size": [47, 8, 9], "uv": [83, 303]}, + {"origin": [-75, 95, -40], "size": [70, 0, 83], "uv": [118, 92]} + ] + }, + { + "name": "R_wing2", + "parent": "R_wing", + "pivot": [-75, 95, -36], + "cubes": [ + {"origin": [-144, 91, -40], "size": [69, 8, 9], "uv": [0, 283]}, + {"origin": [-144, 91, -66], "size": [9, 8, 26], "uv": [381, 151]}, + {"origin": [-144, 91, -92], "size": [6, 8, 26], "uv": [0, 249]}, + {"origin": [-144, 95, -31], "size": [69, 0, 81], "uv": [27, 175]} + ] + }, + { + "name": "R_wing3", + "parent": "R_wing2", + "pivot": [-144, 95, -40], + "cubes": [ + {"origin": [-227, 95, -40], "size": [83, 0, 92], "uv": [85, 0]} + ] + }, + { + "name": "L_wing", + "parent": "Torso", + "pivot": [26, 94.5, -48], + "cubes": [ + {"origin": [24, 87, -54], "size": [13, 12, 14], "uv": [327, 161], "mirror": true}, + {"origin": [37, 91, -49], "size": [47, 8, 9], "uv": [83, 303], "mirror": true}, + {"origin": [5, 95, -40], "size": [70, 0, 83], "uv": [118, 92], "mirror": true} + ] + }, + { + "name": "L_wing2", + "parent": "L_wing", + "pivot": [75, 95, -36], + "cubes": [ + {"origin": [75, 91, -40], "size": [69, 8, 9], "uv": [0, 283], "mirror": true}, + {"origin": [135, 91, -66], "size": [9, 8, 26], "uv": [381, 151], "mirror": true}, + {"origin": [138, 91, -92], "size": [6, 8, 26], "uv": [0, 249], "mirror": true}, + {"origin": [75, 95, -31], "size": [69, 0, 81], "uv": [27, 175], "mirror": true} + ] + }, + { + "name": "L_wing3", + "parent": "L_wing2", + "pivot": [144, 95, -40], + "cubes": [ + {"origin": [144, 95, -40], "size": [83, 0, 92], "uv": [85, 0], "mirror": true} + ] + }, + { + "name": "Tail", + "parent": "Torso", + "pivot": [0, 83.5, 34], + "cubes": [ + {"origin": [-10.5, 57, 34], "size": [21, 40, 53], "inflate": 0.01, "uv": [0, 376]}, + {"origin": [-3.5, 94.7, 69], "size": [7, 14, 8], "uv": [332, 289]}, + {"origin": [-3.5, 94.7, 47], "size": [7, 14, 8], "uv": [332, 289]} + ] + }, + { + "name": "Tail2", + "parent": "Tail", + "pivot": [0, 85.66667, 87], + "cubes": [ + {"origin": [-10.5, 66, 87], "size": [21, 31, 53], "uv": [341, 67]}, + {"origin": [-3.5, 94.7, 97], "size": [7, 14, 8], "uv": [332, 289]}, + {"origin": [-3.5, 94.7, 119], "size": [7, 14, 8], "uv": [332, 289]} + ] + }, + { + "name": "Tail3", + "parent": "Tail2", + "pivot": [0, 87.75, 140], + "cubes": [ + {"origin": [-3.5, 94.7, 173], "size": [7, 14, 8], "uv": [332, 289]}, + {"origin": [-3.5, 94.7, 151], "size": [7, 14, 8], "uv": [332, 289]}, + {"origin": [-7, 74, 140], "size": [14, 23, 53], "uv": [0, 300]} + ] + }, + { + "name": "Tail4", + "parent": "Tail3", + "pivot": [0, 90, 193], + "cubes": [ + {"origin": [-4.5, 83, 193], "size": [9, 14, 53], "uv": [343, 0]}, + {"origin": [-19.5, 87, 230], "size": [39, 7, 27], "uv": [355, 209]}, + {"origin": [-4.5, 87, 257], "size": [9, 7, 18], "uv": [363, 243]} + ] + }, + { + "name": "R_tight", + "parent": "body", + "pivot": [-28.8, 58.2, 13.3], + "cubes": [ + {"origin": [-39, 25, -5], "size": [18, 45, 36], "uv": [246, 175]} + ] + }, + { + "name": "R_leg", + "parent": "R_tight", + "pivot": [-28.5, 36.375, 36.625], + "cubes": [ + {"origin": [-33, 4, 31], "size": [12, 35, 12], "uv": [0, 202]} + ] + }, + { + "name": "R_foot", + "parent": "R_leg", + "pivot": [-29, 3.66667, 37.5], + "cubes": [ + {"origin": [-35, 0, 20], "size": [16, 6, 23], "uv": [415, 0]}, + {"origin": [-35, 0, 13], "size": [5, 6, 7], "uv": [466, 173]}, + {"origin": [-24, 0, 13], "size": [5, 6, 7], "uv": [466, 173]}, + {"origin": [-30, 0, 9], "size": [6, 10, 13], "inflate": 0.01, "uv": [38, 249]} + ] + }, + { + "name": "L_tight", + "parent": "body", + "pivot": [28.8, 58.2, 13.3], + "cubes": [ + {"origin": [21, 25, -5], "size": [18, 45, 36], "uv": [246, 175], "mirror": true} + ] + }, + { + "name": "L_leg", + "parent": "L_tight", + "pivot": [28.5, 36.375, 36.625], + "cubes": [ + {"origin": [21, 4, 31], "size": [12, 35, 12], "uv": [0, 202], "mirror": true} + ] + }, + { + "name": "L_foot", + "parent": "L_leg", + "pivot": [29, 3.66667, 37.5], + "cubes": [ + {"origin": [19, 0, 20], "size": [16, 6, 23], "uv": [415, 0], "mirror": true}, + {"origin": [30, 0, 13], "size": [5, 6, 7], "uv": [466, 173], "mirror": true}, + {"origin": [19, 0, 13], "size": [5, 6, 7], "uv": [466, 173], "mirror": true}, + {"origin": [24, 0, 9], "size": [6, 10, 13], "inflate": 0.01, "uv": [38, 249], "mirror": true} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/manticore.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/manticore.geo.json new file mode 100644 index 00000000..aead1ae8 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/manticore.geo.json @@ -0,0 +1,177 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 256, + "texture_height": 256, + "visible_bounds_width": 12, + "visible_bounds_height": 5.5, + "visible_bounds_offset": [0, 2.25, 0] + }, + "bones": [ + { + "name": "Menticore", + "pivot": [0, 0, 0] + }, + { + "name": "body", + "parent": "Menticore", + "pivot": [0, 17, 2.7] + }, + { + "name": "back_leg_right", + "parent": "body", + "pivot": [-7.5, 17, 13.75], + "cubes": [ + {"origin": [-11, 10, 7], "size": [7, 11, 5], "uv": [95, 26], "mirror": true}, + {"origin": [-11, 0, 12], "size": [7, 21, 8], "uv": [46, 83], "mirror": true} + ] + }, + { + "name": "back_leg_left", + "parent": "body", + "pivot": [7.5, 17, 13.75], + "cubes": [ + {"origin": [4, 10, 7], "size": [7, 11, 5], "uv": [95, 26]}, + {"origin": [4, 0, 12], "size": [7, 21, 8], "uv": [46, 83]} + ] + }, + { + "name": "left_leg", + "parent": "body", + "pivot": [7.5, 17.5, -9], + "cubes": [ + {"origin": [4, 0, -13], "size": [7, 21, 8], "uv": [16, 83]} + ] + }, + { + "name": "right_leg", + "parent": "body", + "pivot": [-7.5, 17.5, -9], + "cubes": [ + {"origin": [-11, 0, -13], "size": [7, 21, 8], "uv": [16, 83], "mirror": true} + ] + }, + { + "name": "torso", + "parent": "body", + "pivot": [0, 27, 3], + "cubes": [ + {"origin": [-8.5, 12, -15], "size": [17, 22, 22], "uv": [0, 0]}, + {"origin": [-8.5, 16, 7], "size": [17, 18, 14], "uv": [76, 44]} + ] + }, + { + "name": "head", + "parent": "torso", + "pivot": [0, 27, -7.025], + "cubes": [ + {"origin": [-2.85, 31, -27.025], "size": [1, 1, 0], "uv": [76, 76]}, + {"origin": [-10.5, 18, -9], "size": [21, 22, 6], "uv": [0, 151]}, + {"origin": [-11.5, 17, -22], "size": [23, 24, 15], "uv": [0, 44]}, + {"origin": [-5, 24, -32.5], "size": [10, 6, 6], "uv": [78, 0]}, + {"origin": [-5, 18, -32.25], "size": [2, 6, 3], "uv": [78, 27]}, + {"origin": [3, 18, -32.25], "size": [2, 6, 3], "uv": [0, 83]}, + {"origin": [-7.5, 22, -27], "size": [15, 14, 8], "uv": [76, 76]}, + {"origin": [3.025, 31, -27.025], "size": [1, 1, 0], "uv": [76, 76], "mirror": true}, + {"origin": [-11.499, 17, -7], "size": [0, 24, 2], "uv": [12, 81]}, + {"origin": [11.499, 17, -7], "size": [0, 24, 2], "uv": [12, 81], "mirror": true}, + {"origin": [-11.5, 41, -7], "size": [23, 0, 2], "uv": [76, 42]} + ] + }, + { + "name": "jaw", + "parent": "head", + "pivot": [0, 24, -27], + "cubes": [ + {"origin": [-4, 22, -32], "size": [8, 2, 5], "uv": [78, 12]}, + {"origin": [-3, 19, -32], "size": [6, 3, 5], "uv": [78, 19]} + ] + }, + { + "name": "right_wing", + "parent": "torso", + "pivot": [-8.75, 26.375, -1], + "cubes": [ + {"origin": [-12.5, 25, -3], "size": [4, 17, 4], "uv": [56, 1], "mirror": true} + ] + }, + { + "name": "right_wing2", + "parent": "right_wing", + "pivot": [-12.5, 40.5, -1], + "cubes": [ + {"origin": [-34.5, 25, -1], "size": [22, 39, 0], "uv": [0, 112], "mirror": true} + ] + }, + { + "name": "right_wing3", + "parent": "right_wing2", + "pivot": [-34.5, 44.5, -1], + "cubes": [ + {"origin": [-72.5, 25, -1], "size": [38, 39, 0], "uv": [44, 112], "mirror": true} + ] + }, + { + "name": "left_wing", + "parent": "torso", + "pivot": [8.75, 26.375, -1], + "cubes": [ + {"origin": [8.5, 25, -3], "size": [4, 17, 4], "uv": [56, 1]} + ] + }, + { + "name": "left_wing2", + "parent": "left_wing", + "pivot": [12.5, 40.5, -1], + "cubes": [ + {"origin": [12.5, 25, -1], "size": [22, 39, 0], "uv": [0, 112]} + ] + }, + { + "name": "left_wing3", + "parent": "left_wing2", + "pivot": [34.5, 44.5, -1], + "cubes": [ + {"origin": [34.5, 25, -1], "size": [38, 39, 0], "uv": [44, 112]} + ] + }, + { + "name": "tail", + "parent": "torso", + "pivot": [0, 29, 21], + "cubes": [ + {"origin": [-3.5, 27, 21], "size": [7, 7, 14], "uv": [54, 151]} + ] + }, + { + "name": "tail2", + "parent": "tail", + "pivot": [0, 27, 35], + "cubes": [ + {"origin": [-4.5, 27, 35], "size": [9, 7, 23], "uv": [99, 81]} + ] + }, + { + "name": "tail3", + "parent": "tail2", + "pivot": [0, 27, 58], + "cubes": [ + {"origin": [-3.5, 27, 58], "size": [7, 7, 23], "uv": [114, 0]} + ] + }, + { + "name": "sting", + "parent": "tail3", + "pivot": [0, 34, 75], + "cubes": [ + {"origin": [-3.5, 34, 69], "size": [7, 10, 12], "inflate": 0.01, "uv": [124, 34]}, + {"origin": [-0.5, 44, 69], "size": [0, 10, 6], "uv": [124, 30]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/portal_gun.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/portal_gun.geo.json new file mode 100644 index 00000000..0cc853e2 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/portal_gun.geo.json @@ -0,0 +1,168 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 128, + "texture_height": 128, + "visible_bounds_width": 4, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "portal_gun", + "pivot": [-1, 2.5, 12] + }, + { + "name": "cylinder", + "parent": "portal_gun", + "pivot": [-1, 2.5, -3], + "cubes": [ + {"origin": [-1.5, 1.5, -3], "size": [3, 1, 8], "uv": [30, 56]} + ] + }, + { + "name": "orange", + "parent": "cylinder", + "pivot": [-1, 2.5, -3], + "cubes": [ + {"origin": [-1, 2.5, -3], "size": [2, 2, 8], "uv": [0, 77]} + ] + }, + { + "name": "blue", + "parent": "cylinder", + "pivot": [-1, 2.5, -3], + "cubes": [ + {"origin": [-1, 2.5, -3], "size": [2, 2, 8], "uv": [39, 78]} + ] + }, + { + "name": "off", + "parent": "cylinder", + "pivot": [-1, 2.5, -3], + "cubes": [ + {"origin": [-1, 2.5, -3], "size": [2, 2, 8], "uv": [52, 56]} + ] + }, + { + "name": "base", + "parent": "portal_gun", + "pivot": [0, 2, 6], + "cubes": [ + {"origin": [-4, -1, 4], "size": [8, 8, 11], "uv": [0, 0]}, + {"origin": [-4, 1.63663, 9.75939], "size": [8, 6, 5], "inflate": 0.005, "pivot": [0, 7.63663, 15.75939], "rotation": [40, 0, 0], "uv": [0, 22]}, + {"origin": [-3, 0, 5], "size": [6, 6, 9], "uv": [38, 0]} + ] + }, + { + "name": "TINTABLE", + "parent": "base", + "pivot": [0, 2, 6], + "cubes": [ + {"origin": [-4, -1, 4], "size": [8, 8, 11], "inflate": 0.005, "uv": [0, 91]}, + {"origin": [-4, 1.63663, 9.75939], "size": [8, 6, 5], "inflate": 0.01, "pivot": [0, 7.63663, 15.75939], "rotation": [40, 0, 0], "uv": [0, 106]} + ] + }, + { + "name": "wire", + "parent": "portal_gun", + "pivot": [0, 8, 1.5], + "cubes": [ + {"origin": [0, 3.5, -6], "size": [0, 8, 15], "uv": [0, 19]}, + {"origin": [0, 3.5, -6], "size": [0, 8, 15], "pivot": [0, 3.5, 1.5], "rotation": [0, 0, -120], "uv": [0, 19]}, + {"origin": [0, 3.5, -6], "size": [0, 8, 15], "pivot": [0, 3.5, 1.5], "rotation": [0, 0, 120], "uv": [0, 19]} + ] + }, + { + "name": "gun_tip", + "parent": "portal_gun", + "pivot": [-1, 2.5, -11], + "cubes": [ + {"origin": [-2, 1.5, -9], "size": [4, 4, 6], "uv": [58, 42]}, + {"origin": [-2, 1.5, -9], "size": [4, 4, 6], "inflate": 0.2, "uv": [60, 15]}, + {"origin": [-3, 0.5, -9], "size": [6, 6, 8], "uv": [30, 42]} + ] + }, + { + "name": "claws", + "parent": "gun_tip", + "pivot": [1, 2.5, -7.5] + }, + { + "name": "claw_3", + "parent": "claws", + "pivot": [1, 2.5, -7.5], + "rotation": [0, 0, 120] + }, + { + "name": "claw_1rot3", + "parent": "claw_3", + "pivot": [1, 2.5, -7.5], + "rotation": [-45, 0, 0], + "cubes": [ + {"origin": [0.5, 4.5, -11.5], "size": [1, 1, 5], "uv": [0, 65]} + ] + }, + { + "name": "claw_1_tip3", + "parent": "claw_1rot3", + "pivot": [1, 4.5, -11.1], + "rotation": [45, 0, 0], + "cubes": [ + {"origin": [0.5, 4.5, -14.675], "size": [1, 1, 4], "uv": [60, 37]} + ] + }, + { + "name": "claw_2", + "parent": "claws", + "pivot": [-1, 2.5, -7.5], + "rotation": [0, 0, -120] + }, + { + "name": "claw_1rot2", + "parent": "claw_2", + "pivot": [-1, 2.5, -7.5], + "rotation": [-45, 0, 0], + "cubes": [ + {"origin": [-1.5, 4.5, -11.5], "size": [1, 1, 5], "uv": [0, 65]} + ] + }, + { + "name": "claw_1_tip2", + "parent": "claw_1rot2", + "pivot": [-1, 4.5, -11.1], + "rotation": [45, 0, 0], + "cubes": [ + {"origin": [-1.5, 4.5, -14.675], "size": [1, 1, 4], "uv": [60, 37]} + ] + }, + { + "name": "claw_1", + "parent": "claws", + "pivot": [0, 3.5, -6.5] + }, + { + "name": "claw_1rot", + "parent": "claw_1", + "pivot": [0, 3.5, -6.5], + "rotation": [-45, 0, 0], + "cubes": [ + {"origin": [-0.5, 5.5, -10.5], "size": [1, 1, 5], "uv": [60, 25]} + ] + }, + { + "name": "claw_1_tip", + "parent": "claw_1rot", + "pivot": [0, 5.5, -10.1], + "rotation": [45, 0, 0], + "cubes": [ + {"origin": [-0.5, 5.5, -14.675], "size": [1, 1, 5], "uv": [60, 31]} + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/portal_gun_portal.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/portal_gun_portal.geo.json new file mode 100644 index 00000000..386019dc --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/geo/prince.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/prince.geo.json new file mode 100644 index 00000000..64990852 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/prince.geo.json @@ -0,0 +1,313 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 128, + "texture_height": 128, + "visible_bounds_width": 8, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "prince", + "pivot": [0, 8.16667, 7.33333] + }, + { + "name": "body", + "parent": "prince", + "pivot": [0, 8.16667, 7.33333] + }, + { + "name": "right_leg", + "parent": "body", + "pivot": [-6.25, 10.75, 8.5], + "cubes": [ + {"origin": [-9, 4, 5], "size": [5, 9, 8], "inflate": 0.1, "uv": [0, 68]} + ] + }, + { + "name": "right_foot", + "parent": "right_leg", + "pivot": [-6, 4.91667, 10.58333], + "cubes": [ + {"origin": [-8, 0, 8], "size": [4, 5, 5], "uv": [90, 90]}, + {"origin": [-8, 0, 6], "size": [4, 2, 2], "uv": [56, 25]}, + {"origin": [-8, 2, 8], "size": [4, 2, 5], "inflate": 0.05, "uv": [74, 42]} + ] + }, + { + "name": "left_leg", + "parent": "body", + "pivot": [6.25, 10.75, 8.5], + "cubes": [ + {"origin": [4, 4, 5], "size": [5, 9, 8], "inflate": 0.1, "uv": [74, 25]} + ] + }, + { + "name": "left_foot", + "parent": "left_leg", + "pivot": [6, 4.91667, 10.58333], + "cubes": [ + {"origin": [4, 0, 8], "size": [4, 5, 5], "uv": [92, 63]}, + {"origin": [4, 0, 6], "size": [4, 2, 2], "uv": [94, 16]}, + {"origin": [4, 2, 8], "size": [4, 2, 5], "inflate": 0.05, "uv": [88, 9]} + ] + }, + { + "name": "torso", + "parent": "body", + "pivot": [0, 3, 5], + "cubes": [ + {"origin": [-6, 3, -3], "size": [12, 14, 16], "uv": [0, 0]}, + {"origin": [-1, 17, 2], "size": [2, 5, 4], "uv": [0, 0]} + ] + }, + { + "name": "tail", + "parent": "torso", + "pivot": [0, 12.75, 13], + "cubes": [ + {"origin": [-4, 6.75, 11], "size": [8, 10, 12], "uv": [0, 30]} + ] + }, + { + "name": "tail2", + "parent": "tail", + "pivot": [0, 13, 23], + "cubes": [ + {"origin": [-3, 8.5, 22], "size": [6, 8, 11], "uv": [40, 30]} + ] + }, + { + "name": "tail3", + "parent": "tail2", + "pivot": [0, 13.25, 32], + "cubes": [ + {"origin": [-2, 10.25, 32], "size": [4, 6, 11], "uv": [32, 65]}, + {"origin": [-6, 12.25, 41], "size": [12, 2, 7], "uv": [56, 16]}, + {"origin": [-1.5, 12.25, 48], "size": [3, 2, 4], "uv": [92, 42]} + ] + }, + { + "name": "neck", + "parent": "torso", + "pivot": [0, 13.5, -1.16667], + "cubes": [ + {"origin": [-3.5, 9, -8], "size": [7, 8, 8], "inflate": 0.1, "uv": [62, 65]} + ] + }, + { + "name": "neck2", + "parent": "neck", + "pivot": [0, 13.75, -6], + "cubes": [ + {"origin": [-3, 10.5, -14], "size": [6, 6, 8], "inflate": 0.1, "uv": [72, 49]} + ] + }, + { + "name": "neck3", + "parent": "neck2", + "pivot": [0, 14, -12], + "cubes": [ + {"origin": [-2.5, 11.5, -20], "size": [5, 5, 8], "uv": [26, 82]} + ] + }, + { + "name": "head", + "parent": "neck3", + "pivot": [0, 14, -20], + "cubes": [ + {"origin": [-3.5, 11.5, -27], "size": [7, 5, 7], "uv": [82, 112]}, + {"origin": [-4.5, 12.5, -22], "size": [2, 2, 4], "pivot": [-7, 14, -23.5], "rotation": [67.5, 0, 0], "uv": [92, 73]}, + {"origin": [-6.5, 12.5, -20], "size": [2, 2, 4], "pivot": [-7, 14, -23.5], "rotation": [67.5, 0, 0], "uv": [52, 93]}, + {"origin": [2.5, 12.5, -22], "size": [2, 2, 4], "pivot": [7, 14, -23.5], "rotation": [67.5, 0, 0], "uv": [64, 93]}, + {"origin": [4.5, 12.5, -20], "size": [2, 2, 4], "pivot": [7, 14, -23.5], "rotation": [67.5, 0, 0], "uv": [76, 93]}, + {"origin": [-2.5, 11.5, -34], "size": [5, 5, 7], "uv": [0, 85]}, + {"origin": [-2.5, 10.25, -34], "size": [5, 2, 7], "inflate": -0.1, "uv": [0, 97]}, + {"origin": [-0.5, 16.5, -32], "size": [1, 2, 2], "uv": [32, 59]} + ] + }, + { + "name": "jaw", + "parent": "head", + "pivot": [0, 11.5, -20], + "cubes": [ + {"origin": [-3.5, 9.5, -27], "size": [7, 2, 7], "uv": [88, 0]}, + {"origin": [-3.5, 11.5, -24], "size": [0, 3, 4], "inflate": 0.05, "uv": [32, 52]}, + {"origin": [3.5, 11.5, -24], "size": [0, 3, 4], "inflate": 0.05, "uv": [52, 82]}, + {"origin": [-2.5, 9.5, -34], "size": [5, 2, 7], "uv": [90, 81]} + ] + }, + { + "name": "neck_right", + "parent": "torso", + "pivot": [-3.87868, 13.25, 0.95465], + "rotation": [0, 45, 0], + "cubes": [ + {"origin": [-7.37868, 8.75, -5.87868], "size": [7, 8, 8], "inflate": 0.1, "uv": [62, 65]} + ] + }, + { + "name": "neck_right2", + "parent": "neck_right", + "pivot": [-3.87868, 13.5, -3.87868], + "cubes": [ + {"origin": [-6.87868, 10.25, -11.87868], "size": [6, 6, 8], "inflate": 0.1, "uv": [72, 49]} + ] + }, + { + "name": "neck_right3", + "parent": "neck_right2", + "pivot": [-3.87868, 13.75, -9.87868], + "cubes": [ + {"origin": [-6.37868, 11.25, -17.87868], "size": [5, 5, 8], "uv": [26, 82]} + ] + }, + { + "name": "head_right", + "parent": "neck_right3", + "pivot": [-3.87868, 13.75, -17.87868], + "cubes": [ + {"origin": [-7.37868, 11.25, -24.87868], "size": [7, 5, 7], "uv": [82, 100]}, + {"origin": [-8.37868, 12.25, -19.87868], "size": [2, 2, 4], "pivot": [-10.87868, 13.75, -21.37868], "rotation": [67.5, 0, 0], "uv": [92, 73]}, + {"origin": [-8.37868, 8.25, -21.87868], "size": [2, 2, 4], "pivot": [-10.87868, 13.75, -21.37868], "rotation": [67.5, 0, 0], "uv": [92, 51]}, + {"origin": [-8.37868, 8.25, -17.87868], "size": [2, 4, 2], "pivot": [-10.87868, 13.75, -21.37868], "rotation": [67.5, 0, 0], "uv": [51, 70]}, + {"origin": [-1.62132, 12.25, -19.87868], "size": [2, 2, 4], "pivot": [10.87868, 13.75, -21.37868], "rotation": [67.5, 0, 0], "uv": [92, 73], "mirror": true}, + {"origin": [-1.62132, 8.25, -17.87868], "size": [2, 4, 2], "pivot": [10.87868, 13.75, -21.37868], "rotation": [67.5, 0, 0], "uv": [51, 70], "mirror": true}, + {"origin": [-1.62132, 8.25, -21.87868], "size": [2, 2, 4], "pivot": [10.87868, 13.75, -21.37868], "rotation": [67.5, 0, 0], "uv": [92, 51], "mirror": true}, + {"origin": [-6.37868, 11.25, -31.87868], "size": [5, 5, 7], "uv": [0, 85]}, + {"origin": [-6.37868, 10, -31.87868], "size": [5, 2, 7], "inflate": -0.1, "uv": [0, 97]}, + {"origin": [-4.37868, 16.25, -29.87868], "size": [1, 2, 2], "uv": [32, 59]} + ] + }, + { + "name": "jaw_right", + "parent": "head_right", + "pivot": [-3.87868, 11.25, -17.87868], + "cubes": [ + {"origin": [-7.37868, 9.25, -24.87868], "size": [7, 2, 7], "uv": [88, 0]}, + {"origin": [-7.37868, 11.25, -21.87868], "size": [0, 3, 4], "inflate": 0.05, "uv": [32, 52]}, + {"origin": [-0.37868, 11.25, -21.87868], "size": [0, 3, 4], "inflate": 0.05, "uv": [52, 82]}, + {"origin": [-6.37868, 9.25, -31.87868], "size": [5, 2, 7], "uv": [90, 81]} + ] + }, + { + "name": "neck_left", + "parent": "torso", + "pivot": [3.87868, 13.25, 0.95465], + "rotation": [0, -45, 0], + "cubes": [ + {"origin": [0.37868, 8.75, -5.87868], "size": [7, 8, 8], "inflate": 0.1, "uv": [62, 65], "mirror": true} + ] + }, + { + "name": "neck_left2", + "parent": "neck_left", + "pivot": [3.87868, 13.5, -3.87868], + "cubes": [ + {"origin": [0.87868, 10.25, -11.87868], "size": [6, 6, 8], "inflate": 0.1, "uv": [72, 49], "mirror": true} + ] + }, + { + "name": "neck_left3", + "parent": "neck_left2", + "pivot": [3.87868, 13.75, -9.87868], + "cubes": [ + {"origin": [1.37868, 11.25, -17.87868], "size": [5, 5, 8], "uv": [26, 82], "mirror": true} + ] + }, + { + "name": "head_left", + "parent": "neck_left3", + "pivot": [3.87868, 13.75, -17.87868], + "cubes": [ + {"origin": [0.37868, 11.25, -24.87868], "size": [7, 5, 7], "uv": [62, 81], "mirror": true}, + {"origin": [6.37868, 12.25, -17.87868], "size": [2, 2, 4], "pivot": [10.87868, 13.75, -19.37868], "rotation": [135, 0, 0], "uv": [92, 73], "mirror": true}, + {"origin": [-0.62132, 12.25, -17.87868], "size": [2, 2, 4], "pivot": [-3.12132, 13.75, -19.37868], "rotation": [135, 0, 0], "uv": [64, 93], "mirror": true}, + {"origin": [1.37868, 11.25, -31.87868], "size": [5, 5, 7], "uv": [0, 85], "mirror": true}, + {"origin": [1.37868, 10, -31.87868], "size": [5, 2, 7], "inflate": -0.1, "uv": [0, 97], "mirror": true}, + {"origin": [3.37868, 16.25, -29.87868], "size": [1, 2, 2], "uv": [32, 59], "mirror": true} + ] + }, + { + "name": "jaw_left", + "parent": "head_left", + "pivot": [3.87868, 11.25, -17.87868], + "cubes": [ + {"origin": [0.37868, 9.25, -24.87868], "size": [7, 2, 7], "uv": [88, 0], "mirror": true}, + {"origin": [7.37868, 11.25, -21.87868], "size": [0, 3, 4], "inflate": 0.05, "uv": [32, 52], "mirror": true}, + {"origin": [0.37868, 11.25, -21.87868], "size": [0, 3, 4], "inflate": 0.05, "uv": [52, 82], "mirror": true}, + {"origin": [1.37868, 9.25, -31.87868], "size": [5, 2, 7], "uv": [90, 81], "mirror": true} + ] + }, + { + "name": "right_upper_wing", + "parent": "torso", + "pivot": [-6, 17, -3], + "cubes": [ + {"origin": [-18, 17, -3], "size": [12, 0, 16], "uv": [8, 95]} + ] + }, + { + "name": "right_upper_wing2", + "parent": "right_upper_wing", + "pivot": [-18, 17, -3], + "cubes": [ + {"origin": [-35, 17, -3], "size": [17, 0, 16], "uv": [32, 99]} + ] + }, + { + "name": "right_lower_wing2", + "parent": "torso", + "pivot": [-6, 13, -3], + "cubes": [ + {"origin": [-18, 13, -3], "size": [12, 0, 16], "uv": [8, 95]} + ] + }, + { + "name": "right_lower_wing3", + "parent": "right_lower_wing2", + "pivot": [-18, 13, -3], + "cubes": [ + {"origin": [-35, 13, -3], "size": [17, 0, 16], "uv": [32, 99]} + ] + }, + { + "name": "left_lower_wing2", + "parent": "torso", + "pivot": [6, 13, -3], + "cubes": [ + {"origin": [6, 13, -3], "size": [12, 0, 16], "uv": [8, 95], "mirror": true} + ] + }, + { + "name": "left_lower_wing3", + "parent": "left_lower_wing2", + "pivot": [18, 13, -3], + "cubes": [ + {"origin": [18, 13, -3], "size": [17, 0, 16], "uv": [32, 99], "mirror": true} + ] + }, + { + "name": "left_upper_wing", + "parent": "torso", + "pivot": [6, 17, -3], + "cubes": [ + {"origin": [6, 17, -3], "size": [12, 0, 16], "uv": [8, 95], "mirror": true} + ] + }, + { + "name": "left_upper_wing2", + "parent": "left_upper_wing", + "pivot": [18, 17, -3], + "cubes": [ + {"origin": [18, 17, -3], "size": [17, 0, 16], "uv": [32, 99], "mirror": true} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/princess.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/princess.geo.json new file mode 100644 index 00000000..d8a183b6 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/princess.geo.json @@ -0,0 +1,339 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 128, + "texture_height": 128, + "visible_bounds_width": 8, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "princess", + "pivot": [0, 8.16667, 7.33333] + }, + { + "name": "body", + "parent": "princess", + "pivot": [0, 8.16667, 7.33333] + }, + { + "name": "right_leg", + "parent": "body", + "pivot": [-6.25, 10.75, 8.5], + "cubes": [ + {"origin": [-9, 4, 5], "size": [5, 9, 8], "inflate": 0.1, "uv": [0, 68]} + ] + }, + { + "name": "right_foot", + "parent": "right_leg", + "pivot": [-6, 4.91667, 10.58333], + "cubes": [ + {"origin": [-8, 0, 8], "size": [4, 5, 5], "uv": [90, 90]}, + {"origin": [-8, 0, 6], "size": [4, 2, 2], "uv": [56, 25]}, + {"origin": [-8, 2, 8], "size": [4, 2, 5], "inflate": 0.05, "uv": [74, 42]} + ] + }, + { + "name": "left_leg", + "parent": "body", + "pivot": [6.25, 10.75, 8.5], + "cubes": [ + {"origin": [4, 4, 5], "size": [5, 9, 8], "inflate": 0.1, "uv": [74, 25]} + ] + }, + { + "name": "left_foot", + "parent": "left_leg", + "pivot": [6, 4.91667, 10.58333], + "cubes": [ + {"origin": [4, 0, 8], "size": [4, 5, 5], "uv": [92, 63]}, + {"origin": [4, 0, 6], "size": [4, 2, 2], "uv": [94, 16]}, + {"origin": [4, 2, 8], "size": [4, 2, 5], "inflate": 0.05, "uv": [88, 9]} + ] + }, + { + "name": "torso", + "parent": "body", + "pivot": [0, 3, 5], + "cubes": [ + {"origin": [-6, 3, -3], "size": [12, 14, 16], "uv": [0, 0]}, + {"origin": [-1, 17, 2], "size": [2, 5, 4], "uv": [0, 0]} + ] + }, + { + "name": "tail", + "parent": "torso", + "pivot": [0, 12.75, 13], + "cubes": [ + {"origin": [-4, 6.75, 11], "size": [8, 10, 12], "uv": [0, 30]} + ] + }, + { + "name": "tail2", + "parent": "tail", + "pivot": [0, 13, 23], + "cubes": [ + {"origin": [-3, 8.5, 22], "size": [6, 8, 11], "uv": [40, 30]} + ] + }, + { + "name": "tail3", + "parent": "tail2", + "pivot": [0, 13.25, 32], + "cubes": [ + {"origin": [-2, 10.25, 32], "size": [4, 6, 11], "uv": [32, 65]}, + {"origin": [-6, 12.25, 41], "size": [12, 2, 7], "uv": [56, 16]}, + {"origin": [-1.5, 12.25, 48], "size": [3, 2, 4], "uv": [92, 42]} + ] + }, + { + "name": "neck", + "parent": "torso", + "pivot": [0, 13.5, -1.16667], + "cubes": [ + {"origin": [-3.5, 9, -8], "size": [7, 8, 8], "inflate": 0.1, "uv": [62, 65]} + ] + }, + { + "name": "neck2", + "parent": "neck", + "pivot": [0, 13.75, -6], + "cubes": [ + {"origin": [-3, 10.5, -14], "size": [6, 6, 8], "inflate": 0.1, "uv": [72, 49]} + ] + }, + { + "name": "neck3", + "parent": "neck2", + "pivot": [0, 14, -12], + "cubes": [ + {"origin": [-2.5, 11.5, -20], "size": [5, 5, 8], "uv": [26, 82]} + ] + }, + { + "name": "head", + "parent": "neck3", + "pivot": [0, 14, -20], + "cubes": [ + {"origin": [-3.5, 11.5, -27], "size": [7, 5, 7], "uv": [62, 81]}, + {"origin": [-4.5, 12.5, -22], "size": [2, 2, 4], "pivot": [-7, 14, -23.5], "rotation": [67.5, 0, 0], "uv": [92, 73]}, + {"origin": [-6.5, 12.5, -20], "size": [2, 2, 4], "pivot": [-7, 14, -23.5], "rotation": [67.5, 0, 0], "uv": [52, 93]}, + {"origin": [2.5, 12.5, -22], "size": [2, 2, 4], "pivot": [7, 14, -23.5], "rotation": [67.5, 0, 0], "uv": [64, 93]}, + {"origin": [4.5, 12.5, -20], "size": [2, 2, 4], "pivot": [7, 14, -23.5], "rotation": [67.5, 0, 0], "uv": [76, 93]}, + {"origin": [-2.5, 11.5, -34], "size": [5, 5, 7], "uv": [0, 85]}, + {"origin": [-2.5, 10.25, -34], "size": [5, 2, 7], "inflate": -0.1, "uv": [0, 97]}, + {"origin": [-0.5, 16.5, -32], "size": [1, 2, 2], "uv": [32, 59]} + ] + }, + { + "name": "jaw", + "parent": "head", + "pivot": [0, 11.5, -20], + "cubes": [ + {"origin": [-3.5, 9.5, -27], "size": [7, 2, 7], "uv": [88, 0]}, + {"origin": [-3.5, 11.5, -24], "size": [0, 3, 4], "inflate": 0.05, "uv": [32, 52]}, + {"origin": [3.5, 11.5, -24], "size": [0, 3, 4], "inflate": 0.05, "uv": [52, 82]}, + {"origin": [-2.5, 9.5, -34], "size": [5, 2, 7], "uv": [90, 81]} + ] + }, + { + "name": "neck_right", + "parent": "torso", + "pivot": [-3.87868, 13.25, 0.95465], + "rotation": [0, 45, 0], + "cubes": [ + {"origin": [-7.37868, 8.75, -5.87868], "size": [7, 8, 8], "inflate": 0.1, "uv": [62, 65]} + ] + }, + { + "name": "neck_right2", + "parent": "neck_right", + "pivot": [-3.87868, 13.5, -3.87868], + "cubes": [ + {"origin": [-6.87868, 10.25, -11.87868], "size": [6, 6, 8], "inflate": 0.1, "uv": [72, 49]} + ] + }, + { + "name": "neck_right3", + "parent": "neck_right2", + "pivot": [-3.87868, 13.75, -9.87868], + "cubes": [ + {"origin": [-6.37868, 11.25, -17.87868], "size": [5, 5, 8], "uv": [26, 82]} + ] + }, + { + "name": "head_right", + "parent": "neck_right3", + "pivot": [-3.87868, 13.75, -17.87868], + "cubes": [ + {"origin": [-7.37868, 11.25, -24.87868], "size": [7, 5, 7], "uv": [62, 81]}, + {"origin": [-8.37868, 12.25, -19.87868], "size": [2, 2, 4], "pivot": [-10.87868, 13.75, -21.37868], "rotation": [67.5, 0, 0], "uv": [92, 73]}, + {"origin": [-8.37868, 8.25, -21.87868], "size": [2, 2, 4], "pivot": [-10.87868, 13.75, -21.37868], "rotation": [67.5, 0, 0], "uv": [92, 51]}, + {"origin": [-8.37868, 8.25, -17.87868], "size": [2, 4, 2], "pivot": [-10.87868, 13.75, -21.37868], "rotation": [67.5, 0, 0], "uv": [51, 70]}, + {"origin": [-1.62132, 12.25, -19.87868], "size": [2, 2, 4], "pivot": [10.87868, 13.75, -21.37868], "rotation": [67.5, 0, 0], "uv": [92, 73], "mirror": true}, + {"origin": [-1.62132, 8.25, -17.87868], "size": [2, 4, 2], "pivot": [10.87868, 13.75, -21.37868], "rotation": [67.5, 0, 0], "uv": [51, 70], "mirror": true}, + {"origin": [-1.62132, 8.25, -21.87868], "size": [2, 2, 4], "pivot": [10.87868, 13.75, -21.37868], "rotation": [67.5, 0, 0], "uv": [92, 51], "mirror": true}, + {"origin": [-6.37868, 11.25, -31.87868], "size": [5, 5, 7], "uv": [0, 85]}, + {"origin": [-6.37868, 10, -31.87868], "size": [5, 2, 7], "inflate": -0.1, "uv": [0, 97]}, + {"origin": [-4.37868, 16.25, -29.87868], "size": [1, 2, 2], "uv": [32, 59]} + ] + }, + { + "name": "jaw_right", + "parent": "head_right", + "pivot": [-3.87868, 11.25, -17.87868], + "cubes": [ + {"origin": [-7.37868, 9.25, -24.87868], "size": [7, 2, 7], "uv": [88, 0]}, + {"origin": [-7.37868, 11.25, -21.87868], "size": [0, 3, 4], "inflate": 0.05, "uv": [32, 52]}, + {"origin": [-0.37868, 11.25, -21.87868], "size": [0, 3, 4], "inflate": 0.05, "uv": [52, 82]}, + {"origin": [-6.37868, 9.25, -31.87868], "size": [5, 2, 7], "uv": [90, 81]} + ] + }, + { + "name": "neck_left", + "parent": "torso", + "pivot": [3.87868, 13.25, 0.95465], + "rotation": [0, -45, 0], + "cubes": [ + {"origin": [0.37868, 8.75, -5.87868], "size": [7, 8, 8], "inflate": 0.1, "uv": [62, 65], "mirror": true} + ] + }, + { + "name": "neck_left2", + "parent": "neck_left", + "pivot": [3.87868, 13.5, -3.87868], + "cubes": [ + {"origin": [0.87868, 10.25, -11.87868], "size": [6, 6, 8], "inflate": 0.1, "uv": [72, 49], "mirror": true} + ] + }, + { + "name": "neck_left3", + "parent": "neck_left2", + "pivot": [3.87868, 13.75, -9.87868], + "cubes": [ + {"origin": [1.37868, 11.25, -17.87868], "size": [5, 5, 8], "uv": [26, 82], "mirror": true} + ] + }, + { + "name": "head_left", + "parent": "neck_left3", + "pivot": [3.87868, 13.75, -17.87868], + "cubes": [ + {"origin": [0.37868, 11.25, -24.87868], "size": [7, 5, 7], "uv": [62, 81], "mirror": true}, + {"origin": [6.37868, 12.25, -17.87868], "size": [2, 2, 4], "pivot": [10.87868, 13.75, -19.37868], "rotation": [135, 0, 0], "uv": [92, 73], "mirror": true}, + {"origin": [-0.62132, 12.25, -17.87868], "size": [2, 2, 4], "pivot": [-3.12132, 13.75, -19.37868], "rotation": [135, 0, 0], "uv": [64, 93], "mirror": true}, + {"origin": [1.37868, 11.25, -31.87868], "size": [5, 5, 7], "uv": [0, 85], "mirror": true}, + {"origin": [1.37868, 10, -31.87868], "size": [5, 2, 7], "inflate": -0.1, "uv": [0, 97], "mirror": true}, + {"origin": [3.37868, 16.25, -29.87868], "size": [1, 2, 2], "uv": [32, 59], "mirror": true} + ] + }, + { + "name": "jaw_left", + "parent": "head_left", + "pivot": [3.87868, 11.25, -17.87868], + "cubes": [ + {"origin": [0.37868, 9.25, -24.87868], "size": [7, 2, 7], "uv": [88, 0], "mirror": true}, + {"origin": [7.37868, 11.25, -21.87868], "size": [0, 3, 4], "inflate": 0.05, "uv": [32, 52], "mirror": true}, + {"origin": [0.37868, 11.25, -21.87868], "size": [0, 3, 4], "inflate": 0.05, "uv": [52, 82], "mirror": true}, + {"origin": [1.37868, 9.25, -31.87868], "size": [5, 2, 7], "uv": [90, 81], "mirror": true} + ] + }, + { + "name": "right_upper_wing", + "parent": "torso", + "pivot": [-6, 17, -3], + "cubes": [ + {"origin": [-18, 17, -3], "size": [12, 0, 16], "uv": [8, 95]} + ] + }, + { + "name": "right_upper_wing2", + "parent": "right_upper_wing", + "pivot": [-18, 17, -3], + "cubes": [ + {"origin": [-35, 17, -3], "size": [17, 0, 16], "uv": [32, 99]} + ] + }, + { + "name": "right_lower_wing2", + "parent": "torso", + "pivot": [-6, 13, -3], + "cubes": [ + {"origin": [-18, 13, -3], "size": [12, 0, 16], "uv": [8, 95]} + ] + }, + { + "name": "right_lower_wing3", + "parent": "right_lower_wing2", + "pivot": [-18, 13, -3], + "cubes": [ + {"origin": [-35, 13, -3], "size": [17, 0, 16], "uv": [32, 99]} + ] + }, + { + "name": "left_lower_wing2", + "parent": "torso", + "pivot": [6, 13, -3], + "cubes": [ + {"origin": [6, 13, -3], "size": [12, 0, 16], "uv": [8, 95], "mirror": true} + ] + }, + { + "name": "left_lower_wing3", + "parent": "left_lower_wing2", + "pivot": [18, 13, -3], + "cubes": [ + {"origin": [18, 13, -3], "size": [17, 0, 16], "uv": [32, 99], "mirror": true} + ] + }, + { + "name": "left_upper_wing", + "parent": "torso", + "pivot": [6, 17, -3], + "cubes": [ + {"origin": [6, 17, -3], "size": [12, 0, 16], "uv": [8, 95], "mirror": true} + ] + }, + { + "name": "left_upper_wing2", + "parent": "left_upper_wing", + "pivot": [18, 17, -3], + "cubes": [ + {"origin": [18, 17, -3], "size": [17, 0, 16], "uv": [32, 99], "mirror": true} + ] + }, + { + "name": "orb_center", + "parent": "torso", + "pivot": [0, 6, -1], + "cubes": [ + {"origin": [-4, 2, -9], "size": [8, 8, 8], "uv": [40, 49]} + ] + }, + { + "name": "orb_right", + "parent": "torso", + "pivot": [-3.58579, 5, 0.41421], + "rotation": [0, 45, 0], + "cubes": [ + {"origin": [-7.58579, 1, -7.58579], "size": [8, 8, 8], "uv": [0, 52]} + ] + }, + { + "name": "orb_left", + "parent": "torso", + "pivot": [3.58579, 5, 0.41421], + "rotation": [0, -45, 0], + "cubes": [ + {"origin": [-0.41421, 1, -7.58579], "size": [8, 8, 8], "uv": [56, 0]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/queen.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/queen.geo.json new file mode 100644 index 00000000..b9561118 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/queen.geo.json @@ -0,0 +1,480 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 512, + "texture_height": 512, + "visible_bounds_width": 36, + "visible_bounds_height": 12, + "visible_bounds_offset": [0, 5, 0] + }, + "bones": [ + { + "name": "Queen", + "pivot": [0, 58.96667, 12.86667] + }, + { + "name": "body", + "parent": "Queen", + "pivot": [0, 58.96667, 12.86667] + }, + { + "name": "L_wing4", + "parent": "body", + "pivot": [27, 61.5, -48], + "cubes": [ + {"origin": [25, 54, -54], "size": [13, 12, 14], "uv": [327, 161], "mirror": true}, + {"origin": [38, 58, -49], "size": [47, 8, 9], "uv": [83, 303], "mirror": true}, + {"origin": [6, 62, -40], "size": [70, 0, 83], "uv": [118, 92], "mirror": true} + ] + }, + { + "name": "L_wing5", + "parent": "L_wing4", + "pivot": [76, 62, -36], + "cubes": [ + {"origin": [76, 58, -40], "size": [69, 8, 9], "uv": [0, 283], "mirror": true}, + {"origin": [136, 58, -66], "size": [9, 8, 26], "uv": [381, 151], "mirror": true}, + {"origin": [139, 58, -92], "size": [6, 8, 26], "uv": [0, 249], "mirror": true}, + {"origin": [76, 62, -31], "size": [69, 0, 81], "uv": [27, 175], "mirror": true} + ] + }, + { + "name": "L_wing6", + "parent": "L_wing5", + "pivot": [145, 62, -40], + "cubes": [ + {"origin": [145, 62, -40], "size": [83, 0, 92], "uv": [85, 0], "mirror": true} + ] + }, + { + "name": "R_wing4", + "parent": "body", + "pivot": [-27, 61.5, -48], + "cubes": [ + {"origin": [-38, 54, -54], "size": [13, 12, 14], "uv": [327, 161]}, + {"origin": [-85, 58, -49], "size": [47, 8, 9], "uv": [83, 303]}, + {"origin": [-76, 62, -40], "size": [70, 0, 83], "uv": [118, 92]} + ] + }, + { + "name": "R_wing5", + "parent": "R_wing4", + "pivot": [-76, 62, -36], + "cubes": [ + {"origin": [-145, 58, -40], "size": [69, 8, 9], "uv": [0, 283]}, + {"origin": [-145, 58, -66], "size": [9, 8, 26], "uv": [381, 151]}, + {"origin": [-145, 58, -92], "size": [6, 8, 26], "uv": [0, 249]}, + {"origin": [-145, 62, -31], "size": [69, 0, 81], "uv": [27, 175]} + ] + }, + { + "name": "R_wing6", + "parent": "R_wing5", + "pivot": [-145, 62, -40], + "cubes": [ + {"origin": [-228, 62, -40], "size": [83, 0, 92], "uv": [85, 0]} + ] + }, + { + "name": "Torso", + "parent": "body", + "pivot": [0, 60.5, 12], + "cubes": [ + {"origin": [0, 96.76849, -60.81541], "size": [0, 15, 35], "uv": [60, 48]}, + {"origin": [0, 96.76849, -24.81541], "size": [0, 15, 35], "uv": [60, 48]}, + {"origin": [-24, 45, -61], "size": [48, 52, 96], "uv": [136, 256]}, + {"origin": [-54.5, 45, -61], "size": [0, 29, 20], "pivot": [-24, 74, -51], "rotation": [0, 0, -67.5], "uv": [192, 236]}, + {"origin": [-54.5, 74, -61], "size": [31, 0, 20], "pivot": [-24, 74, -51], "rotation": [0, 0, -67.5], "uv": [150, 332]}, + {"origin": [23.5, 74, -61], "size": [31, 0, 20], "pivot": [24, 74, -51], "rotation": [0, 0, 67.5], "uv": [150, 332], "mirror": true}, + {"origin": [54.5, 45, -61], "size": [0, 29, 20], "pivot": [24, 74, -51], "rotation": [0, 0, 67.5], "uv": [192, 236], "mirror": true}, + {"origin": [-10, 47, -82], "size": [20, 20, 20], "uv": [364, 269]}, + {"origin": [-32, 41, -71], "size": [20, 20, 20], "pivot": [-22, 51, -61], "rotation": [0, 45, 0], "uv": [364, 269]}, + {"origin": [12, 41, -71], "size": [20, 20, 20], "pivot": [22, 51, -61], "rotation": [0, -45, 0], "uv": [364, 269], "mirror": true} + ] + }, + { + "name": "neck", + "parent": "Torso", + "pivot": [0, 77, -74], + "rotation": [20, 0, 0], + "cubes": [ + {"origin": [-11, 66, -108], "size": [22, 24, 59], "inflate": 0.1, "pivot": [0, 77.5, -69], "rotation": [-20, 0, 0], "uv": [0, 0]}, + {"origin": [0, 98.01849, -97.81541], "size": [0, 15, 35], "pivot": [0, 110.51849, -87.31541], "rotation": [-20, 0, 0], "uv": [60, 48]} + ] + }, + { + "name": "neck3", + "parent": "neck", + "pivot": [0, 91.02606, -104.81908], + "rotation": [-19.98762, 0, 0], + "cubes": [ + {"origin": [0, 101.02692, -143.81584], "size": [0, 15, 35], "uv": [60, 48]}, + {"origin": [-7.5, 83.02584, -144.81908], "size": [15, 18, 41], "uv": [89, 83]} + ] + }, + { + "name": "neck4", + "parent": "neck3", + "pivot": [0.5, 91.03751, -144.81908], + "cubes": [ + {"origin": [-6.5, 86.0347, -185.81908], "size": [13, 15, 41], "uv": [0, 146]}, + {"origin": [0, 101.0347, -179.81584], "size": [0, 15, 35], "uv": [60, 48]} + ] + }, + { + "name": "head", + "parent": "neck4", + "pivot": [0, 88.0347, -183.81908], + "cubes": [ + {"origin": [-9, 93.0347, -202.81843], "size": [18, 8, 19], "inflate": 0.1, "uv": [103, 32]}, + {"origin": [-7.5, 101.03405, -200.81778], "size": [15, 3, 15], "uv": [0, 83]}, + {"origin": [-6.5, 98.03405, -199.81735], "size": [13, 8, 13], "uv": [5, 38]}, + {"origin": [-5.5, 104.03405, -198.81606], "size": [11, 5, 11], "uv": [11, 22]}, + {"origin": [-12, 98.0347, -194.81886], "size": [4, 8, 12], "uv": [0, 0]}, + {"origin": [-11, 98.03211, -182.81886], "size": [2, 7, 6], "uv": [0, 20]}, + {"origin": [-11, 98.03081, -176.81886], "size": [2, 4, 7], "uv": [0, 33]}, + {"origin": [8, 98.0347, -194.81886], "size": [4, 8, 12], "uv": [0, 0], "mirror": true}, + {"origin": [9, 98.03211, -182.81886], "size": [2, 7, 6], "uv": [0, 20], "mirror": true}, + {"origin": [9, 98.03081, -176.81886], "size": [2, 4, 7], "uv": [0, 33], "mirror": true}, + {"origin": [-8.5, 85.0347, -193.82038], "size": [17, 9, 10], "uv": [0, 101]}, + {"origin": [-8, 90.0347, -202.82016], "size": [0, 3, 14], "uv": [54, 87]}, + {"origin": [8, 90.0347, -202.82016], "size": [0, 3, 14], "uv": [54, 87], "mirror": true}, + {"origin": [-5, 87.03881, -217.82038], "size": [10, 5, 0], "uv": [55, 118]}, + {"origin": [-5, 87.03881, -217.82038], "size": [0, 5, 15], "uv": [55, 98]}, + {"origin": [5, 87.03881, -217.82038], "size": [0, 5, 15], "uv": [55, 98], "mirror": true}, + {"origin": [-10.525, 99.0347, -203.81714], "size": [5, 3, 14], "uv": [92, 98]}, + {"origin": [5.525, 99.0347, -203.81714], "size": [5, 3, 14], "uv": [92, 98], "mirror": true}, + {"origin": [-5.5, 92.0347, -218.81843], "size": [11, 9, 16], "uv": [67, 142]} + ] + }, + { + "name": "pharynx", + "parent": "head", + "pivot": [0, 88.0347, -184.81908] + }, + { + "name": "jaw", + "parent": "head", + "pivot": [0, 92.0347, -183.7693], + "cubes": [ + {"origin": [-9, 85.0347, -202.818], "size": [18, 7, 19], "uv": [0, 120]}, + {"origin": [-15, 85.0347, -197.818], "size": [9, 0, 14], "pivot": [-9, 85.0347, -193.318], "rotation": [0, 0, -45], "uv": [89, 21]}, + {"origin": [6, 85.0347, -197.818], "size": [9, 0, 14], "pivot": [9, 85.0347, -193.318], "rotation": [0, 0, 45], "uv": [89, 21], "mirror": true}, + {"origin": [-9, 85.0347, -183.818], "size": [0, 7, 8], "pivot": [-9, 88.5347, -183.818], "rotation": [0, -45, 0], "uv": [104, 6]}, + {"origin": [9, 85.0347, -183.818], "size": [0, 7, 8], "pivot": [9, 88.5347, -183.818], "rotation": [0, 45, 0], "uv": [104, 6], "mirror": true}, + {"origin": [-9, 92.0347, -202.81649], "size": [0, 3, 15], "uv": [54, 92]}, + {"origin": [-5, 92.1147, -218.79798], "size": [10, 3, 0], "uv": [54, 110]}, + {"origin": [-5.479, 92.11448, -217.79798], "size": [0, 3, 15], "uv": [54, 89]}, + {"origin": [5.479, 92.11448, -217.79798], "size": [0, 3, 15], "uv": [54, 89], "mirror": true}, + {"origin": [9, 92.0347, -202.81649], "size": [0, 3, 15], "uv": [54, 92], "mirror": true}, + {"origin": [-5.5, 85.1347, -218.81798], "size": [11, 7, 16], "inflate": -0.02, "uv": [121, 142]}, + {"origin": [-5.5, 78.18427, -216.81948], "size": [11, 7, 0], "uv": [103, 7]}, + {"origin": [-5.5, 78.18405, -215.81948], "size": [0, 7, 16], "uv": [103, -16]}, + {"origin": [5.5, 78.18405, -215.81948], "size": [0, 7, 16], "uv": [103, -16], "mirror": true} + ] + }, + { + "name": "R_neck", + "parent": "Torso", + "pivot": [-21, 68, -74], + "rotation": [20, 0, 0], + "cubes": [ + {"origin": [-32, 57, -108], "size": [22, 24, 59], "inflate": 0.1, "pivot": [-21, 68.5, -69], "rotation": [-20, 0, 0], "uv": [0, 0]}, + {"origin": [-21, 89.01849, -97.81541], "size": [0, 15, 35], "pivot": [-21, 101.51849, -87.31541], "rotation": [-20, 0, 0], "uv": [60, 48]} + ] + }, + { + "name": "R_neck2", + "parent": "R_neck", + "pivot": [-21, 82.02606, -104.81908], + "rotation": [-19.98762, 0, 0], + "cubes": [ + {"origin": [-21, 92.02692, -143.81584], "size": [0, 15, 35], "uv": [60, 48]}, + {"origin": [-28.5, 74.02584, -144.81908], "size": [15, 18, 41], "uv": [89, 83]} + ] + }, + { + "name": "R_neck3", + "parent": "R_neck2", + "pivot": [-20.5, 82.03751, -144.81908], + "cubes": [ + {"origin": [-27.5, 77.0347, -185.81908], "size": [13, 15, 41], "uv": [0, 146]}, + {"origin": [-21, 92.0347, -179.81584], "size": [0, 15, 35], "uv": [60, 48]} + ] + }, + { + "name": "R_head", + "parent": "R_neck3", + "pivot": [-21, 79.0347, -183.81908], + "cubes": [ + {"origin": [-30, 84.0347, -202.81843], "size": [18, 8, 19], "inflate": 0.1, "uv": [103, 32]}, + {"origin": [-33, 89.0347, -194.81886], "size": [4, 8, 12], "uv": [0, 0]}, + {"origin": [-32, 89.03211, -182.81886], "size": [2, 7, 6], "uv": [0, 20]}, + {"origin": [-32, 89.03081, -176.81886], "size": [2, 4, 7], "uv": [0, 33]}, + {"origin": [-13, 89.0347, -194.81886], "size": [4, 8, 12], "uv": [0, 0], "mirror": true}, + {"origin": [-12, 89.03211, -182.81886], "size": [2, 7, 6], "uv": [0, 20], "mirror": true}, + {"origin": [-12, 89.03081, -176.81886], "size": [2, 4, 7], "uv": [0, 33], "mirror": true}, + {"origin": [-29.5, 76.0347, -193.82038], "size": [17, 9, 10], "uv": [0, 101]}, + {"origin": [-29, 81.0347, -202.82016], "size": [0, 3, 14], "uv": [54, 87]}, + {"origin": [-13, 81.0347, -202.82016], "size": [0, 3, 14], "uv": [54, 87], "mirror": true}, + {"origin": [-26, 78.03881, -217.82038], "size": [10, 5, 0], "uv": [55, 118]}, + {"origin": [-26, 78.03881, -217.82038], "size": [0, 5, 15], "uv": [55, 98]}, + {"origin": [-16, 78.03881, -217.82038], "size": [0, 5, 15], "uv": [55, 98], "mirror": true}, + {"origin": [-31.525, 90.0347, -203.81714], "size": [5, 3, 14], "uv": [92, 98]}, + {"origin": [-15.475, 90.0347, -203.81714], "size": [5, 3, 14], "uv": [92, 98], "mirror": true}, + {"origin": [-26.5, 83.0347, -218.81843], "size": [11, 9, 16], "uv": [67, 142]} + ] + }, + { + "name": "R_jaw", + "parent": "R_head", + "pivot": [-21, 83.0347, -183.7693], + "cubes": [ + {"origin": [-30, 76.0347, -202.818], "size": [18, 7, 19], "uv": [0, 120]}, + {"origin": [-36, 76.0347, -197.818], "size": [9, 0, 14], "pivot": [-30, 76.0347, -193.318], "rotation": [0, 0, -45], "uv": [89, 21]}, + {"origin": [-15, 76.0347, -197.818], "size": [9, 0, 14], "pivot": [-12, 76.0347, -193.318], "rotation": [0, 0, 45], "uv": [89, 21], "mirror": true}, + {"origin": [-30, 76.0347, -183.818], "size": [0, 7, 8], "pivot": [-30, 79.5347, -183.818], "rotation": [0, -45, 0], "uv": [104, 6]}, + {"origin": [-12, 76.0347, -183.818], "size": [0, 7, 8], "pivot": [-12, 79.5347, -183.818], "rotation": [0, 45, 0], "uv": [104, 6], "mirror": true}, + {"origin": [-30, 83.0347, -202.81649], "size": [0, 3, 15], "uv": [54, 92]}, + {"origin": [-26, 83.1147, -218.79798], "size": [10, 3, 0], "uv": [54, 110]}, + {"origin": [-26.479, 83.11448, -217.79798], "size": [0, 3, 15], "uv": [54, 89]}, + {"origin": [-15.521, 83.11448, -217.79798], "size": [0, 3, 15], "uv": [54, 89], "mirror": true}, + {"origin": [-12, 83.0347, -202.81649], "size": [0, 3, 15], "uv": [54, 92], "mirror": true}, + {"origin": [-26.5, 76.1347, -218.81798], "size": [11, 7, 16], "inflate": -0.02, "uv": [121, 142]}, + {"origin": [-26.5, 69.18427, -216.81948], "size": [11, 7, 0], "uv": [103, 7]}, + {"origin": [-26.5, 69.18405, -215.81948], "size": [0, 7, 16], "uv": [103, -16]}, + {"origin": [-15.5, 69.18405, -215.81948], "size": [0, 7, 16], "uv": [103, -16], "mirror": true} + ] + }, + { + "name": "L_neck", + "parent": "Torso", + "pivot": [21, 68, -74], + "rotation": [20, 0, 0], + "cubes": [ + {"origin": [10, 57, -108], "size": [22, 24, 59], "inflate": 0.1, "pivot": [21, 68.5, -69], "rotation": [-20, 0, 0], "uv": [0, 0], "mirror": true}, + {"origin": [21, 89.01849, -97.81541], "size": [0, 15, 35], "pivot": [21, 101.51849, -87.31541], "rotation": [-20, 0, 0], "uv": [60, 48], "mirror": true} + ] + }, + { + "name": "L_neck2", + "parent": "L_neck", + "pivot": [21, 82.02606, -104.81908], + "rotation": [-19.98762, 0, 0], + "cubes": [ + {"origin": [21, 92.02692, -143.81584], "size": [0, 15, 35], "uv": [60, 48], "mirror": true}, + {"origin": [13.5, 74.02584, -144.81908], "size": [15, 18, 41], "uv": [89, 83], "mirror": true} + ] + }, + { + "name": "L_neck3", + "parent": "L_neck2", + "pivot": [20.5, 82.03751, -144.81908], + "cubes": [ + {"origin": [14.5, 77.0347, -185.81908], "size": [13, 15, 41], "uv": [0, 146], "mirror": true}, + {"origin": [21, 92.0347, -179.81584], "size": [0, 15, 35], "uv": [60, 48], "mirror": true} + ] + }, + { + "name": "L_head", + "parent": "L_neck3", + "pivot": [21, 79.0347, -183.81908], + "cubes": [ + {"origin": [12, 84.0347, -202.81843], "size": [18, 8, 19], "inflate": 0.1, "uv": [103, 32], "mirror": true}, + {"origin": [29, 89.0347, -194.81886], "size": [4, 8, 12], "uv": [0, 0], "mirror": true}, + {"origin": [30, 89.03211, -182.81886], "size": [2, 7, 6], "uv": [0, 20], "mirror": true}, + {"origin": [30, 89.03081, -176.81886], "size": [2, 4, 7], "uv": [0, 33], "mirror": true}, + {"origin": [9, 89.0347, -194.81886], "size": [4, 8, 12], "uv": [0, 0]}, + {"origin": [10, 89.03211, -182.81886], "size": [2, 7, 6], "uv": [0, 20]}, + {"origin": [10, 89.03081, -176.81886], "size": [2, 4, 7], "uv": [0, 33]}, + {"origin": [12.5, 76.0347, -193.82038], "size": [17, 9, 10], "uv": [0, 101], "mirror": true}, + {"origin": [29, 81.0347, -202.82016], "size": [0, 3, 14], "uv": [54, 87], "mirror": true}, + {"origin": [13, 81.0347, -202.82016], "size": [0, 3, 14], "uv": [54, 87]}, + {"origin": [16, 78.03881, -217.82038], "size": [10, 5, 0], "uv": [55, 118], "mirror": true}, + {"origin": [26, 78.03881, -217.82038], "size": [0, 5, 15], "uv": [55, 98], "mirror": true}, + {"origin": [16, 78.03881, -217.82038], "size": [0, 5, 15], "uv": [55, 98]}, + {"origin": [26.525, 90.0347, -203.81714], "size": [5, 3, 14], "uv": [92, 98], "mirror": true}, + {"origin": [10.475, 90.0347, -203.81714], "size": [5, 3, 14], "uv": [92, 98]}, + {"origin": [15.5, 83.0347, -218.81843], "size": [11, 9, 16], "uv": [67, 142], "mirror": true} + ] + }, + { + "name": "L_jaw", + "parent": "L_head", + "pivot": [21, 83.0347, -183.7693], + "cubes": [ + {"origin": [12, 76.0347, -202.818], "size": [18, 7, 19], "uv": [0, 120], "mirror": true}, + {"origin": [27, 76.0347, -197.818], "size": [9, 0, 14], "pivot": [30, 76.0347, -193.318], "rotation": [0, 0, 45], "uv": [89, 21], "mirror": true}, + {"origin": [6, 76.0347, -197.818], "size": [9, 0, 14], "pivot": [12, 76.0347, -193.318], "rotation": [0, 0, -45], "uv": [89, 21]}, + {"origin": [30, 76.0347, -183.818], "size": [0, 7, 8], "pivot": [30, 79.5347, -183.818], "rotation": [0, 45, 0], "uv": [104, 6], "mirror": true}, + {"origin": [12, 76.0347, -183.818], "size": [0, 7, 8], "pivot": [12, 79.5347, -183.818], "rotation": [0, -45, 0], "uv": [104, 6]}, + {"origin": [30, 83.0347, -202.81649], "size": [0, 3, 15], "uv": [54, 92], "mirror": true}, + {"origin": [16, 83.1147, -218.79798], "size": [10, 3, 0], "uv": [54, 110], "mirror": true}, + {"origin": [26.479, 83.11448, -217.79798], "size": [0, 3, 15], "uv": [54, 89], "mirror": true}, + {"origin": [15.521, 83.11448, -217.79798], "size": [0, 3, 15], "uv": [54, 89]}, + {"origin": [12, 83.0347, -202.81649], "size": [0, 3, 15], "uv": [54, 92]}, + {"origin": [15.5, 76.1347, -218.81798], "size": [11, 7, 16], "inflate": -0.02, "uv": [121, 142], "mirror": true}, + {"origin": [15.5, 69.18427, -216.81948], "size": [11, 7, 0], "uv": [103, 7], "mirror": true}, + {"origin": [26.5, 69.18405, -215.81948], "size": [0, 7, 16], "uv": [103, -16], "mirror": true}, + {"origin": [15.5, 69.18405, -215.81948], "size": [0, 7, 16], "uv": [103, -16]} + ] + }, + { + "name": "R_wing", + "parent": "Torso", + "pivot": [-26, 94.5, -48], + "cubes": [ + {"origin": [-37, 87, -54], "size": [13, 12, 14], "uv": [327, 161]}, + {"origin": [-84, 91, -49], "size": [47, 8, 9], "uv": [83, 303]}, + {"origin": [-75, 95, -40], "size": [70, 0, 83], "uv": [118, 92]} + ] + }, + { + "name": "R_wing2", + "parent": "R_wing", + "pivot": [-75, 95, -36], + "cubes": [ + {"origin": [-144, 91, -40], "size": [69, 8, 9], "uv": [0, 283]}, + {"origin": [-144, 91, -66], "size": [9, 8, 26], "uv": [381, 151]}, + {"origin": [-144, 91, -92], "size": [6, 8, 26], "uv": [0, 249]}, + {"origin": [-144, 95, -31], "size": [69, 0, 81], "uv": [27, 175]} + ] + }, + { + "name": "R_wing3", + "parent": "R_wing2", + "pivot": [-144, 95, -40], + "cubes": [ + {"origin": [-227, 95, -40], "size": [83, 0, 92], "uv": [85, 0]} + ] + }, + { + "name": "L_wing", + "parent": "Torso", + "pivot": [26, 94.5, -48], + "cubes": [ + {"origin": [24, 87, -54], "size": [13, 12, 14], "uv": [327, 161], "mirror": true}, + {"origin": [37, 91, -49], "size": [47, 8, 9], "uv": [83, 303], "mirror": true}, + {"origin": [5, 95, -40], "size": [70, 0, 83], "uv": [118, 92], "mirror": true} + ] + }, + { + "name": "L_wing2", + "parent": "L_wing", + "pivot": [75, 95, -36], + "cubes": [ + {"origin": [75, 91, -40], "size": [69, 8, 9], "uv": [0, 283], "mirror": true}, + {"origin": [135, 91, -66], "size": [9, 8, 26], "uv": [381, 151], "mirror": true}, + {"origin": [138, 91, -92], "size": [6, 8, 26], "uv": [0, 249], "mirror": true}, + {"origin": [75, 95, -31], "size": [69, 0, 81], "uv": [27, 175], "mirror": true} + ] + }, + { + "name": "L_wing3", + "parent": "L_wing2", + "pivot": [144, 95, -40], + "cubes": [ + {"origin": [144, 95, -40], "size": [83, 0, 92], "uv": [85, 0], "mirror": true} + ] + }, + { + "name": "Tail", + "parent": "Torso", + "pivot": [0, 83.5, 34], + "cubes": [ + {"origin": [-10.5, 57, 34], "size": [21, 40, 53], "inflate": 0.01, "uv": [0, 376]}, + {"origin": [-3.5, 94.7, 69], "size": [7, 14, 8], "uv": [332, 289]}, + {"origin": [-3.5, 94.7, 47], "size": [7, 14, 8], "uv": [332, 289]} + ] + }, + { + "name": "Tail2", + "parent": "Tail", + "pivot": [0, 85.66667, 87], + "cubes": [ + {"origin": [-10.5, 66, 87], "size": [21, 31, 53], "uv": [341, 67]}, + {"origin": [-3.5, 94.7, 97], "size": [7, 14, 8], "uv": [332, 289]}, + {"origin": [-3.5, 94.7, 119], "size": [7, 14, 8], "uv": [332, 289]} + ] + }, + { + "name": "Tail3", + "parent": "Tail2", + "pivot": [0, 87.75, 140], + "cubes": [ + {"origin": [-3.5, 94.7, 173], "size": [7, 14, 8], "uv": [332, 289]}, + {"origin": [-3.5, 94.7, 151], "size": [7, 14, 8], "uv": [332, 289]}, + {"origin": [-7, 74, 140], "size": [14, 23, 53], "uv": [0, 300]} + ] + }, + { + "name": "Tail4", + "parent": "Tail3", + "pivot": [0, 90, 193], + "cubes": [ + {"origin": [-4.5, 83, 193], "size": [9, 14, 53], "uv": [343, 0]}, + {"origin": [-19.5, 87, 230], "size": [39, 7, 27], "uv": [355, 209]}, + {"origin": [-4.5, 87, 257], "size": [9, 7, 18], "uv": [363, 243]} + ] + }, + { + "name": "R_tight", + "parent": "body", + "pivot": [-28.8, 58.2, 13.3], + "cubes": [ + {"origin": [-39, 25, -5], "size": [18, 45, 36], "uv": [246, 175]} + ] + }, + { + "name": "R_leg", + "parent": "R_tight", + "pivot": [-28.5, 36.375, 36.625], + "cubes": [ + {"origin": [-33, 4, 31], "size": [12, 35, 12], "uv": [0, 202]} + ] + }, + { + "name": "R_foot", + "parent": "R_leg", + "pivot": [-29, 3.66667, 37.5], + "cubes": [ + {"origin": [-35, 0, 20], "size": [16, 6, 23], "uv": [415, 0]}, + {"origin": [-35, 0, 13], "size": [5, 6, 7], "uv": [466, 173]}, + {"origin": [-24, 0, 13], "size": [5, 6, 7], "uv": [466, 173]}, + {"origin": [-30, 0, 9], "size": [6, 10, 13], "inflate": 0.01, "uv": [38, 249]} + ] + }, + { + "name": "L_tight", + "parent": "body", + "pivot": [28.8, 58.2, 13.3], + "cubes": [ + {"origin": [21, 25, -5], "size": [18, 45, 36], "uv": [246, 175], "mirror": true} + ] + }, + { + "name": "L_leg", + "parent": "L_tight", + "pivot": [28.5, 36.375, 36.625], + "cubes": [ + {"origin": [21, 4, 31], "size": [12, 35, 12], "uv": [0, 202], "mirror": true} + ] + }, + { + "name": "L_foot", + "parent": "L_leg", + "pivot": [29, 3.66667, 37.5], + "cubes": [ + {"origin": [19, 0, 20], "size": [16, 6, 23], "uv": [415, 0], "mirror": true}, + {"origin": [30, 0, 13], "size": [5, 6, 7], "uv": [466, 173], "mirror": true}, + {"origin": [19, 0, 13], "size": [5, 6, 7], "uv": [466, 173], "mirror": true}, + {"origin": [24, 0, 9], "size": [6, 10, 13], "inflate": 0.01, "uv": [38, 249], "mirror": true} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/royal_assailant_staff.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/royal_assailant_staff.geo.json new file mode 100644 index 00000000..78cabd84 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/royal_assailant_staff.geo.json @@ -0,0 +1,114 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.eye_of_the_storm", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 3, + "visible_bounds_height": 4, + "visible_bounds_offset": [0, 1, 0] + }, + "bones": [ + { + "name": "royal_assailant_staff", + "pivot": [8, 0, -8] + }, + { + "name": "staff", + "parent": "royal_assailant_staff", + "pivot": [1, -8, -1], + "cubes": [ + { + "origin": [-0.5, -12, -0.5], + "size": [1, 38, 1], + "uv": { + "north": {"uv": [3, 0], "uv_size": [1, 38]}, + "east": {"uv": [3, 0], "uv_size": [1, 38]}, + "south": {"uv": [3, 0], "uv_size": [1, 38]}, + "west": {"uv": [3, 0], "uv_size": [1, 38]}, + "up": {"uv": [4, 38], "uv_size": [-1, -38]}, + "down": {"uv": [4, 38], "uv_size": [-1, -38]} + } + }, + { + "origin": [-1.5, -15, -1.5], + "size": [3, 3, 3], + "uv": { + "north": {"uv": [17, 20], "uv_size": [3, 3]}, + "east": {"uv": [17, 20], "uv_size": [3, 3]}, + "south": {"uv": [17, 20], "uv_size": [3, 3]}, + "west": {"uv": [17, 20], "uv_size": [3, 3]}, + "up": {"uv": [23, 23], "uv_size": [-3, -3]}, + "down": {"uv": [23, 23], "uv_size": [-3, -3]} + } + } + ] + }, + { + "name": "wings", + "parent": "staff", + "pivot": [0, 23, 0] + }, + { + "name": "right_wing", + "parent": "wings", + "pivot": [0, 23, 0], + "cubes": [ + { + "origin": [0, 16, 0], + "size": [12, 14, 0], + "uv": { + "north": {"uv": [64, 0], "uv_size": [-12, 14]}, + "east": {"uv": [3, 0], "uv_size": [1, 38]}, + "south": {"uv": [52, 0], "uv_size": [12, 14]}, + "west": {"uv": [3, 0], "uv_size": [1, 38]}, + "up": {"uv": [4, 38], "uv_size": [-1, -38]}, + "down": {"uv": [4, 38], "uv_size": [-1, -38]} + } + } + ] + }, + { + "name": "left_wing", + "parent": "wings", + "pivot": [0, 23, 0], + "cubes": [ + { + "origin": [-12, 16, 0], + "size": [12, 14, 0], + "uv": { + "north": {"uv": [52, 0], "uv_size": [12, 14]}, + "east": {"uv": [3, 0], "uv_size": [1, 38]}, + "south": {"uv": [64, 0], "uv_size": [-12, 14]}, + "west": {"uv": [3, 0], "uv_size": [1, 38]}, + "up": {"uv": [4, 38], "uv_size": [-1, -38]}, + "down": {"uv": [4, 38], "uv_size": [-1, -38]} + } + } + ] + }, + { + "name": "eye", + "parent": "royal_assailant_staff", + "pivot": [0, 26, 0], + "cubes": [ + { + "origin": [-3, 25, -3], + "size": [6, 6, 6], + "uv": { + "north": {"uv": [10, 0], "uv_size": [6, 6]}, + "east": {"uv": [10, 6], "uv_size": [6, 6]}, + "south": {"uv": [10, 6], "uv_size": [6, 6]}, + "west": {"uv": [10, 6], "uv_size": [6, 6]}, + "up": {"uv": [16, 12], "uv_size": [-6, -6], "uv_rotation": 90}, + "down": {"uv": [16, 6], "uv_size": [-6, 6], "uv_rotation": 270} + } + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/royal_guardian_sword.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/royal_guardian_sword.geo.json new file mode 100644 index 00000000..378a1c1a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/royal_guardian_sword.geo.json @@ -0,0 +1,225 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.royal_guardian_sword - Converted", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 2, + "visible_bounds_height": 4, + "visible_bounds_offset": [0, 1, 0] + }, + "bones": [ + { + "name": "royal_guardian_sword", + "pivot": [0.35, -7.75, 0] + }, + { + "name": "guard", + "parent": "royal_guardian_sword", + "pivot": [0.35, -7.75, 0], + "cubes": [ + { + "origin": [-1.5, -6.5, -1.25], + "size": [3, 1, 2.5], + "uv": { + "north": {"uv": [31, 9], "uv_size": [3, 1]}, + "east": {"uv": [22, 9], "uv_size": [3, 1]}, + "south": {"uv": [31, 9], "uv_size": [3, 1]}, + "west": {"uv": [28, 9], "uv_size": [3, 1]}, + "up": {"uv": [25, 6], "uv_size": [3, 2.5]}, + "down": {"uv": [28, 8.5], "uv_size": [3, -2.5]} + } + }, + { + "origin": [-1, -9.5, -1], + "size": [2, 3, 2], + "uv": { + "north": {"uv": [16, 24], "uv_size": [2, 3]}, + "east": {"uv": [14, 24], "uv_size": [2, 3]}, + "south": {"uv": [20, 24], "uv_size": [2, 3]}, + "west": {"uv": [18, 24], "uv_size": [2, 3]}, + "up": {"uv": [16, 22], "uv_size": [2, 2]}, + "down": {"uv": [18, 24], "uv_size": [2, -2]} + } + }, + { + "origin": [0.2, -9.5, -5.2], + "size": [0, 3, 4], + "pivot": [0.2, -8, -0.2], + "rotation": [0, -45, 0], + "uv": { + "north": {"uv": [26, 14], "uv_size": [0, 3]}, + "east": {"uv": [30, 14], "uv_size": [-4, 3]}, + "south": {"uv": [30, 14], "uv_size": [0, 3]}, + "west": {"uv": [26, 14], "uv_size": [4, 3]}, + "up": {"uv": [26, 10], "uv_size": [0, 4]}, + "down": {"uv": [26, 14], "uv_size": [0, -4]} + } + } + ] + }, + { + "name": "group2", + "parent": "guard", + "pivot": [-3.1, -7.05, 0.5], + "cubes": [ + { + "origin": [-0.41644, -5.62638, -1.25], + "size": [1, 5, 2.5], + "inflate": -0.005, + "pivot": [-0.5, -6.43592, 0.75], + "rotation": [0, 0, -100], + "uv": { + "north": {"uv": [21, 17], "uv_size": [1, 5]}, + "east": {"uv": [18.5, 17], "uv_size": [2.5, 5]}, + "south": {"uv": [22, 17], "uv_size": [-1, 5]}, + "west": {"uv": [14.5, 17], "uv_size": [2.5, 5]}, + "up": {"uv": [17, 14.5], "uv_size": [1, 2.5]}, + "down": {"uv": [17, 17], "uv_size": [1, -2.5]} + } + }, + { + "origin": [-0.58356, -5.62638, -1.25], + "size": [1, 5, 2.5], + "inflate": -0.005, + "pivot": [0.5, -6.43592, 0.75], + "rotation": [0, 0, 100], + "uv": { + "north": {"uv": [22, 17], "uv_size": [-1, 5]}, + "east": {"uv": [14.5, 17], "uv_size": [2.5, 5]}, + "south": {"uv": [21, 17], "uv_size": [1, 5]}, + "west": {"uv": [18.5, 17], "uv_size": [2.5, 5]}, + "up": {"uv": [17, 14.5], "uv_size": [1, 2.5]}, + "down": {"uv": [17, 17], "uv_size": [1, -2.5]} + } + } + ] + }, + { + "name": "group", + "parent": "guard", + "pivot": [-3.1, -7.05, 0.5] + }, + { + "name": "handle", + "parent": "royal_guardian_sword", + "pivot": [3, -15, -3], + "cubes": [ + { + "origin": [-0.5, -14, -0.5], + "size": [1, 7, 1], + "uv": { + "north": {"uv": [27, 18], "uv_size": [1, 7]}, + "east": {"uv": [26, 18], "uv_size": [1, 7]}, + "south": {"uv": [29, 18], "uv_size": [1, 7]}, + "west": {"uv": [28, 18], "uv_size": [1, 7]}, + "up": {"uv": [27, 17], "uv_size": [1, 1]}, + "down": {"uv": [28, 18], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.5, -14, -0.5], + "size": [1, 8, 1], + "inflate": 0.2, + "uv": { + "north": {"uv": [23, 18], "uv_size": [1, 8]}, + "east": {"uv": [22, 18], "uv_size": [1, 8]}, + "south": {"uv": [25, 18], "uv_size": [1, 8]}, + "west": {"uv": [24, 18], "uv_size": [1, 8]}, + "up": {"uv": [23, 17], "uv_size": [1, 1]}, + "down": {"uv": [24, 18], "uv_size": [1, -1]} + } + }, + { + "origin": [-1.5, -16, -1.5], + "size": [3, 3, 3], + "uv": { + "north": {"uv": [23, 3], "uv_size": [3, 3]}, + "east": {"uv": [23, 3], "uv_size": [3, 3]}, + "south": {"uv": [23, 3], "uv_size": [3, 3]}, + "west": {"uv": [23, 3], "uv_size": [3, 3]}, + "up": {"uv": [17, 0], "uv_size": [3, 3]}, + "down": {"uv": [20, 3], "uv_size": [3, -3]} + } + } + ] + }, + { + "name": "blade", + "parent": "royal_guardian_sword", + "pivot": [6, -5, -3], + "cubes": [ + { + "origin": [1.5, -6, 0], + "size": [1, 34, 0], + "uv": { + "north": {"uv": [10, 0], "uv_size": [1, 34]}, + "east": {"uv": [10, 0], "uv_size": [0, 34]}, + "south": {"uv": [11, 0], "uv_size": [1, 34]}, + "west": {"uv": [11, 0], "uv_size": [0, 34]}, + "up": {"uv": [10, 0], "uv_size": [1, 0]}, + "down": {"uv": [11, 0], "uv_size": [1, 0]} + } + }, + { + "origin": [-2, -6, -0.5], + "size": [4, 33.625, 1], + "uv": { + "north": {"uv": [1, 1], "uv_size": [4, 33]}, + "east": {"uv": [0, 1], "uv_size": [1, 33]}, + "south": {"uv": [6, 1], "uv_size": [4, 33]}, + "west": {"uv": [5, 1], "uv_size": [1, 33]}, + "up": {"uv": [1, 0], "uv_size": [4, 1]}, + "down": {"uv": [5, 1], "uv_size": [4, -1]} + } + }, + { + "origin": [-2.1, 26.525, -0.5], + "size": [2.8, 2.8, 1], + "inflate": 0.005, + "pivot": [0, 28.625, 0], + "rotation": [0, 0, -45], + "uv": { + "north": {"uv": [27, 1], "uv_size": [2, 2]}, + "east": {"uv": [26, 1], "uv_size": [1, 2]}, + "south": {"uv": [30, 1], "uv_size": [2, 2]}, + "west": {"uv": [29, 1], "uv_size": [1, 2]}, + "up": {"uv": [27, 0], "uv_size": [2, 1]}, + "down": {"uv": [29, 1], "uv_size": [2, -1]} + } + }, + { + "origin": [-1.9, 26.3, 0], + "size": [3.525, 3.525, 0], + "inflate": 0.005, + "pivot": [0, 28.2, 0], + "rotation": [0, 0, -45], + "uv": { + "north": {"uv": [26, 3], "uv_size": [3, 3]}, + "east": {"uv": [26, 3], "uv_size": [0, 3]}, + "south": {"uv": [29, 3], "uv_size": [3, 3]}, + "west": {"uv": [29, 3], "uv_size": [0, 3]}, + "up": {"uv": [26, 3], "uv_size": [3, 0]}, + "down": {"uv": [29, 3], "uv_size": [3, 0]} + } + }, + { + "origin": [-2.5, -6, 0], + "size": [1, 34, 0], + "uv": { + "north": {"uv": [12, 0], "uv_size": [1, 34]}, + "east": {"uv": [12, 0], "uv_size": [0, 34]}, + "south": {"uv": [13, 0], "uv_size": [1, 34]}, + "west": {"uv": [13, 0], "uv_size": [0, 34]}, + "up": {"uv": [12, 0], "uv_size": [1, 0]}, + "down": {"uv": [13, 0], "uv_size": [1, 0]} + } + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/vortex.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/vortex.geo.json new file mode 100644 index 00000000..5520d3d5 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/vortex.geo.json @@ -0,0 +1,74 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.vortex", + "texture_width": 256, + "texture_height": 128, + "visible_bounds_width": 6, + "visible_bounds_height": 4.5, + "visible_bounds_offset": [0, 1.75, 0] + }, + "bones": [ + { + "name": "root", + "pivot": [0, 0, 0] + }, + { + "name": "head", + "parent": "root", + "pivot": [0, 26.30769, 0.35392], + "cubes": [ + {"origin": [0, 19, -11.975], "size": [16, 16, 16], "pivot": [0, 19, -11.975], "rotation": [0, -45, 0], "uv": [64, 0], "mirror": true}, + {"origin": [-26, 22, -12], "size": [26, 16, 0], "pivot": [0, 20, -12], "rotation": [0, 45, 0], "uv": [2, 4]}, + {"origin": [0, 22, -12], "size": [26, 16, 0], "pivot": [0, 20, -12], "rotation": [0, -45, 0], "uv": [2, 4], "mirror": true} + ] + }, + { + "name": "right_wing_bottom", + "parent": "head", + "pivot": [-12, 13, 3.025], + "cubes": [ + {"origin": [-38, 2, 3.025], "size": [26, 22, 0], "uv": [0, 44]} + ] + }, + { + "name": "left_wing_bottom", + "parent": "head", + "pivot": [12, 13, 3.025], + "cubes": [ + {"origin": [12, 2, 3.025], "size": [26, 22, 0], "uv": [0, 44], "mirror": true} + ] + }, + { + "name": "clouds", + "parent": "head", + "pivot": [0, 27, -0.31815], + "cubes": [ + {"origin": [-8, 18, -13.975], "size": [24, 18, 0], "pivot": [0, 19, -5.975], "rotation": [0, -45, 0], "uv": [89, 57], "mirror": true}, + {"origin": [-8, 18, -13.975], "size": [0, 18, 24], "pivot": [0, 19, -5.975], "rotation": [0, -45, 0], "uv": [89, 33], "mirror": true}, + {"origin": [-8, 18, 10.025], "size": [24, 18, 0], "pivot": [0, 19, -5.975], "rotation": [0, -45, 0], "uv": [89, 57], "mirror": true}, + {"origin": [16, 18, -13.975], "size": [0, 18, 24], "pivot": [0, 19, -5.975], "rotation": [0, -45, 0], "uv": [89, 33], "mirror": true} + ] + }, + { + "name": "right_wing", + "parent": "head", + "pivot": [-12, 40, 3.025], + "cubes": [ + {"origin": [-38, 29, 3.025], "size": [26, 22, 0], "uv": [0, 22]} + ] + }, + { + "name": "left_wing", + "parent": "head", + "pivot": [12, 40, 3.025], + "cubes": [ + {"origin": [12, 29, 3.025], "size": [26, 22, 0], "uv": [0, 22], "mirror": true} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/worm_medium.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/worm_medium.geo.json new file mode 100644 index 00000000..5f74e8bb --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/worm_medium.geo.json @@ -0,0 +1,69 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.mediumworm", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 2, + "visible_bounds_height": 3.5, + "visible_bounds_offset": [0, 1.25, 0] + }, + "bones": [ + { + "name": "root", + "pivot": [0, 0, 0] + }, + { + "name": "body", + "parent": "root", + "pivot": [0, 16, 0], + "cubes": [ + {"origin": [-2.5, 16, -2.5], "size": [5, 16, 5], "uv": [0, 0]} + ] + }, + { + "name": "tooth1", + "parent": "body", + "pivot": [0, 32, 2.5], + "cubes": [ + {"origin": [-0.5, 32, 1.5], "size": [1, 3, 1], "uv": [20, 20]} + ] + }, + { + "name": "tooth2", + "parent": "body", + "pivot": [-2.5, 32, 0], + "cubes": [ + {"origin": [-2.5, 32, -0.5], "size": [1, 3, 1], "uv": [4, 21]} + ] + }, + { + "name": "tooth3", + "parent": "body", + "pivot": [2.5, 32, 0], + "cubes": [ + {"origin": [1.5, 32, -0.5], "size": [1, 3, 1], "uv": [8, 21]} + ] + }, + { + "name": "tooth4", + "parent": "body", + "pivot": [0, 32, -2.5], + "cubes": [ + {"origin": [-0.5, 32, -2.5], "size": [1, 3, 1], "uv": [0, 21]} + ] + }, + { + "name": "tail", + "parent": "body", + "pivot": [0, 16, 0], + "cubes": [ + {"origin": [-2, 0, -2], "size": [4, 16, 4], "uv": [20, 0]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/geo/worm_small.geo.json b/common-1.20.1/src/main/resources/assets/antarchy/geo/worm_small.geo.json new file mode 100644 index 00000000..bde1caca --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/geo/worm_small.geo.json @@ -0,0 +1,29 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.smallworm", + "texture_width": 16, + "texture_height": 16, + "visible_bounds_width": 2, + "visible_bounds_height": 1.5, + "visible_bounds_offset": [0, 0.25, 0] + }, + "bones": [ + { + "name": "root", + "pivot": [0, 0, 0] + }, + { + "name": "body", + "parent": "root", + "pivot": [0, 4, 0], + "cubes": [ + {"origin": [-1, 0, -1], "size": [2, 8, 2], "uv": [0, 0]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/lang/en_us.json b/common-1.20.1/src/main/resources/assets/antarchy/lang/en_us.json index aa285c47..260b2f50 100644 --- a/common-1.20.1/src/main/resources/assets/antarchy/lang/en_us.json +++ b/common-1.20.1/src/main/resources/assets/antarchy/lang/en_us.json @@ -588,6 +588,8 @@ "effect.antarchy.glimmering.description": "Passes through entities and attacks unharmed, like a spirit.", "effect.antarchy.dilated": "Dilated", "effect.antarchy.dilated.description": "Slows the passage of time for the affected entity.", + "effect.antarchy.contracted": "Temporal Contraction", + "effect.antarchy.contracted.description": "Speeds the passage of time for the affected entity.", "death.attack.triffid_mauling": "%1$s was mauled to death by a plant", "death.attack.triffid_mauling.player": "%1$s was mauled to death by a plant", "death.attack.triffid_swallow": "%1$s was swallowed by a triffid", diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/chiseled_loam_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/chiseled_loam_bricks.json new file mode 100644 index 00000000..5f9da8c2 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/chiseled_myrmite.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/chiseled_myrmite.json new file mode 100644 index 00000000..6c9de060 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/chiseled_typhonite.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/chiseled_typhonite.json new file mode 100644 index 00000000..5edd6568 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/chiseled_typhonite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/typhonite/chiseled_typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/duskbell.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/duskbell.json new file mode 100644 index 00000000..4a52644a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/duskbell.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/duskbell" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/glimmering_reed_bottom.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/glimmering_reed_bottom.json new file mode 100644 index 00000000..9c2c57fd --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/glimmering_reed_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/glimming_reed/glimmering_reed_bottom" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/glimmering_reed_top.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/glimmering_reed_top.json new file mode 100644 index 00000000..204c8a0f --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/glimmering_reed_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/glimming_reed/glimmering_reed_top" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/gorevine.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/gorevine.json new file mode 100644 index 00000000..41ce6d97 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/gorevine.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/gorevine_hanging" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/gorevine_body.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/gorevine_body.json new file mode 100644 index 00000000..af562f5a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/gorevine_body.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/gorevine" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/large_nadir_fern_bottom.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/large_nadir_fern_bottom.json new file mode 100644 index 00000000..4a015e98 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/large_nadir_fern_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/large_nadir_fern_bottom" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/large_nadir_fern_top.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/large_nadir_fern_top.json new file mode 100644 index 00000000..c7c93ded --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/large_nadir_fern_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/large_nadir_fern_top" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/loam_brick_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/loam_brick_slab.json new file mode 100644 index 00000000..0ab6ef48 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/loam_brick_slab_top.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/loam_brick_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/loam_brick_stairs.json new file mode 100644 index 00000000..ba081234 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/loam_brick_stairs_inner.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/loam_brick_stairs_outer.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/loam_brick_wall_inventory.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/loam_brick_wall_post.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/loam_brick_wall_side.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/loam_brick_wall_side_tall.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/loam_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/loam_bricks.json new file mode 100644 index 00000000..ef010bb7 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/magenta_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/magenta_truffalo_tuft.json new file mode 100644 index 00000000..3ef874db --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/magenta_truffalo_tuft.json @@ -0,0 +1,576 @@ +{ + "parent": "block/block", + "textures": { + "particle": "antarchy:block/truffalo/magenta_truffalo_tuft" + }, + "elements": [ + { + "name": "block", + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#all", "cullface": "north", "tintindex": 0}, + "east": {"uv": [0, 0, 16, 16], "texture": "#all", "cullface": "east", "tintindex": 0}, + "south": {"uv": [0, 0, 16, 16], "texture": "#all", "cullface": "south", "tintindex": 0}, + "west": {"uv": [0, 0, 16, 16], "texture": "#all", "cullface": "west", "tintindex": 0}, + "up": {"uv": [0, 0, 16, 16], "texture": "#all", "cullface": "up", "tintindex": 0}, + "down": {"uv": [0, 0, 16, 16], "texture": "#all", "cullface": "down", "tintindex": 0} + } + }, + { + "name": "top", + "from": [8, 20, 3.3], + "to": [8, 21, 13.3], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 18.25, 8.3]}, + "faces": { + "east": {"uv": [3, 2, 13, 1], "rotation": 180, "texture": "#all", "cullface": "up", "tintindex": 0}, + "west": {"uv": [3, 2, 13, 1], "rotation": 180, "texture": "#all", "cullface": "up", "tintindex": 0} + } + }, + { + "name": "top", + "from": [8, 18, 1.3], + "to": [8, 20, 15.3], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 18.25, 8.3]}, + "faces": { + "east": {"uv": [1, 4, 15, 2], "rotation": 180, "texture": "#all", "cullface": "up", "tintindex": 0}, + "west": {"uv": [1, 4, 15, 2], "rotation": 180, "texture": "#all", "cullface": "up", "tintindex": 0} + } + }, + { + "name": "top", + "from": [8, 16, 8.3], + "to": [8, 18, 17.3], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 18.25, 8.3]}, + "faces": { + "east": {"uv": [7, 6, 16, 4], "rotation": 180, "texture": "#all", "cullface": "up", "tintindex": 0}, + "west": {"uv": [7, 6, 16, 4], "rotation": 180, "texture": "#all", "cullface": "up", "tintindex": 0} + } + }, + { + "name": "top", + "from": [8, 16, -0.7], + "to": [8, 18, 8.3], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 18.25, 8.3]}, + "faces": { + "east": {"uv": [0, 6, 9, 4], "rotation": 180, "texture": "#all", "cullface": "up", "tintindex": 0}, + "west": {"uv": [0, 6, 9, 4], "rotation": 180, "texture": "#all", "cullface": "up", "tintindex": 0} + } + }, + { + "name": "top", + "from": [-1, 16, 8.3], + "to": [8, 18, 8.3], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 18.25, 8.3]}, + "faces": { + "north": {"uv": [0, 7, 9, 5], "rotation": 180, "texture": "#all", "cullface": "up", "tintindex": 0}, + "south": {"uv": [0, 7, 9, 5], "rotation": 180, "texture": "#all", "cullface": "up", "tintindex": 0} + } + }, + { + "name": "top", + "from": [3, 20, 8.3], + "to": [13, 21, 8.3], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 18.25, 8.3]}, + "faces": { + "north": {"uv": [4, 3, 14, 2], "rotation": 180, "texture": "#all", "cullface": "up", "tintindex": 0}, + "south": {"uv": [4, 3, 14, 2], "rotation": 180, "texture": "#all", "cullface": "up", "tintindex": 0} + } + }, + { + "name": "top", + "from": [1, 18, 8.3], + "to": [15, 20, 8.3], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 18.25, 8.3]}, + "faces": { + "north": {"uv": [2, 5, 16, 3], "rotation": 180, "texture": "#all", "cullface": "up", "tintindex": 0}, + "south": {"uv": [2, 5, 16, 3], "rotation": 180, "texture": "#all", "cullface": "up", "tintindex": 0} + } + }, + { + "name": "top", + "from": [8, 16, 8.3], + "to": [17, 18, 8.3], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 18.25, 8.3]}, + "faces": { + "north": {"uv": [7, 7, 16, 5], "rotation": 180, "texture": "#all", "cullface": "up", "tintindex": 0}, + "south": {"uv": [7, 7, 16, 5], "rotation": 180, "texture": "#all", "cullface": "up", "tintindex": 0} + } + }, + { + "name": "down", + "from": [8, -5, 3.3], + "to": [8, -4, 13.3], + "rotation": {"angle": -45, "axis": "y", "origin": [8, -2.25, 8.3]}, + "faces": { + "east": {"uv": [4, 15, 14, 14], "texture": "#all", "cullface": "down", "tintindex": 0}, + "west": {"uv": [3, 14, 13, 13], "texture": "#all", "cullface": "down", "tintindex": 0} + } + }, + { + "name": "down", + "from": [8, -4, 1.3], + "to": [8, -2, 15.3], + "rotation": {"angle": -45, "axis": "y", "origin": [8, -2.25, 8.3]}, + "faces": { + "east": {"uv": [1, 14, 15, 12], "texture": "#all", "cullface": "down", "tintindex": 0}, + "west": {"uv": [1, 14, 15, 12], "texture": "#all", "cullface": "down", "tintindex": 0} + } + }, + { + "name": "down", + "from": [8, -2, 8.3], + "to": [8, 0, 17.3], + "rotation": {"angle": -45, "axis": "y", "origin": [8, -2.25, 8.3]}, + "faces": { + "east": {"uv": [7, 6, 16, 4], "texture": "#all", "cullface": "down", "tintindex": 0}, + "west": {"uv": [7, 12, 16, 10], "texture": "#all", "cullface": "down", "tintindex": 0} + } + }, + { + "name": "down", + "from": [8, -2, -0.7], + "to": [8, 0, 8.3], + "rotation": {"angle": -45, "axis": "y", "origin": [8, -2.25, 8.3]}, + "faces": { + "east": {"uv": [0, 6, 9, 4], "texture": "#all", "cullface": "down", "tintindex": 0}, + "west": {"uv": [0, 12, 9, 10], "texture": "#all", "cullface": "down", "tintindex": 0} + } + }, + { + "name": "down", + "from": [8, -2, 8.3], + "to": [17, 0, 8.3], + "rotation": {"angle": -45, "axis": "y", "origin": [8, -2.25, 8.3]}, + "faces": { + "north": {"uv": [0, 13, 9, 11], "texture": "#all", "cullface": "down", "tintindex": 0}, + "south": {"uv": [0, 13, 9, 11], "texture": "#all", "cullface": "down", "tintindex": 0} + } + }, + { + "name": "down", + "from": [3, -5, 8.3], + "to": [13, -4, 8.3], + "rotation": {"angle": -45, "axis": "y", "origin": [8, -2.25, 8.3]}, + "faces": { + "north": {"uv": [4, 3, 14, 2], "texture": "#all", "cullface": "down", "tintindex": 0}, + "south": {"uv": [4, 15, 14, 14], "texture": "#all", "cullface": "down", "tintindex": 0} + } + }, + { + "name": "down", + "from": [1, -4, 8.3], + "to": [15, -2, 8.3], + "rotation": {"angle": -45, "axis": "y", "origin": [8, -2.25, 8.3]}, + "faces": { + "north": {"uv": [2, 5, 16, 3], "texture": "#all", "cullface": "down", "tintindex": 0}, + "south": {"uv": [2, 15, 16, 13], "texture": "#all", "cullface": "down", "tintindex": 0} + } + }, + { + "name": "down", + "from": [-1, -2, 8.3], + "to": [8, 0, 8.3], + "rotation": {"angle": -45, "axis": "y", "origin": [8, -2.25, 8.3]}, + "faces": { + "north": {"uv": [7, 13, 16, 11], "texture": "#all", "cullface": "down", "tintindex": 0}, + "south": {"uv": [7, 13, 16, 11], "texture": "#all", "cullface": "down", "tintindex": 0} + } + }, + { + "name": "west", + "from": [20.25, 7.75, 3.3], + "to": [21.25, 7.75, 13.3], + "rotation": {"angle": 45, "axis": "x", "origin": [18.5, 7.75, 8.3]}, + "faces": { + "up": {"uv": [3, 6, 13, 5], "rotation": 270, "texture": "#all", "cullface": "east", "tintindex": 0}, + "down": {"uv": [3, 6, 13, 5], "rotation": 270, "texture": "#all", "cullface": "east", "tintindex": 0} + } + }, + { + "name": "west", + "from": [18.25, 7.75, 1.3], + "to": [20.25, 7.75, 15.3], + "rotation": {"angle": 45, "axis": "x", "origin": [18.5, 7.75, 8.3]}, + "faces": { + "up": {"uv": [1, 8, 15, 6], "rotation": 270, "texture": "#all", "cullface": "east", "tintindex": 0}, + "down": {"uv": [1, 8, 15, 6], "rotation": 270, "texture": "#all", "cullface": "east", "tintindex": 0} + } + }, + { + "name": "west", + "from": [16.25, 7.75, 8.3], + "to": [18.25, 7.75, 17.3], + "rotation": {"angle": 45, "axis": "x", "origin": [18.5, 7.75, 8.3]}, + "faces": { + "up": {"uv": [7, 10, 16, 8], "rotation": 270, "texture": "#all", "cullface": "east", "tintindex": 0}, + "down": {"uv": [7, 10, 16, 8], "rotation": 270, "texture": "#all", "cullface": "east", "tintindex": 0} + } + }, + { + "name": "west", + "from": [16.25, 7.75, -0.7], + "to": [18.25, 7.75, 8.3], + "rotation": {"angle": 45, "axis": "x", "origin": [18.5, 7.75, 8.3]}, + "faces": { + "up": {"uv": [0, 10, 9, 8], "rotation": 270, "texture": "#all", "cullface": "east", "tintindex": 0}, + "down": {"uv": [0, 10, 9, 8], "rotation": 270, "texture": "#all", "cullface": "east", "tintindex": 0} + } + }, + { + "name": "west", + "from": [16.25, 7.75, 8.3], + "to": [18.25, 16.75, 8.3], + "rotation": {"angle": 45, "axis": "x", "origin": [18.5, 7.75, 8.3]}, + "faces": { + "north": {"uv": [0, 13, 9, 11], "rotation": 90, "texture": "#all", "cullface": "east", "tintindex": 0}, + "south": {"uv": [0, 13, 9, 11], "rotation": 270, "texture": "#all", "cullface": "east", "tintindex": 0} + } + }, + { + "name": "west", + "from": [20.25, 2.75, 8.3], + "to": [21.25, 12.75, 8.3], + "rotation": {"angle": 45, "axis": "x", "origin": [18.5, 7.75, 8.3]}, + "faces": { + "north": {"uv": [1, 9, 11, 8], "rotation": 90, "texture": "#all", "cullface": "east", "tintindex": 0}, + "south": {"uv": [1, 9, 11, 8], "rotation": 270, "texture": "#all", "cullface": "east", "tintindex": 0} + } + }, + { + "name": "west", + "from": [18.25, 0.75, 8.3], + "to": [20.25, 14.75, 8.3], + "rotation": {"angle": 45, "axis": "x", "origin": [18.5, 7.75, 8.3]}, + "faces": { + "north": {"uv": [0, 11, 14, 9], "rotation": 90, "texture": "#all", "cullface": "east", "tintindex": 0}, + "south": {"uv": [0, 11, 14, 9], "rotation": 270, "texture": "#all", "cullface": "east", "tintindex": 0} + } + }, + { + "name": "west", + "from": [16.25, -1.25, 8.3], + "to": [18.25, 7.75, 8.3], + "rotation": {"angle": 45, "axis": "x", "origin": [18.5, 7.75, 8.3]}, + "faces": { + "north": {"uv": [7, 13, 16, 11], "rotation": 90, "texture": "#all", "cullface": "east", "tintindex": 0}, + "south": {"uv": [7, 13, 16, 11], "rotation": 270, "texture": "#all", "cullface": "east", "tintindex": 0} + } + }, + { + "name": "east", + "from": [-5.05, 7.75, 3.3], + "to": [-4.05, 7.75, 13.3], + "rotation": {"angle": -45, "axis": "x", "origin": [-2.8, 7.75, 8.3]}, + "faces": { + "up": {"uv": [3, 6, 13, 5], "rotation": 90, "texture": "#all", "cullface": "west", "tintindex": 0}, + "down": {"uv": [3, 6, 13, 5], "rotation": 90, "texture": "#all", "cullface": "west", "tintindex": 0} + } + }, + { + "name": "east", + "from": [-4.05, 7.75, 1.3], + "to": [-2.05, 7.75, 15.3], + "rotation": {"angle": -45, "axis": "x", "origin": [-2.8, 7.75, 8.3]}, + "faces": { + "up": {"uv": [1, 8, 15, 6], "rotation": 90, "texture": "#all", "cullface": "west", "tintindex": 0}, + "down": {"uv": [1, 8, 15, 6], "rotation": 90, "texture": "#all", "cullface": "west", "tintindex": 0} + } + }, + { + "name": "east", + "from": [-2.05, 7.75, 8.3], + "to": [-0.05, 7.75, 17.3], + "rotation": {"angle": -45, "axis": "x", "origin": [-2.8, 7.75, 8.3]}, + "faces": { + "up": {"uv": [7, 10, 16, 8], "rotation": 90, "texture": "#all", "cullface": "west", "tintindex": 0}, + "down": {"uv": [7, 10, 16, 8], "rotation": 90, "texture": "#all", "cullface": "west", "tintindex": 0} + } + }, + { + "name": "east", + "from": [-2.05, 7.75, -0.7], + "to": [-0.05, 7.75, 8.3], + "rotation": {"angle": -45, "axis": "x", "origin": [-2.8, 7.75, 8.3]}, + "faces": { + "up": {"uv": [0, 10, 9, 8], "rotation": 90, "texture": "#all", "cullface": "west", "tintindex": 0}, + "down": {"uv": [0, 10, 9, 8], "rotation": 90, "texture": "#all", "cullface": "west", "tintindex": 0} + } + }, + { + "name": "east", + "from": [-2.05, -1.25, 8.3], + "to": [-0.05, 7.75, 8.3], + "rotation": {"angle": -45, "axis": "x", "origin": [-2.8, 7.75, 8.3]}, + "faces": { + "north": {"uv": [0, 13, 9, 11], "rotation": 270, "texture": "#all", "cullface": "west", "tintindex": 0}, + "south": {"uv": [0, 13, 9, 11], "rotation": 90, "texture": "#all", "cullface": "west", "tintindex": 0} + } + }, + { + "name": "east", + "from": [-5.05, 2.75, 8.3], + "to": [-4.05, 12.75, 8.3], + "rotation": {"angle": -45, "axis": "x", "origin": [-2.8, 7.75, 8.3]}, + "faces": { + "north": {"uv": [1, 9, 11, 8], "rotation": 270, "texture": "#all", "cullface": "west", "tintindex": 0}, + "south": {"uv": [1, 9, 11, 8], "rotation": 90, "texture": "#all", "cullface": "west", "tintindex": 0} + } + }, + { + "name": "east", + "from": [-4.05, 0.75, 8.3], + "to": [-2.05, 14.75, 8.3], + "rotation": {"angle": -45, "axis": "x", "origin": [-2.8, 7.75, 8.3]}, + "faces": { + "north": {"uv": [0, 11, 14, 9], "rotation": 270, "texture": "#all", "cullface": "west", "tintindex": 0}, + "south": {"uv": [0, 11, 14, 9], "rotation": 90, "texture": "#all", "cullface": "west", "tintindex": 0} + } + }, + { + "name": "east", + "from": [-2.05, 7.75, 8.3], + "to": [-0.05, 16.75, 8.3], + "rotation": {"angle": -45, "axis": "x", "origin": [-2.8, 7.75, 8.3]}, + "faces": { + "north": {"uv": [7, 13, 16, 11], "rotation": 270, "texture": "#all", "cullface": "west", "tintindex": 0}, + "south": {"uv": [7, 13, 16, 11], "rotation": 90, "texture": "#all", "cullface": "west", "tintindex": 0} + } + }, + { + "name": "north", + "from": [8.2, 2.75, -5.05], + "to": [8.2, 12.75, -4.05], + "rotation": {"angle": 45, "axis": "z", "origin": [8.2, 7.75, -2.8]}, + "faces": { + "east": {"uv": [3, 6, 13, 5], "rotation": 270, "texture": "#all", "cullface": "north", "tintindex": 0}, + "west": {"uv": [3, 6, 13, 5], "rotation": 90, "texture": "#all", "cullface": "north", "tintindex": 0} + } + }, + { + "name": "north", + "from": [8.2, 0.75, -4.05], + "to": [8.2, 14.75, -2.05], + "rotation": {"angle": 45, "axis": "z", "origin": [8.2, 7.75, -2.8]}, + "faces": { + "east": {"uv": [1, 8, 15, 6], "rotation": 270, "texture": "#all", "cullface": "north", "tintindex": 0}, + "west": {"uv": [1, 8, 15, 6], "rotation": 90, "texture": "#all", "cullface": "north", "tintindex": 0} + } + }, + { + "name": "north", + "from": [8.2, 7.75, -2.05], + "to": [8.2, 16.75, -0.05], + "rotation": {"angle": 45, "axis": "z", "origin": [8.2, 7.75, -2.8]}, + "faces": { + "east": {"uv": [7, 10, 16, 8], "rotation": 270, "texture": "#all", "cullface": "north", "tintindex": 0}, + "west": {"uv": [7, 10, 16, 8], "rotation": 90, "texture": "#all", "cullface": "north", "tintindex": 0} + } + }, + { + "name": "north", + "from": [8.2, -1.25, -2.05], + "to": [8.2, 7.75, -0.05], + "rotation": {"angle": 45, "axis": "z", "origin": [8.2, 7.75, -2.8]}, + "faces": { + "east": {"uv": [0, 10, 9, 8], "rotation": 270, "texture": "#all", "cullface": "north", "tintindex": 0}, + "west": {"uv": [0, 10, 9, 8], "rotation": 90, "texture": "#all", "cullface": "north", "tintindex": 0} + } + }, + { + "name": "north", + "from": [-0.8, 7.75, -2.05], + "to": [8.2, 7.75, -0.05], + "rotation": {"angle": 45, "axis": "z", "origin": [8.2, 7.75, -2.8]}, + "faces": { + "up": {"uv": [0, 13, 9, 11], "rotation": 180, "texture": "#all", "cullface": "north", "tintindex": 0}, + "down": {"uv": [0, 13, 9, 11], "texture": "#all", "cullface": "north", "tintindex": 0} + } + }, + { + "name": "north", + "from": [3.2, 7.75, -5.05], + "to": [13.2, 7.75, -4.05], + "rotation": {"angle": 45, "axis": "z", "origin": [8.2, 7.75, -2.8]}, + "faces": { + "up": {"uv": [1, 9, 11, 8], "rotation": 180, "texture": "#all", "cullface": "north", "tintindex": 0}, + "down": {"uv": [1, 9, 11, 8], "texture": "#all", "cullface": "north", "tintindex": 0} + } + }, + { + "name": "north", + "from": [1.2, 7.75, -4.05], + "to": [15.2, 7.75, -2.05], + "rotation": {"angle": 45, "axis": "z", "origin": [8.2, 7.75, -2.8]}, + "faces": { + "up": {"uv": [0, 11, 14, 9], "rotation": 180, "texture": "#all", "cullface": "north", "tintindex": 0}, + "down": {"uv": [0, 11, 14, 9], "texture": "#all", "cullface": "north", "tintindex": 0} + } + }, + { + "name": "north", + "from": [8.2, 7.75, -2.05], + "to": [17.2, 7.75, -0.05], + "rotation": {"angle": 45, "axis": "z", "origin": [8.2, 7.75, -2.8]}, + "faces": { + "up": {"uv": [7, 13, 16, 11], "rotation": 180, "texture": "#all", "cullface": "north", "tintindex": 0}, + "down": {"uv": [7, 13, 16, 11], "texture": "#all", "cullface": "north", "tintindex": 0} + } + }, + { + "name": "south", + "from": [8.2, 2.75, 19.95], + "to": [8.2, 12.75, 20.95], + "rotation": {"angle": -45, "axis": "z", "origin": [8.2, 7.75, 18.7]}, + "faces": { + "east": {"uv": [3, 6, 13, 5], "rotation": 90, "texture": "#all", "cullface": "south", "tintindex": 0}, + "west": {"uv": [3, 6, 13, 5], "rotation": 270, "texture": "#all", "cullface": "south", "tintindex": 0} + } + }, + { + "name": "south", + "from": [8.2, 0.75, 17.95], + "to": [8.2, 14.75, 19.95], + "rotation": {"angle": -45, "axis": "z", "origin": [8.2, 7.75, 18.7]}, + "faces": { + "east": {"uv": [1, 8, 15, 6], "rotation": 90, "texture": "#all", "cullface": "south", "tintindex": 0}, + "west": {"uv": [1, 8, 15, 6], "rotation": 270, "texture": "#all", "cullface": "south", "tintindex": 0} + } + }, + { + "name": "south", + "from": [8.2, 7.75, 15.95], + "to": [8.2, 16.75, 17.95], + "rotation": {"angle": -45, "axis": "z", "origin": [8.2, 7.75, 18.7]}, + "faces": { + "east": {"uv": [7, 10, 16, 8], "rotation": 90, "texture": "#all", "cullface": "south", "tintindex": 0}, + "west": {"uv": [7, 10, 16, 8], "rotation": 270, "texture": "#all", "cullface": "south", "tintindex": 0} + } + }, + { + "name": "south", + "from": [8.2, -1.25, 15.95], + "to": [8.2, 7.75, 17.95], + "rotation": {"angle": -45, "axis": "z", "origin": [8.2, 7.75, 18.7]}, + "faces": { + "east": {"uv": [0, 10, 9, 8], "rotation": 90, "texture": "#all", "cullface": "south", "tintindex": 0}, + "west": {"uv": [0, 10, 9, 8], "rotation": 270, "texture": "#all", "cullface": "south", "tintindex": 0} + } + }, + { + "name": "south", + "from": [8.2, 7.75, 15.95], + "to": [17.2, 7.75, 17.95], + "rotation": {"angle": -45, "axis": "z", "origin": [8.2, 7.75, 18.7]}, + "faces": { + "up": {"uv": [0, 13, 9, 11], "texture": "#all", "cullface": "south", "tintindex": 0}, + "down": {"uv": [0, 13, 9, 11], "rotation": 180, "texture": "#all", "cullface": "south", "tintindex": 0} + } + }, + { + "name": "south", + "from": [3.2, 7.75, 19.95], + "to": [13.2, 7.75, 20.95], + "rotation": {"angle": -45, "axis": "z", "origin": [8.2, 7.75, 18.7]}, + "faces": { + "up": {"uv": [1, 9, 11, 8], "texture": "#all", "cullface": "south", "tintindex": 0}, + "down": {"uv": [1, 9, 11, 8], "rotation": 180, "texture": "#all", "cullface": "south", "tintindex": 0} + } + }, + { + "name": "south", + "from": [1.2, 7.75, 17.95], + "to": [15.2, 7.75, 19.95], + "rotation": {"angle": -45, "axis": "z", "origin": [8.2, 7.75, 18.7]}, + "faces": { + "up": {"uv": [0, 11, 14, 9], "texture": "#all", "cullface": "south", "tintindex": 0}, + "down": {"uv": [0, 11, 14, 9], "rotation": 180, "texture": "#all", "cullface": "south", "tintindex": 0} + } + }, + { + "name": "south", + "from": [-0.8, 7.75, 15.95], + "to": [8.2, 7.75, 17.95], + "rotation": {"angle": -45, "axis": "z", "origin": [8.2, 7.75, 18.7]}, + "faces": { + "up": {"uv": [7, 13, 16, 11], "texture": "#all", "cullface": "south", "tintindex": 0}, + "down": {"uv": [7, 13, 16, 11], "rotation": 180, "texture": "#all", "cullface": "south", "tintindex": 0} + } + } + ], + "groups": [ + 0, + { + "name": "top1", + "origin": [8, 18.25, 8], + "color": 0, + "children": [1, 2, 3, 4] + }, + { + "name": "top2", + "origin": [8, 18.25, 8], + "color": 0, + "children": [5, 6, 7, 8] + }, + { + "name": "down1", + "origin": [8, 18.25, 8], + "color": 0, + "children": [9, 10, 11, 12] + }, + { + "name": "down2", + "origin": [8, 18.25, 8], + "color": 0, + "children": [13, 14, 15, 16] + }, + { + "name": "west1", + "origin": [8, 18.25, 8], + "color": 0, + "children": [17, 18, 19, 20] + }, + { + "name": "west2", + "origin": [8, 18.25, 8], + "color": 0, + "children": [21, 22, 23, 24] + }, + { + "name": "east1", + "origin": [8, 18.25, 8], + "color": 0, + "children": [25, 26, 27, 28] + }, + { + "name": "east2", + "origin": [8, 18.25, 8], + "color": 0, + "children": [29, 30, 31, 32] + }, + { + "name": "north", + "origin": [8, 18.25, 8], + "color": 0, + "children": [33, 34, 35, 36] + }, + { + "name": "north2", + "origin": [8, 18.25, 8], + "color": 0, + "children": [37, 38, 39, 40] + }, + { + "name": "south", + "origin": [8, 18.25, 8], + "color": 0, + "children": [41, 42, 43, 44] + }, + { + "name": "south2", + "origin": [8, 18.25, 8], + "color": 0, + "children": [45, 46, 47, 48] + } + ] +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_slab.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_slab_top.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_stairs.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_stairs_inner.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_stairs_outer.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_wall_inventory.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_wall_post.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_wall_side.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_brick_wall_side_tall.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/mossy_broodstone_bricks.json new file mode 100644 index 00000000..7cf1c0e8 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_slab.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_slab_top.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_stairs.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_stairs_inner.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_stairs_outer.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_wall_inventory.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_wall_post.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_wall_side.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_brick_wall_side_tall.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/mossy_myrmite_bricks.json new file mode 100644 index 00000000..84b494f3 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_slab.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_slab_top.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_stairs.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_stairs_inner.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_stairs_outer.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_wall_inventory.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_wall_post.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_wall_side.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_brick_wall_side_tall.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/mossy_nyxite_bricks.json new file mode 100644 index 00000000..4b3f0e69 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_slab.json new file mode 100644 index 00000000..e649f0a8 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_slab_top.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_stairs.json new file mode 100644 index 00000000..41bd6051 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_stairs_inner.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_stairs_outer.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_wall_inventory.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_wall_post.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_wall_side.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_brick_wall_side_tall.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/myrmite_bricks.json new file mode 100644 index 00000000..ae46b25f --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_pillar.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/myrmite_pillar.json new file mode 100644 index 00000000..2ec4cada --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/myrmite_slab.json new file mode 100644 index 00000000..b61ee3ef --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_slab_top.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/myrmite_slab_top.json new file mode 100644 index 00000000..67e65d03 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/myrmite_stairs.json new file mode 100644 index 00000000..25aeeb6d --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_stairs_inner.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/myrmite_stairs_inner.json new file mode 100644 index 00000000..3c36ca44 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_stairs_outer.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/myrmite_stairs_outer.json new file mode 100644 index 00000000..75af00e3 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_inventory.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_inventory.json new file mode 100644 index 00000000..64dd50eb --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_post.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_post.json new file mode 100644 index 00000000..9bca3525 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_side.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_side.json new file mode 100644 index 00000000..d2ff81a9 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/myrmite_wall_side_tall.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/nadir_fern.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/nadir_fern.json new file mode 100644 index 00000000..6bf27e03 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/nadir_fern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/nadir_fern" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/nadir_nyxium.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/nadir_nyxium.json new file mode 100644 index 00000000..577c0136 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/nadir_nyxium.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "antarchy:block/nyxite", + "side": "antarchy:block/nadir_nyxium", + "top": "antarchy:block/nadir_nyxium_top" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/nadir_roots.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/nadir_roots.json new file mode 100644 index 00000000..b1b38ed9 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/nadir_roots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/nadir/nadir_roots" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/packed_loam.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/packed_loam.json new file mode 100644 index 00000000..e3f900be --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/polished_myrmite.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_myrmite.json new file mode 100644 index 00000000..24683707 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_slab.json new file mode 100644 index 00000000..189e248b --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_slab_top.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_stairs.json new file mode 100644 index 00000000..ec25fe5a --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_stairs_inner.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_stairs_outer.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_wall_inventory.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_wall_post.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_wall_side.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/polished_myrmite_wall_side_tall.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite.json new file mode 100644 index 00000000..8442133a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/typhonite/polished_typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_slab.json new file mode 100644 index 00000000..470c95cb --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "antarchy:block/typhonite/polished_typhonite", + "side": "antarchy:block/typhonite/polished_typhonite", + "top": "antarchy:block/typhonite/polished_typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_slab_top.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_slab_top.json new file mode 100644 index 00000000..8bd6552d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "antarchy:block/typhonite/polished_typhonite", + "side": "antarchy:block/typhonite/polished_typhonite", + "top": "antarchy:block/typhonite/polished_typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_stairs.json new file mode 100644 index 00000000..056b3e58 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "antarchy:block/typhonite/polished_typhonite", + "side": "antarchy:block/typhonite/polished_typhonite", + "top": "antarchy:block/typhonite/polished_typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_stairs_inner.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_stairs_inner.json new file mode 100644 index 00000000..7d769a1a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "antarchy:block/typhonite/polished_typhonite", + "side": "antarchy:block/typhonite/polished_typhonite", + "top": "antarchy:block/typhonite/polished_typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_stairs_outer.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_stairs_outer.json new file mode 100644 index 00000000..37df1a19 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "antarchy:block/typhonite/polished_typhonite", + "side": "antarchy:block/typhonite/polished_typhonite", + "top": "antarchy:block/typhonite/polished_typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_wall_inventory.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_wall_inventory.json new file mode 100644 index 00000000..37c760dc --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "antarchy:block/typhonite/polished_typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_wall_post.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_wall_post.json new file mode 100644 index 00000000..7bfd05d9 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "antarchy:block/typhonite/polished_typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_wall_side.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_wall_side.json new file mode 100644 index 00000000..af1a59d7 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "antarchy:block/typhonite/polished_typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_wall_side_tall.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_wall_side_tall.json new file mode 100644 index 00000000..faca93d8 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/polished_typhonite_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "antarchy:block/typhonite/polished_typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/potted_royal_sapling.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/potted_royal_sapling.json new file mode 100644 index 00000000..3005fa99 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/potted_royal_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "antarchy:block/royal/royal_sapling" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/potted_truffalo_sapling.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/potted_truffalo_sapling.json new file mode 100644 index 00000000..588cbb79 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/potted_truffalo_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "antarchy:block/truffalo/truffalo_sapling" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/prince_egg.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/prince_egg.json new file mode 100644 index 00000000..c3bca09d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/prince_egg.json @@ -0,0 +1,498 @@ +{ + "format_version": "1.21.11", + "credit": "Made with Blockbench", + "parent": "block/block", + "texture_size": [ + 64, + 64 + ], + "textures": { + "1": "antarchy:block/prince_egg", + "particle": "antarchy:block/prince_egg" + }, + "elements": [ + { + "from": [ + 6, + 15, + 6 + ], + "to": [ + 10, + 16, + 10 + ], + "faces": { + "north": { + "uv": [ + 6, + 5.5, + 7, + 5.75 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 6, + 5.5, + 7, + 5.75 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 6, + 5.5, + 7, + 5.75 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 6, + 5.5, + 7, + 5.75 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 6, + 7, + 5, + 6 + ], + "texture": "#1", + "cullface": "up" + } + } + }, + { + "from": [ + 5, + 14, + 5 + ], + "to": [ + 11, + 15, + 11 + ], + "faces": { + "north": { + "uv": [ + 6, + 5.25, + 7.5, + 5.5 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 6, + 5.25, + 7.5, + 5.5 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 6, + 5.25, + 7.5, + 5.5 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 6, + 5.25, + 7.5, + 5.5 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 7.5, + 5.25, + 6, + 3.75 + ], + "texture": "#1" + } + } + }, + { + "from": [ + 4, + 13, + 4 + ], + "to": [ + 12, + 14, + 12 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 0, + -1, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 3.5, + 3.25, + 5.5, + 3.5 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 3.5, + 3.25, + 5.5, + 3.5 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 3.5, + 3.25, + 5.5, + 3.5 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 3.5, + 3.25, + 5.5, + 3.5 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 3, + 6 + ], + "texture": "#1" + } + } + }, + { + "from": [ + 3, + 0, + 3 + ], + "to": [ + 13, + 13, + 13 + ], + "faces": { + "north": { + "uv": [ + 3.5, + 0, + 6, + 3.25 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 3.5, + 0, + 6, + 3.25 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 3.5, + 0, + 6, + 3.25 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 3.5, + 0, + 6, + 3.25 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 8.5, + 2.5, + 6, + 0 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 8.5, + 0, + 6, + 2.5 + ], + "texture": "#1", + "cullface": "down" + } + } + }, + { + "from": [ + 2, + 1, + 2 + ], + "to": [ + 14, + 11, + 14 + ], + "faces": { + "north": { + "uv": [ + 3, + 3.5, + 6, + 6 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 3, + 3.5, + 6, + 6 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 3, + 3.5, + 6, + 6 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 3, + 3.5, + 6, + 6 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 3, + 6.5, + 0, + 3.5 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 3, + 3.5, + 0, + 6.5 + ], + "texture": "#1" + } + } + }, + { + "from": [ + 1, + 3, + 1 + ], + "to": [ + 15, + 8, + 15 + ], + "faces": { + "north": { + "uv": [ + 6, + 2.5, + 9.5, + 3.75 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 6, + 2.5, + 9.5, + 3.75 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 6, + 2.5, + 9.5, + 3.75 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 6, + 2.5, + 9.5, + 3.75 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 3.5, + 3.5, + 0, + 0 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 3.5, + 0, + 0, + 3.5 + ], + "texture": "#1" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + -135, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + -135, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/princess_egg.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/princess_egg.json new file mode 100644 index 00000000..e3ba976c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/princess_egg.json @@ -0,0 +1,498 @@ +{ + "format_version": "1.21.11", + "credit": "Made with Blockbench", + "parent": "block/block", + "texture_size": [ + 64, + 64 + ], + "textures": { + "1": "antarchy:block/princess_egg", + "particle": "antarchy:block/princess_egg" + }, + "elements": [ + { + "from": [ + 6, + 15, + 6 + ], + "to": [ + 10, + 16, + 10 + ], + "faces": { + "north": { + "uv": [ + 6, + 5.5, + 7, + 5.75 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 6, + 5.5, + 7, + 5.75 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 6, + 5.5, + 7, + 5.75 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 6, + 5.5, + 7, + 5.75 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 6, + 7, + 5, + 6 + ], + "texture": "#1", + "cullface": "up" + } + } + }, + { + "from": [ + 5, + 14, + 5 + ], + "to": [ + 11, + 15, + 11 + ], + "faces": { + "north": { + "uv": [ + 6, + 5.25, + 7.5, + 5.5 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 6, + 5.25, + 7.5, + 5.5 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 6, + 5.25, + 7.5, + 5.5 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 6, + 5.25, + 7.5, + 5.5 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 7.5, + 5.25, + 6, + 3.75 + ], + "texture": "#1" + } + } + }, + { + "from": [ + 4, + 13, + 4 + ], + "to": [ + 12, + 14, + 12 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 0, + -1, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 3.5, + 3.25, + 5.5, + 3.5 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 3.5, + 3.25, + 5.5, + 3.5 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 3.5, + 3.25, + 5.5, + 3.5 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 3.5, + 3.25, + 5.5, + 3.5 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 3, + 6 + ], + "texture": "#1" + } + } + }, + { + "from": [ + 3, + 0, + 3 + ], + "to": [ + 13, + 13, + 13 + ], + "faces": { + "north": { + "uv": [ + 3.5, + 0, + 6, + 3.25 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 3.5, + 0, + 6, + 3.25 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 3.5, + 0, + 6, + 3.25 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 3.5, + 0, + 6, + 3.25 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 8.5, + 2.5, + 6, + 0 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 8.5, + 0, + 6, + 2.5 + ], + "texture": "#1", + "cullface": "down" + } + } + }, + { + "from": [ + 2, + 1, + 2 + ], + "to": [ + 14, + 11, + 14 + ], + "faces": { + "north": { + "uv": [ + 3, + 3.5, + 6, + 6 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 3, + 3.5, + 6, + 6 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 3, + 3.5, + 6, + 6 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 3, + 3.5, + 6, + 6 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 3, + 6.5, + 0, + 3.5 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 3, + 3.5, + 0, + 6.5 + ], + "texture": "#1" + } + } + }, + { + "from": [ + 1, + 3, + 1 + ], + "to": [ + 15, + 8, + 15 + ], + "faces": { + "north": { + "uv": [ + 6, + 2.5, + 9.5, + 3.75 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 6, + 2.5, + 9.5, + 3.75 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 6, + 2.5, + 9.5, + 3.75 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 6, + 2.5, + 9.5, + 3.75 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 3.5, + 3.5, + 0, + 0 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 3.5, + 0, + 0, + 3.5 + ], + "texture": "#1" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + -135, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + -135, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_button.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_button.json new file mode 100644 index 00000000..36e030a1 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_button.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_button", + "textures": { + "texture": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_button_inventory.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_button_inventory.json new file mode 100644 index 00000000..ceffb84e --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_button_inventory.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_button_inventory", + "textures": { + "texture": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_button_pressed.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_button_pressed.json new file mode 100644 index 00000000..79c0b4f2 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_button_pressed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_button_pressed", + "textures": { + "texture": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_bottom_left.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_bottom_left.json new file mode 100644 index 00000000..09343280 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_bottom_left.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/jungle_door_bottom_left", + "textures": { + "bottom": "antarchy:block/royal/royal_door_bottom", + "top": "antarchy:block/royal/royal_door_top" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_bottom_left_open.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_bottom_left_open.json new file mode 100644 index 00000000..c80e4635 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_bottom_left_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/jungle_door_bottom_left_open", + "textures": { + "bottom": "antarchy:block/royal/royal_door_bottom", + "top": "antarchy:block/royal/royal_door_top" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_bottom_right.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_bottom_right.json new file mode 100644 index 00000000..61ad1a23 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_bottom_right.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/jungle_door_bottom_right", + "textures": { + "bottom": "antarchy:block/royal/royal_door_bottom", + "top": "antarchy:block/royal/royal_door_top" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_bottom_right_open.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_bottom_right_open.json new file mode 100644 index 00000000..ae549f13 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_bottom_right_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/jungle_door_bottom_right_open", + "textures": { + "bottom": "antarchy:block/royal/royal_door_bottom", + "top": "antarchy:block/royal/royal_door_top" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_top_left.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_top_left.json new file mode 100644 index 00000000..293f2820 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_top_left.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/jungle_door_top_left", + "textures": { + "bottom": "antarchy:block/royal/royal_door_bottom", + "top": "antarchy:block/royal/royal_door_top" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_top_left_open.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_top_left_open.json new file mode 100644 index 00000000..b368a9ce --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_top_left_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/jungle_door_top_left_open", + "textures": { + "bottom": "antarchy:block/royal/royal_door_bottom", + "top": "antarchy:block/royal/royal_door_top" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_top_right.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_top_right.json new file mode 100644 index 00000000..ea6f79f9 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_top_right.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/jungle_door_top_right", + "textures": { + "bottom": "antarchy:block/royal/royal_door_bottom", + "top": "antarchy:block/royal/royal_door_top" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_top_right_open.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_top_right_open.json new file mode 100644 index 00000000..3931cc09 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_door_top_right_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/jungle_door_top_right_open", + "textures": { + "bottom": "antarchy:block/royal/royal_door_bottom", + "top": "antarchy:block/royal/royal_door_top" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_gate.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_gate.json new file mode 100644 index 00000000..11b31689 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_gate.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_fence_gate", + "textures": { + "texture": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_gate_open.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_gate_open.json new file mode 100644 index 00000000..f3d12ece --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_gate_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_fence_gate_open", + "textures": { + "texture": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_gate_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_gate_wall.json new file mode 100644 index 00000000..b9f32fa1 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_gate_wall.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_fence_gate_wall", + "textures": { + "texture": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_gate_wall_open.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_gate_wall_open.json new file mode 100644 index 00000000..db7fd6fd --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_gate_wall_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_fence_gate_wall_open", + "textures": { + "texture": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_inventory.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_inventory.json new file mode 100644 index 00000000..fa9f309e --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_inventory.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_fence_inventory", + "textures": { + "texture": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_post.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_post.json new file mode 100644 index 00000000..01224b40 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_fence_post", + "textures": { + "texture": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_side.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_side.json new file mode 100644 index 00000000..3c84fe64 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_fence_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_fence_side", + "textures": { + "texture": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_flowering_leaves.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_flowering_leaves.json new file mode 100644 index 00000000..6a43deb3 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_flowering_leaves.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/leaves", + "ambientocclusion": false, + "textures": { + "all": "antarchy:block/royal/flowering_royal_leaves" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_hanging_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_hanging_sign.json new file mode 100644 index 00000000..2361c164 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "antarchy:block/royal/royal_planks" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_leaves.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_leaves.json new file mode 100644 index 00000000..86719f8a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_leaves.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/leaves", + "ambientocclusion": false, + "textures": { + "all": "antarchy:block/royal/royal_leaves" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_log.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_log.json new file mode 100644 index 00000000..dbca3e81 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_log", + "textures": { + "end": "antarchy:block/royal/royal_log_top", + "side": "antarchy:block/royal/royal_log" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_log_horizontal.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_log_horizontal.json new file mode 100644 index 00000000..f82cdd90 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_log_horizontal", + "textures": { + "end": "antarchy:block/royal/royal_log_top", + "side": "antarchy:block/royal/royal_log" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_planks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_planks.json new file mode 100644 index 00000000..f8e251e2 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/royal/royal_planks" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_pressure_plate.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_pressure_plate.json new file mode 100644 index 00000000..7a81d495 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_pressure_plate.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_pressure_plate", + "textures": { + "texture": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_pressure_plate_down.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_pressure_plate_down.json new file mode 100644 index 00000000..daffbc5b --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_pressure_plate_down.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_pressure_plate_down", + "textures": { + "texture": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_sapling.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_sapling.json new file mode 100644 index 00000000..2b894332 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/royal/royal_sapling" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_sign.json new file mode 100644 index 00000000..8fe4b43a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "antarchy:item/royal_sign" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_slab.json new file mode 100644 index 00000000..5ec959ed --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_slab.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/jungle_slab", + "textures": { + "bottom": "antarchy:block/royal/royal_planks", + "side": "antarchy:block/royal/royal_planks", + "top": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_slab_top.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_slab_top.json new file mode 100644 index 00000000..29c1dc4c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_slab_top.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/jungle_slab_top", + "textures": { + "bottom": "antarchy:block/royal/royal_planks", + "side": "antarchy:block/royal/royal_planks", + "top": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_stairs.json new file mode 100644 index 00000000..ee5be360 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_stairs.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/jungle_stairs", + "textures": { + "bottom": "antarchy:block/royal/royal_planks", + "side": "antarchy:block/royal/royal_planks", + "top": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_stairs_inner.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_stairs_inner.json new file mode 100644 index 00000000..e7f09bb9 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_stairs_inner.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/jungle_stairs_inner", + "textures": { + "bottom": "antarchy:block/royal/royal_planks", + "side": "antarchy:block/royal/royal_planks", + "top": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_stairs_outer.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_stairs_outer.json new file mode 100644 index 00000000..4a1952ab --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_stairs_outer.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/jungle_stairs_outer", + "textures": { + "bottom": "antarchy:block/royal/royal_planks", + "side": "antarchy:block/royal/royal_planks", + "top": "antarchy:block/royal/royal_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_trapdoor_bottom.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_trapdoor_bottom.json new file mode 100644 index 00000000..df801129 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_trapdoor_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_trapdoor_bottom", + "textures": { + "texture": "antarchy:block/royal/royal_trapdoor" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_trapdoor_open.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_trapdoor_open.json new file mode 100644 index 00000000..b02ecc2c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_trapdoor_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_trapdoor_open", + "textures": { + "texture": "antarchy:block/royal/royal_trapdoor" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_trapdoor_top.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_trapdoor_top.json new file mode 100644 index 00000000..22f65c69 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_trapdoor_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_trapdoor_top", + "textures": { + "texture": "antarchy:block/royal/royal_trapdoor" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_wall_hanging_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_wall_hanging_sign.json new file mode 100644 index 00000000..2361c164 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_wall_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "antarchy:block/royal/royal_planks" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_wall_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_wall_sign.json new file mode 100644 index 00000000..8fe4b43a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_wall_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "antarchy:item/royal_sign" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_wood.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_wood.json new file mode 100644 index 00000000..a11d1ac2 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/royal_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_wood", + "textures": { + "end": "antarchy:block/royal/royal_log", + "side": "antarchy:block/royal/royal_log" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/spiraling_vines.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/spiraling_vines.json new file mode 100644 index 00000000..5857d572 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/spiraling_vines.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/spiraling_vines/spiraling_vines_top" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/spiraling_vines_body.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/spiraling_vines_body.json new file mode 100644 index 00000000..bdacfb98 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/spiraling_vines_body.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/spiraling_vines/spiraling_vines" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_royal_log.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_royal_log.json new file mode 100644 index 00000000..a322e498 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_royal_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/stripped_jungle_log", + "textures": { + "end": "antarchy:block/royal/stripped_royal_log_top", + "side": "antarchy:block/royal/stripped_royal_log" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_royal_log_horizontal.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_royal_log_horizontal.json new file mode 100644 index 00000000..d5ca1dc7 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_royal_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/stripped_jungle_log_horizontal", + "textures": { + "end": "antarchy:block/royal/stripped_royal_log_top", + "side": "antarchy:block/royal/stripped_royal_log" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_royal_wood.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_royal_wood.json new file mode 100644 index 00000000..aff9c269 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_royal_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/stripped_jungle_wood", + "textures": { + "end": "antarchy:block/royal/stripped_royal_log", + "side": "antarchy:block/royal/stripped_royal_log" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_truffalo_log.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_truffalo_log.json new file mode 100644 index 00000000..f68503ff --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_truffalo_log.json @@ -0,0 +1,22 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#side", + "end": "antarchy:block/truffalo/truffalo_stripped_log_top", + "side": "antarchy:block/truffalo/truffalo_log_stripped" + }, + "elements": [ + { + "from": [4, 0, 4], + "to": [12, 16, 12], + "faces": { + "north": {"uv": [4, 0, 12, 16], "texture": "#side"}, + "south": {"uv": [4, 0, 12, 16], "texture": "#side"}, + "east": {"uv": [4, 0, 12, 16], "texture": "#side"}, + "west": {"uv": [4, 0, 12, 16], "texture": "#side"}, + "up": {"uv": [4, 4, 12, 12], "texture": "#end"}, + "down": {"uv": [4, 4, 12, 12], "texture": "#end"} + } + } + ] +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_truffalo_log_horizontal.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_truffalo_log_horizontal.json new file mode 100644 index 00000000..2e02c7b4 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_truffalo_log_horizontal.json @@ -0,0 +1,22 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#side", + "end": "antarchy:block/truffalo/truffalo_stripped_log_top", + "side": "antarchy:block/truffalo/truffalo_log_stripped" + }, + "elements": [ + { + "from": [0, 4, 4], + "to": [16, 12, 12], + "faces": { + "north": {"uv": [4, 0, 12, 16], "rotation": 90, "texture": "#side"}, + "south": {"uv": [4, 0, 12, 16], "rotation": 90, "texture": "#side"}, + "up": {"uv": [4, 0, 12, 16], "rotation": 90, "texture": "#side"}, + "down": {"uv": [4, 0, 12, 16], "rotation": 90, "texture": "#side"}, + "east": {"uv": [4, 4, 12, 12], "texture": "#end"}, + "west": {"uv": [4, 4, 12, 12], "texture": "#end"} + } + } + ] +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_truffalo_wood.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_truffalo_wood.json new file mode 100644 index 00000000..83387bf0 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/stripped_truffalo_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/stripped_jungle_wood", + "textures": { + "end": "antarchy:block/truffalo/truffalo_wood_stripped", + "side": "antarchy:block/truffalo/truffalo_wood_stripped" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/tigers_eye_block.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/tigers_eye_block.json new file mode 100644 index 00000000..d0ee2a12 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/block/truffalo_button.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_button.json new file mode 100644 index 00000000..843aa16e --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_button.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_button", + "textures": { + "texture": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_button_inventory.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_button_inventory.json new file mode 100644 index 00000000..50a4be40 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_button_inventory.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_button_inventory", + "textures": { + "texture": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_button_pressed.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_button_pressed.json new file mode 100644 index 00000000..0c3582ff --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_button_pressed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_button_pressed", + "textures": { + "texture": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_bottom_left.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_bottom_left.json new file mode 100644 index 00000000..e41b0925 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_bottom_left.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/jungle_door_bottom_left", + "textures": { + "bottom": "antarchy:block/truffalo/truffalo_door_bottom", + "top": "antarchy:block/truffalo/truffalo_door_top" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_bottom_left_open.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_bottom_left_open.json new file mode 100644 index 00000000..c6962b38 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_bottom_left_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/jungle_door_bottom_left_open", + "textures": { + "bottom": "antarchy:block/truffalo/truffalo_door_bottom", + "top": "antarchy:block/truffalo/truffalo_door_top" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_bottom_right.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_bottom_right.json new file mode 100644 index 00000000..0979ae2c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_bottom_right.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/jungle_door_bottom_right", + "textures": { + "bottom": "antarchy:block/truffalo/truffalo_door_bottom", + "top": "antarchy:block/truffalo/truffalo_door_top" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_bottom_right_open.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_bottom_right_open.json new file mode 100644 index 00000000..af35d714 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_bottom_right_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/jungle_door_bottom_right_open", + "textures": { + "bottom": "antarchy:block/truffalo/truffalo_door_bottom", + "top": "antarchy:block/truffalo/truffalo_door_top" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_top_left.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_top_left.json new file mode 100644 index 00000000..2a492b22 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_top_left.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/jungle_door_top_left", + "textures": { + "bottom": "antarchy:block/truffalo/truffalo_door_bottom", + "top": "antarchy:block/truffalo/truffalo_door_top" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_top_left_open.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_top_left_open.json new file mode 100644 index 00000000..2e21673b --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_top_left_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/jungle_door_top_left_open", + "textures": { + "bottom": "antarchy:block/truffalo/truffalo_door_bottom", + "top": "antarchy:block/truffalo/truffalo_door_top" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_top_right.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_top_right.json new file mode 100644 index 00000000..95279c03 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_top_right.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/jungle_door_top_right", + "textures": { + "bottom": "antarchy:block/truffalo/truffalo_door_bottom", + "top": "antarchy:block/truffalo/truffalo_door_top" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_top_right_open.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_top_right_open.json new file mode 100644 index 00000000..a949ce80 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_door_top_right_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/jungle_door_top_right_open", + "textures": { + "bottom": "antarchy:block/truffalo/truffalo_door_bottom", + "top": "antarchy:block/truffalo/truffalo_door_top" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_gate.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_gate.json new file mode 100644 index 00000000..b396e727 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_gate.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_fence_gate", + "textures": { + "texture": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_gate_open.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_gate_open.json new file mode 100644 index 00000000..f6c1ed03 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_gate_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_fence_gate_open", + "textures": { + "texture": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_gate_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_gate_wall.json new file mode 100644 index 00000000..6db550ea --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_gate_wall.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_fence_gate_wall", + "textures": { + "texture": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_gate_wall_open.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_gate_wall_open.json new file mode 100644 index 00000000..9772ded0 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_gate_wall_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_fence_gate_wall_open", + "textures": { + "texture": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_inventory.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_inventory.json new file mode 100644 index 00000000..fd4486f3 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_inventory.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_fence_inventory", + "textures": { + "texture": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_post.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_post.json new file mode 100644 index 00000000..5850ae3f --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_fence_post", + "textures": { + "texture": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_side.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_side.json new file mode 100644 index 00000000..74b43126 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_fence_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_fence_side", + "textures": { + "texture": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_hanging_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_hanging_sign.json new file mode 100644 index 00000000..7bce3536 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "antarchy:block/truffalo/truffalo_planks" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_log.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_log.json new file mode 100644 index 00000000..5c167672 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_log.json @@ -0,0 +1,22 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#side", + "end": "antarchy:block/truffalo/truffalo_log_top", + "side": "antarchy:block/truffalo/truffalo_log" + }, + "elements": [ + { + "from": [4, 0, 4], + "to": [12, 16, 12], + "faces": { + "north": {"uv": [4, 0, 12, 16], "texture": "#side"}, + "south": {"uv": [4, 0, 12, 16], "texture": "#side"}, + "east": {"uv": [4, 0, 12, 16], "texture": "#side"}, + "west": {"uv": [4, 0, 12, 16], "texture": "#side"}, + "up": {"uv": [4, 4, 12, 12], "texture": "#end"}, + "down": {"uv": [4, 4, 12, 12], "texture": "#end"} + } + } + ] +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_log_horizontal.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_log_horizontal.json new file mode 100644 index 00000000..87b8c470 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_log_horizontal.json @@ -0,0 +1,22 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#side", + "end": "antarchy:block/truffalo/truffalo_log_top", + "side": "antarchy:block/truffalo/truffalo_log" + }, + "elements": [ + { + "from": [0, 4, 4], + "to": [16, 12, 12], + "faces": { + "north": {"uv": [4, 0, 12, 16], "rotation": 90, "texture": "#side"}, + "south": {"uv": [4, 0, 12, 16], "rotation": 90, "texture": "#side"}, + "up": {"uv": [4, 0, 12, 16], "rotation": 90, "texture": "#side"}, + "down": {"uv": [4, 0, 12, 16], "rotation": 90, "texture": "#side"}, + "east": {"uv": [4, 4, 12, 12], "texture": "#end"}, + "west": {"uv": [4, 4, 12, 12], "texture": "#end"} + } + } + ] +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_planks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_planks.json new file mode 100644 index 00000000..e539b1a7 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/truffalo/truffalo_planks" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_pressure_plate.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_pressure_plate.json new file mode 100644 index 00000000..d1c22644 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_pressure_plate.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_pressure_plate", + "textures": { + "texture": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_pressure_plate_down.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_pressure_plate_down.json new file mode 100644 index 00000000..ac9d101f --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_pressure_plate_down.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_pressure_plate_down", + "textures": { + "texture": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_sapling.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_sapling.json new file mode 100644 index 00000000..47883c27 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/truffalo/truffalo_sapling" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_sign.json new file mode 100644 index 00000000..4be93de3 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "antarchy:item/truffalo_sign" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_slab.json new file mode 100644 index 00000000..cba4d3f9 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_slab.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/jungle_slab", + "textures": { + "bottom": "antarchy:block/truffalo/truffalo_planks", + "side": "antarchy:block/truffalo/truffalo_planks", + "top": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_slab_top.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_slab_top.json new file mode 100644 index 00000000..f8642fc2 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_slab_top.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/jungle_slab_top", + "textures": { + "bottom": "antarchy:block/truffalo/truffalo_planks", + "side": "antarchy:block/truffalo/truffalo_planks", + "top": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_stairs.json new file mode 100644 index 00000000..885d55dd --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_stairs.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/jungle_stairs", + "textures": { + "bottom": "antarchy:block/truffalo/truffalo_planks", + "side": "antarchy:block/truffalo/truffalo_planks", + "top": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_stairs_inner.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_stairs_inner.json new file mode 100644 index 00000000..99a194ca --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_stairs_inner.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/jungle_stairs_inner", + "textures": { + "bottom": "antarchy:block/truffalo/truffalo_planks", + "side": "antarchy:block/truffalo/truffalo_planks", + "top": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_stairs_outer.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_stairs_outer.json new file mode 100644 index 00000000..4f09e29a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_stairs_outer.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/jungle_stairs_outer", + "textures": { + "bottom": "antarchy:block/truffalo/truffalo_planks", + "side": "antarchy:block/truffalo/truffalo_planks", + "top": "antarchy:block/truffalo/truffalo_planks" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_trapdoor_bottom.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_trapdoor_bottom.json new file mode 100644 index 00000000..297268dd --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_trapdoor_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_trapdoor_bottom", + "textures": { + "texture": "antarchy:block/truffalo/truffalo_trapdoor" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_trapdoor_open.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_trapdoor_open.json new file mode 100644 index 00000000..d1d02cbb --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_trapdoor_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_trapdoor_open", + "textures": { + "texture": "antarchy:block/truffalo/truffalo_trapdoor" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_trapdoor_top.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_trapdoor_top.json new file mode 100644 index 00000000..fe3304e6 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_trapdoor_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_trapdoor_top", + "textures": { + "texture": "antarchy:block/truffalo/truffalo_trapdoor" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_black.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_black.json new file mode 100644 index 00000000..278f0a40 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_black.json @@ -0,0 +1,9 @@ +{ + "parent": "antarchy:block/truffalo_tuft_template", + "textures": { + "0": "antarchy:block/truffalo/black_truffalo_tuft", + "1": "antarchy:block/truffalo/black_truffalo_tuft", + "2": "antarchy:block/truffalo/black_truffalo_tuft", + "particle": "antarchy:block/truffalo/black_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_blue.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_blue.json new file mode 100644 index 00000000..f314997f --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_blue.json @@ -0,0 +1,9 @@ +{ + "parent": "antarchy:block/truffalo_tuft_template", + "textures": { + "0": "antarchy:block/truffalo/blue_truffalo_tuft", + "1": "antarchy:block/truffalo/blue_truffalo_tuft", + "2": "antarchy:block/truffalo/blue_truffalo_tuft", + "particle": "antarchy:block/truffalo/blue_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_brown.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_brown.json new file mode 100644 index 00000000..d2847ec5 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_brown.json @@ -0,0 +1,9 @@ +{ + "parent": "antarchy:block/truffalo_tuft_template", + "textures": { + "0": "antarchy:block/truffalo/brown_truffalo_tuft", + "1": "antarchy:block/truffalo/brown_truffalo_tuft", + "2": "antarchy:block/truffalo/brown_truffalo_tuft", + "particle": "antarchy:block/truffalo/brown_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_cyan.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_cyan.json new file mode 100644 index 00000000..fe34876f --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_cyan.json @@ -0,0 +1,9 @@ +{ + "parent": "antarchy:block/truffalo_tuft_template", + "textures": { + "0": "antarchy:block/truffalo/cyan_truffalo_tuft", + "1": "antarchy:block/truffalo/cyan_truffalo_tuft", + "2": "antarchy:block/truffalo/cyan_truffalo_tuft", + "particle": "antarchy:block/truffalo/cyan_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_gray.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_gray.json new file mode 100644 index 00000000..19ec4254 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_gray.json @@ -0,0 +1,9 @@ +{ + "parent": "antarchy:block/truffalo_tuft_template", + "textures": { + "0": "antarchy:block/truffalo/gray_truffalo_tuft", + "1": "antarchy:block/truffalo/gray_truffalo_tuft", + "2": "antarchy:block/truffalo/gray_truffalo_tuft", + "particle": "antarchy:block/truffalo/gray_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_green.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_green.json new file mode 100644 index 00000000..7424685d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_green.json @@ -0,0 +1,9 @@ +{ + "parent": "antarchy:block/truffalo_tuft_template", + "textures": { + "0": "antarchy:block/truffalo/green_truffalo_tuft", + "1": "antarchy:block/truffalo/green_truffalo_tuft", + "2": "antarchy:block/truffalo/green_truffalo_tuft", + "particle": "antarchy:block/truffalo/green_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_light_blue.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_light_blue.json new file mode 100644 index 00000000..b1ad8bb9 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_light_blue.json @@ -0,0 +1,9 @@ +{ + "parent": "antarchy:block/truffalo_tuft_template", + "textures": { + "0": "antarchy:block/truffalo/light_blue_truffalo_tuft", + "1": "antarchy:block/truffalo/light_blue_truffalo_tuft", + "2": "antarchy:block/truffalo/light_blue_truffalo_tuft", + "particle": "antarchy:block/truffalo/light_blue_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_light_gray.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_light_gray.json new file mode 100644 index 00000000..e185bf50 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_light_gray.json @@ -0,0 +1,9 @@ +{ + "parent": "antarchy:block/truffalo_tuft_template", + "textures": { + "0": "antarchy:block/truffalo/light_gray_truffalo_tuft", + "1": "antarchy:block/truffalo/light_gray_truffalo_tuft", + "2": "antarchy:block/truffalo/light_gray_truffalo_tuft", + "particle": "antarchy:block/truffalo/light_gray_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_lime.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_lime.json new file mode 100644 index 00000000..23af1657 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_lime.json @@ -0,0 +1,9 @@ +{ + "parent": "antarchy:block/truffalo_tuft_template", + "textures": { + "0": "antarchy:block/truffalo/lime_truffalo_tuft", + "1": "antarchy:block/truffalo/lime_truffalo_tuft", + "2": "antarchy:block/truffalo/lime_truffalo_tuft", + "particle": "antarchy:block/truffalo/lime_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_magenta.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_magenta.json new file mode 100644 index 00000000..02c45cd6 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_magenta.json @@ -0,0 +1,9 @@ +{ + "parent": "antarchy:block/truffalo_tuft_template", + "textures": { + "0": "antarchy:block/truffalo/magenta_truffalo_tuft", + "1": "antarchy:block/truffalo/magenta_truffalo_tuft", + "2": "antarchy:block/truffalo/magenta_truffalo_tuft", + "particle": "antarchy:block/truffalo/magenta_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_orange.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_orange.json new file mode 100644 index 00000000..cf8e559b --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_orange.json @@ -0,0 +1,9 @@ +{ + "parent": "antarchy:block/truffalo_tuft_template", + "textures": { + "0": "antarchy:block/truffalo/orange_truffalo_tuft", + "1": "antarchy:block/truffalo/orange_truffalo_tuft", + "2": "antarchy:block/truffalo/orange_truffalo_tuft", + "particle": "antarchy:block/truffalo/orange_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_pink.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_pink.json new file mode 100644 index 00000000..1e119ffe --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_pink.json @@ -0,0 +1,9 @@ +{ + "parent": "antarchy:block/truffalo_tuft_template", + "textures": { + "0": "antarchy:block/truffalo/pink_truffalo_tuft", + "1": "antarchy:block/truffalo/pink_truffalo_tuft", + "2": "antarchy:block/truffalo/pink_truffalo_tuft", + "particle": "antarchy:block/truffalo/pink_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_purple.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_purple.json new file mode 100644 index 00000000..628833cb --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_purple.json @@ -0,0 +1,9 @@ +{ + "parent": "antarchy:block/truffalo_tuft_template", + "textures": { + "0": "antarchy:block/truffalo/purple_truffalo_tuft", + "1": "antarchy:block/truffalo/purple_truffalo_tuft", + "2": "antarchy:block/truffalo/purple_truffalo_tuft", + "particle": "antarchy:block/truffalo/purple_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_red.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_red.json new file mode 100644 index 00000000..e4687906 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_red.json @@ -0,0 +1,9 @@ +{ + "parent": "antarchy:block/truffalo_tuft_template", + "textures": { + "0": "antarchy:block/truffalo/red_truffalo_tuft", + "1": "antarchy:block/truffalo/red_truffalo_tuft", + "2": "antarchy:block/truffalo/red_truffalo_tuft", + "particle": "antarchy:block/truffalo/red_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_template.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_template.json new file mode 100644 index 00000000..153b48e3 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_template.json @@ -0,0 +1,3624 @@ +{ + "parent": "minecraft:block/block", + "render_type": "cutout", + "textures": { + "0": "alexsmobs:block/bison_fur", + "1": "alexsmobs:block/bison_fur_top", + "2": "alexsmobs:block/bison_fur_extra", + "particle": "alexsmobs:block/bison_fur" + }, + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 8, + 8, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#1" + } + } + }, + { + "from": [ + 0, + 8, + 1 + ], + "to": [ + 0, + 14, + 2 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 14, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 0, + 0, + 1, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 8, + 3 + ], + "to": [ + 0, + 14, + 4 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 14, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 2, + 0, + 3, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 2, + 0, + 3, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 8, + 5 + ], + "to": [ + 0, + 14, + 6 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 14, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 4, + 0, + 5, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 4, + 0, + 5, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 8, + 7 + ], + "to": [ + 0, + 14, + 8 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 14, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 6, + 0, + 7, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 6, + 0, + 7, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 8, + 9 + ], + "to": [ + 0, + 14, + 10 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 14, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 8, + 0, + 9, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 8, + 0, + 9, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 8, + 11 + ], + "to": [ + 0, + 14, + 12 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 14, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 10, + 0, + 11, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 10, + 0, + 11, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 8, + 13 + ], + "to": [ + 0, + 14, + 14 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 14, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 12, + 0, + 13, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 12, + 0, + 13, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 4, + 2 + ], + "to": [ + 0, + 10, + 3 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 10, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 1, + 0, + 2, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 1, + 0, + 2, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 4, + 4 + ], + "to": [ + 0, + 10, + 5 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 10, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 3, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 3, + 0, + 4, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 4, + 6 + ], + "to": [ + 0, + 10, + 7 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 10, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 5, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 5, + 0, + 6, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 4, + 8 + ], + "to": [ + 0, + 10, + 9 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 10, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 7, + 0, + 8, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 7, + 0, + 8, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 4, + 10 + ], + "to": [ + 0, + 10, + 11 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 10, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 9, + 0, + 10, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 9, + 0, + 10, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 4, + 12 + ], + "to": [ + 0, + 10, + 13 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 10, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 11, + 0, + 12, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 11, + 0, + 12, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 4, + 14 + ], + "to": [ + 0, + 10, + 15 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 10, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 13, + 0, + 14, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 13, + 0, + 14, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 1, + 1 + ], + "to": [ + 0, + 7, + 2 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 7, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 0, + 0, + 1, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 1, + 3 + ], + "to": [ + 0, + 7, + 4 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 7, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 2, + 0, + 3, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 2, + 0, + 3, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 1, + 5 + ], + "to": [ + 0, + 7, + 6 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 7, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 4, + 0, + 5, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 4, + 0, + 5, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 1, + 7 + ], + "to": [ + 0, + 7, + 8 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 7, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 6, + 0, + 7, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 6, + 0, + 7, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 1, + 9 + ], + "to": [ + 0, + 7, + 10 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 7, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 8, + 0, + 9, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 8, + 0, + 9, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 1, + 11 + ], + "to": [ + 0, + 7, + 12 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 7, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 10, + 0, + 11, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 10, + 0, + 11, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 0, + 1, + 13 + ], + "to": [ + 0, + 7, + 14 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 0, + 7, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 12, + 0, + 13, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 12, + 0, + 13, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 8, + 1 + ], + "to": [ + 16, + 14, + 2 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 14, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 14, + 0, + 13, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 14, + 0, + 13, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 8, + 3 + ], + "to": [ + 16, + 14, + 4 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 14, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 12, + 0, + 11, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 12, + 0, + 11, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 8, + 5 + ], + "to": [ + 16, + 14, + 6 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 14, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 10, + 0, + 9, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 10, + 0, + 9, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 8, + 7 + ], + "to": [ + 16, + 14, + 8 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 14, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 8, + 0, + 7, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 8, + 0, + 7, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 8, + 9 + ], + "to": [ + 16, + 14, + 10 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 14, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 6, + 0, + 5, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 6, + 0, + 5, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 8, + 11 + ], + "to": [ + 16, + 14, + 12 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 14, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 4, + 0, + 3, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 4, + 0, + 3, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 8, + 13 + ], + "to": [ + 16, + 14, + 14 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 14, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 2, + 0, + 1, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 2, + 0, + 1, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 4, + 2 + ], + "to": [ + 16, + 10, + 3 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 10, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 13, + 0, + 12, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 13, + 0, + 12, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 4, + 4 + ], + "to": [ + 16, + 10, + 5 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 10, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 11, + 0, + 10, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 11, + 0, + 10, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 4, + 6 + ], + "to": [ + 16, + 10, + 7 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 10, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 9, + 0, + 8, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 9, + 0, + 8, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 4, + 8 + ], + "to": [ + 16, + 10, + 9 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 10, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 7, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 7, + 0, + 6, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 4, + 10 + ], + "to": [ + 16, + 10, + 11 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 10, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 5, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 5, + 0, + 4, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 4, + 12 + ], + "to": [ + 16, + 10, + 13 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 10, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 3, + 0, + 2, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 3, + 0, + 2, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 4, + 14 + ], + "to": [ + 16, + 10, + 15 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 10, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 1, + 0, + 0, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 1, + 0, + 0, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 1, + 1 + ], + "to": [ + 16, + 7, + 2 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 7, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 14, + 0, + 13, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 14, + 0, + 13, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 1, + 3 + ], + "to": [ + 16, + 7, + 4 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 7, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 12, + 0, + 11, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 12, + 0, + 11, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 1, + 5 + ], + "to": [ + 16, + 7, + 6 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 7, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 10, + 0, + 9, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 10, + 0, + 9, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 1, + 7 + ], + "to": [ + 16, + 7, + 8 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 7, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 8, + 0, + 7, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 8, + 0, + 7, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 1, + 9 + ], + "to": [ + 16, + 7, + 10 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 7, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 6, + 0, + 5, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 6, + 0, + 5, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 1, + 11 + ], + "to": [ + 16, + 7, + 12 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 7, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 4, + 0, + 3, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 4, + 0, + 3, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 16, + 1, + 13 + ], + "to": [ + 16, + 7, + 14 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 16, + 7, + 8 + ] + }, + "faces": { + "east": { + "uv": [ + 2, + 0, + 1, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 2, + 0, + 1, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 1, + 8, + 0 + ], + "to": [ + 2, + 14, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 14, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 3, + 8, + 0 + ], + "to": [ + 4, + 14, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 14, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 2, + 0, + 3, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 2, + 0, + 3, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 8, + 0 + ], + "to": [ + 6, + 14, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 14, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 4, + 0, + 5, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 4, + 0, + 5, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 8, + 0 + ], + "to": [ + 8, + 14, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 14, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 6, + 0, + 7, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 6, + 0, + 7, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 9, + 8, + 0 + ], + "to": [ + 10, + 14, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 14, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 8, + 0, + 9, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 8, + 0, + 9, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 11, + 8, + 0 + ], + "to": [ + 12, + 14, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 14, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 10, + 0, + 11, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 10, + 0, + 11, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 13, + 8, + 0 + ], + "to": [ + 14, + 14, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 14, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 12, + 0, + 13, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 12, + 0, + 13, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 2, + 4, + 0 + ], + "to": [ + 3, + 10, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 10, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 1, + 0, + 2, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 1, + 0, + 2, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 4, + 4, + 0 + ], + "to": [ + 5, + 10, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 10, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 3, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 3, + 0, + 4, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 6, + 4, + 0 + ], + "to": [ + 7, + 10, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 10, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 5, + 0, + 6, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 8, + 4, + 0 + ], + "to": [ + 9, + 10, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 10, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 7, + 0, + 8, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 7, + 0, + 8, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 10, + 4, + 0 + ], + "to": [ + 11, + 10, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 10, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 9, + 0, + 10, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 9, + 0, + 10, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 12, + 4, + 0 + ], + "to": [ + 13, + 10, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 10, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 11, + 0, + 12, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 11, + 0, + 12, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 14, + 4, + 0 + ], + "to": [ + 15, + 10, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 10, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 13, + 0, + 14, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 13, + 0, + 14, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 1, + 0, + 0 + ], + "to": [ + 2, + 6, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 6, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 3, + 0, + 0 + ], + "to": [ + 4, + 6, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 6, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 2, + 0, + 3, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 2, + 0, + 3, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 0, + 0 + ], + "to": [ + 6, + 6, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 6, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 4, + 0, + 5, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 4, + 0, + 5, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 0, + 0 + ], + "to": [ + 8, + 6, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 6, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 6, + 0, + 7, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 6, + 0, + 7, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 9, + 0, + 0 + ], + "to": [ + 10, + 6, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 6, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 8, + 0, + 9, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 8, + 0, + 9, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 11, + 0, + 0 + ], + "to": [ + 12, + 6, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 6, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 10, + 0, + 11, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 10, + 0, + 11, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 13, + 0, + 0 + ], + "to": [ + 14, + 6, + 0 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 6, + 0 + ] + }, + "faces": { + "north": { + "uv": [ + 12, + 0, + 13, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 12, + 0, + 13, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 1, + 8, + 16 + ], + "to": [ + 2, + 14, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 14, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 14, + 0, + 13, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 14, + 0, + 13, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 3, + 8, + 16 + ], + "to": [ + 4, + 14, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 14, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 12, + 0, + 11, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 12, + 0, + 11, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 8, + 16 + ], + "to": [ + 6, + 14, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 14, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 10, + 0, + 9, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 10, + 0, + 9, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 8, + 16 + ], + "to": [ + 8, + 14, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 14, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 8, + 0, + 7, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 8, + 0, + 7, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 9, + 8, + 16 + ], + "to": [ + 10, + 14, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 14, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 6, + 0, + 5, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 6, + 0, + 5, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 11, + 8, + 16 + ], + "to": [ + 12, + 14, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 14, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 4, + 0, + 3, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 4, + 0, + 3, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 13, + 8, + 16 + ], + "to": [ + 14, + 14, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 14, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 2, + 0, + 1, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 2, + 0, + 1, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 2, + 4, + 16 + ], + "to": [ + 3, + 10, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 10, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 13, + 0, + 12, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 13, + 0, + 12, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 4, + 4, + 16 + ], + "to": [ + 5, + 10, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 10, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 11, + 0, + 10, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 11, + 0, + 10, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 6, + 4, + 16 + ], + "to": [ + 7, + 10, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 10, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 9, + 0, + 8, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 9, + 0, + 8, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 8, + 4, + 16 + ], + "to": [ + 9, + 10, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 10, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 7, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 7, + 0, + 6, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 10, + 4, + 16 + ], + "to": [ + 11, + 10, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 10, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 5, + 0, + 4, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 12, + 4, + 16 + ], + "to": [ + 13, + 10, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 10, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 3, + 0, + 2, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 3, + 0, + 2, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 14, + 4, + 16 + ], + "to": [ + 15, + 10, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 10, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 1, + 0, + 0, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 1, + 0, + 0, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 1, + 0, + 16 + ], + "to": [ + 2, + 6, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 6, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 14, + 0, + 13, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 14, + 0, + 13, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 3, + 0, + 16 + ], + "to": [ + 4, + 6, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 6, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 12, + 0, + 11, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 12, + 0, + 11, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 0, + 16 + ], + "to": [ + 6, + 6, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 6, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 10, + 0, + 9, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 10, + 0, + 9, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 0, + 16 + ], + "to": [ + 8, + 6, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 6, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 8, + 0, + 7, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 8, + 0, + 7, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 9, + 0, + 16 + ], + "to": [ + 10, + 6, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 6, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 6, + 0, + 5, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 6, + 0, + 5, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 11, + 0, + 16 + ], + "to": [ + 12, + 6, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 6, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 4, + 0, + 3, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 4, + 0, + 3, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 13, + 0, + 16 + ], + "to": [ + 14, + 6, + 16 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 6, + 16 + ] + }, + "faces": { + "north": { + "uv": [ + 2, + 0, + 1, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 2, + 0, + 1, + 6 + ], + "texture": "#2" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 225, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_white.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_white.json new file mode 100644 index 00000000..d9f1ced1 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_white.json @@ -0,0 +1,9 @@ +{ + "parent": "antarchy:block/truffalo_tuft_template", + "textures": { + "0": "antarchy:block/truffalo/white_truffalo_tuft", + "1": "antarchy:block/truffalo/white_truffalo_tuft", + "2": "antarchy:block/truffalo/white_truffalo_tuft", + "particle": "antarchy:block/truffalo/white_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_yellow.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_yellow.json new file mode 100644 index 00000000..beb9dee2 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_tuft_yellow.json @@ -0,0 +1,9 @@ +{ + "parent": "antarchy:block/truffalo_tuft_template", + "textures": { + "0": "antarchy:block/truffalo/yellow_truffalo_tuft", + "1": "antarchy:block/truffalo/yellow_truffalo_tuft", + "2": "antarchy:block/truffalo/yellow_truffalo_tuft", + "particle": "antarchy:block/truffalo/yellow_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_wall_hanging_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_wall_hanging_sign.json new file mode 100644 index 00000000..7bce3536 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_wall_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "antarchy:block/truffalo/truffalo_planks" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_wall_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_wall_sign.json new file mode 100644 index 00000000..4be93de3 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_wall_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "antarchy:item/truffalo_sign" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_wood.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_wood.json new file mode 100644 index 00000000..10018691 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/truffalo_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/jungle_wood", + "textures": { + "end": "antarchy:block/truffalo/truffalo_wood", + "side": "antarchy:block/truffalo/truffalo_wood" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite.json new file mode 100644 index 00000000..8bd6ec3b --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/typhonite/typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_slab.json new file mode 100644 index 00000000..dc511f63 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "antarchy:block/typhonite/typhonite_bricks", + "side": "antarchy:block/typhonite/typhonite_bricks", + "top": "antarchy:block/typhonite/typhonite_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_slab_top.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_slab_top.json new file mode 100644 index 00000000..63861787 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "antarchy:block/typhonite/typhonite_bricks", + "side": "antarchy:block/typhonite/typhonite_bricks", + "top": "antarchy:block/typhonite/typhonite_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_stairs.json new file mode 100644 index 00000000..34240a32 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "antarchy:block/typhonite/typhonite_bricks", + "side": "antarchy:block/typhonite/typhonite_bricks", + "top": "antarchy:block/typhonite/typhonite_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_stairs_inner.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_stairs_inner.json new file mode 100644 index 00000000..cdf95b15 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "antarchy:block/typhonite/typhonite_bricks", + "side": "antarchy:block/typhonite/typhonite_bricks", + "top": "antarchy:block/typhonite/typhonite_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_stairs_outer.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_stairs_outer.json new file mode 100644 index 00000000..38b3e73d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "antarchy:block/typhonite/typhonite_bricks", + "side": "antarchy:block/typhonite/typhonite_bricks", + "top": "antarchy:block/typhonite/typhonite_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_wall_inventory.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_wall_inventory.json new file mode 100644 index 00000000..037bc6a8 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "antarchy:block/typhonite/typhonite_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_wall_post.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_wall_post.json new file mode 100644 index 00000000..1102fcef --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "antarchy:block/typhonite/typhonite_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_wall_side.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_wall_side.json new file mode 100644 index 00000000..e3820689 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "antarchy:block/typhonite/typhonite_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_wall_side_tall.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_wall_side_tall.json new file mode 100644 index 00000000..4c1e9272 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_brick_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "antarchy:block/typhonite/typhonite_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_bricks.json new file mode 100644 index 00000000..cfd9de00 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/typhonite/typhonite_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_pillar.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_pillar.json new file mode 100644 index 00000000..7c0a64c4 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_pillar.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "antarchy:block/typhonite/typhonite_pillar_top", + "side": "antarchy:block/typhonite/typhonite_pillar" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_slab.json new file mode 100644 index 00000000..cb872ab1 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "antarchy:block/typhonite/typhonite", + "side": "antarchy:block/typhonite/typhonite", + "top": "antarchy:block/typhonite/typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_slab_top.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_slab_top.json new file mode 100644 index 00000000..da161efd --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "antarchy:block/typhonite/typhonite", + "side": "antarchy:block/typhonite/typhonite", + "top": "antarchy:block/typhonite/typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_down_base.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_down_base.json new file mode 100644 index 00000000..7254ce81 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_down_base.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/typhonite/typhonite_spike_base" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_down_frustum.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_down_frustum.json new file mode 100644 index 00000000..13db257a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_down_frustum.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/typhonite/typhonite_spike_middle" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_down_middle.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_down_middle.json new file mode 100644 index 00000000..13db257a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_down_middle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/typhonite/typhonite_spike_middle" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_down_tip.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_down_tip.json new file mode 100644 index 00000000..969fe71c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_down_tip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/typhonite/typhonite_spike_tip" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_down_tip_merge.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_down_tip_merge.json new file mode 100644 index 00000000..969fe71c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_down_tip_merge.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/typhonite/typhonite_spike_tip" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_up_base.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_up_base.json new file mode 100644 index 00000000..7254ce81 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_up_base.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/typhonite/typhonite_spike_base" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_up_frustum.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_up_frustum.json new file mode 100644 index 00000000..13db257a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_up_frustum.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/typhonite/typhonite_spike_middle" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_up_middle.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_up_middle.json new file mode 100644 index 00000000..13db257a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_up_middle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/typhonite/typhonite_spike_middle" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_up_tip.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_up_tip.json new file mode 100644 index 00000000..969fe71c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_up_tip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/typhonite/typhonite_spike_tip" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_up_tip_merge.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_up_tip_merge.json new file mode 100644 index 00000000..969fe71c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_spike_up_tip_merge.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/typhonite/typhonite_spike_tip" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_stairs.json new file mode 100644 index 00000000..0ce99c45 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "antarchy:block/typhonite/typhonite", + "side": "antarchy:block/typhonite/typhonite", + "top": "antarchy:block/typhonite/typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_stairs_inner.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_stairs_inner.json new file mode 100644 index 00000000..e64b22c2 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "antarchy:block/typhonite/typhonite", + "side": "antarchy:block/typhonite/typhonite", + "top": "antarchy:block/typhonite/typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_stairs_outer.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_stairs_outer.json new file mode 100644 index 00000000..e1d0fa12 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "antarchy:block/typhonite/typhonite", + "side": "antarchy:block/typhonite/typhonite", + "top": "antarchy:block/typhonite/typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_wall_inventory.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_wall_inventory.json new file mode 100644 index 00000000..f357573d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "antarchy:block/typhonite/typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_wall_post.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_wall_post.json new file mode 100644 index 00000000..6e0a1b1f --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "antarchy:block/typhonite/typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_wall_side.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_wall_side.json new file mode 100644 index 00000000..57b3dc58 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "antarchy:block/typhonite/typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_wall_side_tall.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_wall_side_tall.json new file mode 100644 index 00000000..000c41ba --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/typhonite_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "antarchy:block/typhonite/typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/veined_typhonite.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/veined_typhonite.json new file mode 100644 index 00000000..cd7bb563 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/veined_typhonite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/typhonite/veined_typhonite" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/verdant_nyxium.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/verdant_nyxium.json new file mode 100644 index 00000000..da4f5fb3 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/verdant_nyxium.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "antarchy:block/nyxite", + "side": "antarchy:block/verdant_nyxium", + "top": "antarchy:block/verdant_nyxium_top" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/verdant_roots.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/verdant_roots.json new file mode 100644 index 00000000..a14babac --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/verdant_roots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/verdant_roots" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/vortex_lens.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/vortex_lens.json new file mode 100644 index 00000000..2e97d9f3 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/vortex_lens.json @@ -0,0 +1,112 @@ +{ + "format_version": "1.21.11", + "credit": "Made with Blockbench", + "render_type": "translucent", + "texture_size": [64, 64], + "textures": { + "0": "antarchy:block/vortex_lens/vortex_lens_off", + "particle": "antarchy:block/vortex_lens/vortex_lens_off" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 2, 16], + "faces": { + "north": {"uv": [0, 11.5, 4, 12], "texture": "#0"}, + "east": {"uv": [0, 11.5, 4, 12], "texture": "#0"}, + "south": {"uv": [0, 11.5, 4, 12], "texture": "#0"}, + "west": {"uv": [0, 11.5, 4, 12], "texture": "#0"}, + "up": {"uv": [4, 4, 0, 0], "texture": "#0"}, + "down": {"uv": [4, 4, 0, 8], "texture": "#0"} + } + }, + { + "from": [4, 2, 4], + "to": [12, 10, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, 0]}, + "faces": { + "north": {"uv": [8, 7, 10, 9], "texture": "#0"}, + "east": {"uv": [8, 7, 10, 9], "texture": "#0"}, + "south": {"uv": [8, 7, 10, 9], "texture": "#0"}, + "west": {"uv": [8, 7, 10, 9], "texture": "#0"}, + "up": {"uv": [8, 7, 10, 9], "texture": "#0"}, + "down": {"uv": [8, 7, 10, 9], "texture": "#0"} + } + }, + { + "from": [0, 2, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, 0]}, + "faces": { + "north": {"uv": [0, 8, 4, 11.5], "texture": "#0"}, + "east": {"uv": [0, 8, 4, 11.5], "texture": "#0"}, + "south": {"uv": [0, 8, 4, 11.5], "texture": "#0"}, + "west": {"uv": [0, 8, 4, 11.5], "texture": "#0"}, + "up": {"uv": [8, 4, 4, 0], "texture": "#0"}, + "down": {"uv": [8, 4, 4, 8], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, -135, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, -135, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + }, + "groups": [ + { + "name": "vortex_lens", + "origin": [0, 2, 0], + "scope": 0, + "color": 0, + "children": [ + { + "name": "base", + "origin": [0, 0, 0], + "scope": 0, + "color": 0, + "children": [0] + }, + { + "name": "eye", + "origin": [0, 2, 0], + "scope": 0, + "color": 0, + "children": [1] + }, + { + "name": "glass", + "origin": [0, 2, 0], + "scope": 0, + "color": 0, + "children": [2] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/vortex_lens_on.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/vortex_lens_on.json new file mode 100644 index 00000000..e69a6256 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/vortex_lens_on.json @@ -0,0 +1,7 @@ +{ + "parent": "antarchy:block/vortex_lens", + "textures": { + "0": "antarchy:block/vortex_lens/vortex_lens_on", + "particle": "antarchy:block/vortex_lens/vortex_lens_on" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/vortex_lens_on_bluestone.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/vortex_lens_on_bluestone.json new file mode 100644 index 00000000..60c76dff --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/vortex_lens_on_bluestone.json @@ -0,0 +1,7 @@ +{ + "parent": "antarchy:block/vortex_lens", + "textures": { + "0": "antarchy:block/vortex_lens/vortex_lens_on_bluestone", + "particle": "antarchy:block/vortex_lens/vortex_lens_on_bluestone" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/block/whirlflower.json b/common-1.20.1/src/main/resources/assets/antarchy/models/block/whirlflower.json new file mode 100644 index 00000000..23ede8f2 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/block/whirlflower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/whirlflower" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/black_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/black_truffalo_tuft.json new file mode 100644 index 00000000..3a85639b --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/black_truffalo_tuft.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_tuft_black" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/blue_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/blue_truffalo_tuft.json new file mode 100644 index 00000000..31bfa44d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/blue_truffalo_tuft.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_tuft_blue" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/broodfruit_cobbler.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/broodfruit_cobbler.json new file mode 100644 index 00000000..9b5a299e --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/broodfruit_cobbler.json @@ -0,0 +1 @@ +{"parent":"minecraft:item/generated","textures":{"layer0":"antarchy:item/broodfruit_cobbler"}} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/brown_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/brown_truffalo_tuft.json new file mode 100644 index 00000000..bb2b0bf4 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/brown_truffalo_tuft.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_tuft_brown" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/cheep_bucket.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/cheep_bucket.json new file mode 100644 index 00000000..cf6e318d --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/chiseled_loam_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/chiseled_loam_bricks.json new file mode 100644 index 00000000..4848c402 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/chiseled_myrmite.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/chiseled_myrmite.json new file mode 100644 index 00000000..f6ed9fed --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/chiseled_typhonite.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/chiseled_typhonite.json new file mode 100644 index 00000000..c992bfca --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/chiseled_typhonite.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/chiseled_typhonite" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/cooked_cheep.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/cooked_cheep.json new file mode 100644 index 00000000..13aae4b6 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/cyan_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/cyan_truffalo_tuft.json new file mode 100644 index 00000000..f374d9d8 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/cyan_truffalo_tuft.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_tuft_cyan" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/duskbell.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/duskbell.json new file mode 100644 index 00000000..8b1f619c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/duskbell.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/duskbell" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/eye_of_the_storm_gui.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/eye_of_the_storm_gui.json new file mode 100644 index 00000000..c0b6a793 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/eye_of_the_storm_gui.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "gui_light": "front", + "textures": { + "layer0": "antarchy:item/eye_of_the_storm/eye_of_the_storm_item" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/eye_of_the_storm_held_geo.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/eye_of_the_storm_held_geo.json new file mode 100644 index 00000000..22ee499d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/eye_of_the_storm_held_geo.json @@ -0,0 +1 @@ +{"parent":"builtin/entity"} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/glimmering_reed.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/glimmering_reed.json new file mode 100644 index 00000000..50934765 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/glimmering_reed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:block/glimming_reed/glimmering_reed_top" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/gorevine.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/gorevine.json new file mode 100644 index 00000000..8b11d607 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/gorevine.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/gorevine" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/gray_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/gray_truffalo_tuft.json new file mode 100644 index 00000000..16a21056 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/gray_truffalo_tuft.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_tuft_gray" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/green_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/green_truffalo_tuft.json new file mode 100644 index 00000000..6cf274a0 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/green_truffalo_tuft.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_tuft_green" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard.json new file mode 100644 index 00000000..8b4ffc58 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_black.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_black.json new file mode 100644 index 00000000..ca7358df --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_black.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard_black" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_blue.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_blue.json new file mode 100644 index 00000000..5fe34395 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_blue.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard_blue" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_brown.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_brown.json new file mode 100644 index 00000000..92d059b8 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_brown.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard_brown" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_cyan.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_cyan.json new file mode 100644 index 00000000..cbe7c5fb --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_cyan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard_cyan" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_gray.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_gray.json new file mode 100644 index 00000000..64045068 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_gray.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard_gray" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_green.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_green.json new file mode 100644 index 00000000..7c516302 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_green.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard_green" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_light_blue.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_light_blue.json new file mode 100644 index 00000000..3f32efa3 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_light_blue.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard_light_blue" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_light_gray.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_light_gray.json new file mode 100644 index 00000000..7adc8656 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_light_gray.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard_light_gray" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_lime.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_lime.json new file mode 100644 index 00000000..191665aa --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_lime.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard_lime" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_magenta.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_magenta.json new file mode 100644 index 00000000..ea49d703 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_magenta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard_magenta" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_orange.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_orange.json new file mode 100644 index 00000000..168240e1 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_orange.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard_orange" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_pink.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_pink.json new file mode 100644 index 00000000..35fe893c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_pink.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard_pink" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_purple.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_purple.json new file mode 100644 index 00000000..5af639fc --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_purple.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard_purple" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_red.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_red.json new file mode 100644 index 00000000..b2801760 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_red.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard_red" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_white.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_white.json new file mode 100644 index 00000000..8464ccf6 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_white.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard_white" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_yellow.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_yellow.json new file mode 100644 index 00000000..0264df18 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/hoverboard_yellow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hoverboard/hoverboard_yellow" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/king_spawn_egg.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/king_spawn_egg.json new file mode 100644 index 00000000..ddd15597 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/king_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/large_nadir_fern.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/large_nadir_fern.json new file mode 100644 index 00000000..352d75f0 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/large_nadir_fern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/large_nadir_fern" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/light_blue_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/light_blue_truffalo_tuft.json new file mode 100644 index 00000000..10f474fa --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/light_blue_truffalo_tuft.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_tuft_light_blue" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/light_gray_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/light_gray_truffalo_tuft.json new file mode 100644 index 00000000..e75f9e5f --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/light_gray_truffalo_tuft.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_tuft_light_gray" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/lime_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/lime_truffalo_tuft.json new file mode 100644 index 00000000..cee6305a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/lime_truffalo_tuft.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_tuft_lime" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/loam_brick_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/loam_brick_slab.json new file mode 100644 index 00000000..08cff16f --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/loam_brick_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/loam_brick_stairs.json new file mode 100644 index 00000000..1af348a6 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/loam_brick_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/loam_brick_wall.json new file mode 100644 index 00000000..69232367 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/loam_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/loam_bricks.json new file mode 100644 index 00000000..63f272d6 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/magenta_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/magenta_truffalo_tuft.json new file mode 100644 index 00000000..8060ad9a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/magenta_truffalo_tuft.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_tuft_magenta" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/manticore_spawn_egg.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/manticore_spawn_egg.json new file mode 100644 index 00000000..ddd15597 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/manticore_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/manticore_wing.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/manticore_wing.json new file mode 100644 index 00000000..e2aef6bc --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/manticore_wing.json @@ -0,0 +1 @@ +{"parent":"minecraft:item/generated","textures":{"layer0":"antarchy:item/manticore_wing"}} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/manticore_wings.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/manticore_wings.json new file mode 100644 index 00000000..59f0b415 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/manticore_wings.json @@ -0,0 +1 @@ +{"parent":"minecraft:item/generated","textures":{"layer0":"antarchy:item/manticore_wings_item"}} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_brick_slab.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_brick_stairs.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_brick_wall.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/mossy_broodstone_bricks.json new file mode 100644 index 00000000..45f7f40a --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_brick_slab.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_brick_stairs.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_brick_wall.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/mossy_myrmite_bricks.json new file mode 100644 index 00000000..cbacdfb2 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_brick_slab.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_brick_stairs.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_brick_wall.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/mossy_nyxite_bricks.json new file mode 100644 index 00000000..52e77afd --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/music_disc_underside.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/music_disc_underside.json new file mode 100644 index 00000000..8f74d5dc --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/music_disc_underside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/music_disc_underside" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/myrmite_brick_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/myrmite_brick_slab.json new file mode 100644 index 00000000..4670ff48 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/myrmite_brick_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/myrmite_brick_stairs.json new file mode 100644 index 00000000..9f800c94 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/myrmite_brick_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/myrmite_brick_wall.json new file mode 100644 index 00000000..89a18bbe --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/myrmite_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/myrmite_bricks.json new file mode 100644 index 00000000..943915c1 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/myrmite_pillar.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/myrmite_pillar.json new file mode 100644 index 00000000..38cb75db --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/myrmite_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/myrmite_slab.json new file mode 100644 index 00000000..ab1f1535 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/myrmite_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/myrmite_stairs.json new file mode 100644 index 00000000..a4336037 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/myrmite_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/myrmite_wall.json new file mode 100644 index 00000000..a3dcf91f --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/nadir_fern.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/nadir_fern.json new file mode 100644 index 00000000..92a6eb28 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/nadir_fern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/nadir_fern" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/nadir_nyxium.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/nadir_nyxium.json new file mode 100644 index 00000000..7cc09220 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/nadir_nyxium.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/nadir_nyxium" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/nadir_roots.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/nadir_roots.json new file mode 100644 index 00000000..fd21713d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/nadir_roots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:block/nadir/nadir_roots" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/orange_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/orange_truffalo_tuft.json new file mode 100644 index 00000000..3e4b2c1a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/orange_truffalo_tuft.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_tuft_orange" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/packed_loam.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/packed_loam.json new file mode 100644 index 00000000..05025f63 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/pink_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/pink_truffalo_tuft.json new file mode 100644 index 00000000..fd57d7e5 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/pink_truffalo_tuft.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_tuft_pink" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/polished_myrmite.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/polished_myrmite.json new file mode 100644 index 00000000..91b1e049 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/polished_myrmite_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/polished_myrmite_slab.json new file mode 100644 index 00000000..55f00249 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/polished_myrmite_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/polished_myrmite_stairs.json new file mode 100644 index 00000000..6a72618a --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/polished_myrmite_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/polished_myrmite_wall.json new file mode 100644 index 00000000..0bdea15d --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/polished_typhonite.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/polished_typhonite.json new file mode 100644 index 00000000..98b15514 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/polished_typhonite.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/polished_typhonite" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/polished_typhonite_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/polished_typhonite_slab.json new file mode 100644 index 00000000..c9ec9234 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/polished_typhonite_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/polished_typhonite_slab" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/polished_typhonite_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/polished_typhonite_stairs.json new file mode 100644 index 00000000..8f0c6d6a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/polished_typhonite_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/polished_typhonite_stairs" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/polished_typhonite_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/polished_typhonite_wall.json new file mode 100644 index 00000000..e731abdc --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/polished_typhonite_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/polished_typhonite_wall_inventory" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/portal_gun_display.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/portal_gun_display.json new file mode 100644 index 00000000..d029b288 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/portal_gun_display.json @@ -0,0 +1,131 @@ +{ + "credit": "Made with Blockbench", + "parent": "builtin/entity", + "texture_size": [ + 128, + 128 + ], + "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 + ] + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/portal_gun_gui.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/portal_gun_gui.json new file mode 100644 index 00000000..d891430d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/portal_gun_gui.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "gui_light": "front", + "textures": { + "layer0": "antarchy:item/portal_gun/portal_gun_item" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/portal_gun_held_geo.json b/common-1.20.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.20.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.20.1/src/main/resources/assets/antarchy/models/item/prince_egg.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/prince_egg.json new file mode 100644 index 00000000..c70786c8 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/prince_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/prince_egg" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/prince_spawn_egg.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/prince_spawn_egg.json new file mode 100644 index 00000000..ddd15597 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/prince_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/princess_egg.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/princess_egg.json new file mode 100644 index 00000000..39c3e5f3 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/princess_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/princess_egg" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/princess_spawn_egg.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/princess_spawn_egg.json new file mode 100644 index 00000000..ddd15597 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/princess_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/purple_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/purple_truffalo_tuft.json new file mode 100644 index 00000000..89d391ba --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/purple_truffalo_tuft.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_tuft_purple" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/queen_spawn_egg.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/queen_spawn_egg.json new file mode 100644 index 00000000..ddd15597 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/queen_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/red_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/red_truffalo_tuft.json new file mode 100644 index 00000000..59ab0272 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/red_truffalo_tuft.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_tuft_red" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_battleaxe.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_battleaxe.json new file mode 100644 index 00000000..c6ede5e2 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_battleaxe.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:item/royal_assailant_battleaxe_held" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_battleaxe_gui.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_battleaxe_gui.json new file mode 100644 index 00000000..1d6a7932 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_battleaxe_gui.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "gui_light": "front", + "textures": { + "layer0": "antarchy:item/royal_assailant/royal_assailant_battleaxe_item" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_battleaxe_held.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_battleaxe_held.json new file mode 100644 index 00000000..493b9d97 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_battleaxe_held.json @@ -0,0 +1,2422 @@ +{ + "format_version": "1.21.11", + "credit": "Made with Blockbench", + "texture_size": [ + 64, + 64 + ], + "textures": { + "0": "antarchy:item/royal_assailant/royal_assailant_battleaxe", + "particle": "antarchy:item/royal_assailant/royal_assailant_battleaxe" + }, + "elements": [ + { + "from": [ + 7.5, + -14, + 7.5 + ], + "to": [ + 8.5, + -7, + 8.5 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 5, + -15, + 5 + ] + }, + "faces": { + "north": { + "uv": [ + 5.25, + 9.75, + 5.5, + 11.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 5, + 9.75, + 5.25, + 11.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 5.75, + 9.75, + 6, + 11.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 5.5, + 9.75, + 5.75, + 11.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 5.5, + 9.75, + 5.25, + 9.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 5.75, + 9.5, + 5.5, + 9.75 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 7.3, + -14.2, + 7.3 + ], + "to": [ + 8.7, + 29, + 8.7 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 5, + -15, + 5 + ] + }, + "faces": { + "north": { + "uv": [ + 0.25, + 0.25, + 0.5, + 10.75 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0.5, + 0.25, + 0.25, + 10.75 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0.75, + 0.25, + 1, + 10.75 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 1, + 0.25, + 0.75, + 10.75 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0.5, + 0.25, + 0.25, + 0 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0.75, + 0, + 0.5, + 0.25 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 6.5, + -16, + 6.5 + ], + "to": [ + 9.5, + -13, + 9.5 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 5, + -19, + 5 + ] + }, + "faces": { + "north": { + "uv": [ + 4.75, + 7.25, + 5.5, + 8 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 4.75, + 7.25, + 5.5, + 8 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 4.75, + 7.25, + 5.5, + 8 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 4.75, + 7.25, + 5.5, + 8 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 5.5, + 7.25, + 4.75, + 6.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 6.25, + 6.5, + 5.5, + 7.25 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 6.5, + 29, + 6.5 + ], + "to": [ + 9.5, + 32, + 9.5 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 5, + 26, + 5 + ] + }, + "faces": { + "north": { + "uv": [ + 4.75, + 7.25, + 5.5, + 8 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 4.75, + 7.25, + 5.5, + 8 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 4.75, + 7.25, + 5.5, + 8 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 4.75, + 7.25, + 5.5, + 8 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 5.5, + 8, + 4.75, + 7.25 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 6.25, + 6.5, + 5.5, + 7.25 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 9.27, + 24.995, + 7.745 + ], + "to": [ + 18.28, + 28.005, + 8.255 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 14.275, + 25, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5.25, + 3.75, + 7.5, + 4.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 5, + 3.75, + 5.25, + 4.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 7.5, + 3.75, + 5.25, + 4.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 7.5, + 3.75, + 7.75, + 4.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 7.5, + 3.625, + 5.25, + 3.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 9.75, + 3.5, + 7.5, + 3.75 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 10, + 20.5, + 7.75 + ], + "to": [ + 18.5, + 26.5, + 8.25 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 11.5, + 15.5, + 4.5 + ] + }, + "faces": { + "north": { + "uv": [ + 1.25, + 0.25, + 3.375, + 1.75 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 1, + 0.25, + 1.25, + 1.75 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 3.375, + 0.25, + 1.25, + 1.75 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 3.5, + 0.25, + 3.75, + 1.75 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 3.5, + 0.25, + 1.25, + 0 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 5.75, + 0, + 3.5, + 0.25 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 8.145, + 19.245, + 7.745 + ], + "to": [ + 17.155, + 22.255, + 8.255 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 13.15, + 19.25, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5.25, + 4.75, + 7.5, + 5.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 5, + 4.75, + 5.25, + 5.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 7.5, + 4.75, + 5.25, + 5.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 7.5, + 4.75, + 7.75, + 5.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 7.5, + 4.75, + 5.25, + 4.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 9.75, + 4.5, + 7.5, + 4.75 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 16.17, + 14.27, + 7.22 + ], + "to": [ + 18.08, + 22.68, + 8.73 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 13.075, + 19.275, + 8.225 + ] + }, + "faces": { + "north": { + "uv": [ + 7.5, + 7, + 8, + 9 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 7.125, + 7, + 7.5, + 9 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 8, + 7, + 7.5, + 9 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 8, + 7.25, + 8.375, + 8.975 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 8, + 7, + 7.5, + 6.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 8.5, + 6.5, + 8, + 6.875 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 15.57, + 13.77, + 7.995 + ], + "to": [ + 18.58, + 22.88, + 8.005 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 13.075, + 19.275, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 9.25, + 1, + 10, + 3.25 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 9.25, + 1, + 9.375, + 3.25 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 10, + 1, + 9.25, + 3.25 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 9.25, + 1, + 9.375, + 3.25 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 9.25, + 1, + 10, + 3.25 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 9.25, + 3.125, + 10, + 3.25 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 18, + 20.5, + 8 + ], + "to": [ + 19.55, + 26.5, + 8 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 12.5, + 15.5, + 4.5 + ] + }, + "faces": { + "north": { + "uv": [ + 10.25, + 10, + 10.5, + 11.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 10.25, + 10, + 10.5, + 11.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 10.5, + 10, + 10.25, + 11.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 10.25, + 10, + 10.5, + 11.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 10.25, + 10, + 10.5, + 11.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 10.25, + 10, + 10.5, + 11.5 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 17, + 20.5, + 7.225 + ], + "to": [ + 19, + 26.5, + 8.725 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 11.5, + 15.5, + 4.725 + ] + }, + "faces": { + "north": { + "uv": [ + 9.5, + 7, + 10, + 8.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 9.125, + 7, + 9.5, + 8.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 10, + 7, + 9.5, + 8.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 10, + 7, + 10.375, + 8.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 10, + 7, + 9.5, + 6.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 10.5, + 6.5, + 10, + 7 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 17.5, + 26.5, + 7.225 + ], + "to": [ + 18.5, + 27.5, + 8.725 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 12, + 16.5, + 4.725 + ] + }, + "faces": { + "north": { + "uv": [ + 9.625, + 7, + 9.875, + 7.125 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 9.125, + 7, + 9.5, + 8.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 9.875, + 7, + 9.625, + 7.125 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 10, + 7, + 10.5, + 8.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 10, + 7, + 9.5, + 6.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 10.5, + 6.5, + 10, + 7 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 17.5, + 19.5, + 7.225 + ], + "to": [ + 18.5, + 20.5, + 8.725 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 12, + 9.5, + 4.725 + ] + }, + "faces": { + "north": { + "uv": [ + 9.625, + 8.375, + 9.875, + 8.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 9.125, + 7, + 9.5, + 8.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 9.875, + 8.375, + 9.625, + 8.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 10, + 7, + 10.5, + 8.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 10, + 7, + 9.5, + 6.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 10.5, + 6.5, + 10, + 7 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 16.72, + 24.345, + 7.995 + ], + "to": [ + 19.73, + 30.455, + 8.005 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 14.225, + 24.95, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 10.25, + 5, + 11, + 6.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 10.25, + 5, + 10.375, + 6.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 11, + 5, + 10.25, + 6.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 10.25, + 5, + 10.375, + 6.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 10.25, + 5, + 11, + 5.125 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 10.25, + 5, + 11, + 6.5 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 17.32, + 24.545, + 7.22 + ], + "to": [ + 19.23, + 29.955, + 8.73 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 14.225, + 24.95, + 8.225 + ] + }, + "faces": { + "north": { + "uv": [ + 3.5, + 10, + 4, + 11.25 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 3.125, + 10, + 3.5, + 11.25 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 4, + 10, + 3.5, + 11.25 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 4, + 10, + 4.375, + 11.225 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 4, + 9.875, + 3.5, + 9.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 4.5, + 9.5, + 4, + 10 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 5.75, + 20, + 6 + ], + "to": [ + 10.25, + 27, + 10 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 4.75, + 17, + 4.5 + ] + }, + "faces": { + "north": { + "uv": [ + 2, + 4.5, + 3.125, + 6.25 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 1, + 4.5, + 2, + 6.25 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 3.125, + 4.5, + 2, + 6.25 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 1, + 4.5, + 2, + 6.25 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 3, + 4.5, + 1.875, + 3.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 3, + 3.5, + 1.875, + 4.5 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 6.5, + 15, + 6.5 + ], + "to": [ + 9.5, + 18, + 9.5 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 5, + 12, + 5 + ] + }, + "faces": { + "north": { + "uv": [ + 4.75, + 7.25, + 5.5, + 8 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 4.75, + 7.25, + 5.5, + 8 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 4.75, + 7.25, + 5.5, + 8 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 4.75, + 7.25, + 5.5, + 8 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 5.5, + 7.25, + 4.75, + 6.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 6.25, + 6.5, + 5.5, + 7.25 + ], + "texture": "#0" + } + } + }, + { + "from": [ + -2.28, + 24.995, + 7.745 + ], + "to": [ + 6.73, + 28.005, + 8.255 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 1.725, + 25, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 7.5, + 3.75, + 5.25, + 4.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 7.75, + 3.75, + 7.5, + 4.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 5.25, + 3.75, + 7.5, + 4.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 5.25, + 3.75, + 5, + 4.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 5.25, + 3.625, + 7.5, + 3.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 7.5, + 3.5, + 9.75, + 3.75 + ], + "texture": "#0" + } + } + }, + { + "from": [ + -2.5, + 20.5, + 7.75 + ], + "to": [ + 6, + 26.5, + 8.25 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 4.5, + 15.5, + 4.5 + ] + }, + "faces": { + "north": { + "uv": [ + 3.375, + 0.25, + 1.25, + 1.75 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 3.75, + 0.25, + 3.5, + 1.75 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 1.25, + 0.25, + 3.375, + 1.75 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 1.25, + 0.25, + 1, + 1.75 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 1.25, + 0.25, + 3.5, + 0 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 3.5, + 0, + 5.75, + 0.25 + ], + "texture": "#0" + } + } + }, + { + "from": [ + -1.155, + 19.245, + 7.745 + ], + "to": [ + 7.855, + 22.255, + 8.255 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 2.85, + 19.25, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 7.5, + 4.75, + 5.25, + 5.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 7.75, + 4.75, + 7.5, + 5.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 5.25, + 4.75, + 7.5, + 5.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 5.25, + 4.75, + 5, + 5.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 5.25, + 4.75, + 7.5, + 4.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 7.5, + 4.5, + 9.75, + 4.75 + ], + "texture": "#0" + } + } + }, + { + "from": [ + -2.08, + 14.27, + 7.22 + ], + "to": [ + -0.17, + 22.68, + 8.73 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 2.925, + 19.275, + 8.225 + ] + }, + "faces": { + "north": { + "uv": [ + 8, + 7, + 7.5, + 9 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 8.375, + 7.25, + 8, + 8.975 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 7.5, + 7, + 8, + 9 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 7.5, + 7, + 7.125, + 9 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 7.5, + 7, + 8, + 6.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 8, + 6.5, + 8.5, + 6.875 + ], + "texture": "#0" + } + } + }, + { + "from": [ + -2.58, + 13.77, + 7.995 + ], + "to": [ + 0.43, + 22.88, + 8.005 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 2.925, + 19.275, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 10, + 1, + 9.25, + 3.25 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 9.375, + 1, + 9.25, + 3.25 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 9.25, + 1, + 10, + 3.25 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 9.375, + 1, + 9.25, + 3.25 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 10, + 1, + 9.25, + 3.25 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 10, + 3.125, + 9.25, + 3.25 + ], + "texture": "#0" + } + } + }, + { + "from": [ + -3.55, + 20.5, + 8 + ], + "to": [ + -2, + 26.5, + 8 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 3.5, + 15.5, + 4.5 + ] + }, + "faces": { + "north": { + "uv": [ + 10.5, + 10, + 10.25, + 11.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 10.5, + 10, + 10.25, + 11.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 10.25, + 10, + 10.5, + 11.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 10.5, + 10, + 10.25, + 11.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 10.5, + 10, + 10.25, + 11.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 10.5, + 10, + 10.25, + 11.5 + ], + "texture": "#0" + } + } + }, + { + "from": [ + -3, + 20.5, + 7.225 + ], + "to": [ + -1, + 26.5, + 8.725 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 4.5, + 15.5, + 4.725 + ] + }, + "faces": { + "north": { + "uv": [ + 10, + 7, + 9.5, + 8.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 10.375, + 7, + 10, + 8.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 9.5, + 7, + 10, + 8.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 9.5, + 7, + 9.125, + 8.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 9.5, + 7, + 10, + 6.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 10, + 6.5, + 10.5, + 7 + ], + "texture": "#0" + } + } + }, + { + "from": [ + -2.5, + 26.5, + 7.225 + ], + "to": [ + -1.5, + 27.5, + 8.725 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 4, + 16.5, + 4.725 + ] + }, + "faces": { + "north": { + "uv": [ + 9.875, + 7, + 9.625, + 7.125 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 10.5, + 7, + 10, + 8.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 9.625, + 7, + 9.875, + 7.125 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 9.5, + 7, + 9.125, + 8.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 9.5, + 7, + 10, + 6.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 10, + 6.5, + 10.5, + 7 + ], + "texture": "#0" + } + } + }, + { + "from": [ + -2.5, + 19.5, + 7.225 + ], + "to": [ + -1.5, + 20.5, + 8.725 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 4, + 9.5, + 4.725 + ] + }, + "faces": { + "north": { + "uv": [ + 9.875, + 8.375, + 9.625, + 8.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 10.5, + 7, + 10, + 8.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 9.625, + 8.375, + 9.875, + 8.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 9.5, + 7, + 9.125, + 8.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 9.5, + 7, + 10, + 6.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 10, + 6.5, + 10.5, + 7 + ], + "texture": "#0" + } + } + }, + { + "from": [ + -3.73, + 24.345, + 7.995 + ], + "to": [ + -0.72, + 30.455, + 8.005 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 1.775, + 24.95, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 11, + 5, + 10.25, + 6.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 10.375, + 5, + 10.25, + 6.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 10.25, + 5, + 11, + 6.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 10.375, + 5, + 10.25, + 6.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 11, + 5, + 10.25, + 5.125 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 11, + 5, + 10.25, + 6.5 + ], + "texture": "#0" + } + } + }, + { + "from": [ + -3.23, + 24.545, + 7.22 + ], + "to": [ + -1.32, + 29.955, + 8.73 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 1.775, + 24.95, + 8.225 + ] + }, + "faces": { + "north": { + "uv": [ + 4, + 10, + 3.5, + 11.25 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 4.375, + 10, + 4, + 11.225 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 3.5, + 10, + 4, + 11.25 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 3.5, + 10, + 3.125, + 11.25 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 3.5, + 9.875, + 4, + 9.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 4, + 9.5, + 4.5, + 10 + ], + "texture": "#0" + } + } + } + ], + "gui_light": "front", + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 0 + ], + "translation": [ + 0, + 37.5, + 1.5 + ], + "scale": [ + 2, + 2, + 2 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + -90, + 0 + ], + "translation": [ + 0, + 37.5, + 1.5 + ], + "scale": [ + 2, + 2, + 2 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 5 + ], + "translation": [ + 2, + 8, + 1.5 + ], + "scale": [ + 0.5, + 0.5, + 0.5 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -5 + ], + "translation": [ + 2, + 8, + 1.5 + ], + "scale": [ + 0.5, + 0.5, + 0.5 + ] + }, + "ground": { + "rotation": [ + -90, + 0, + 0 + ], + "scale": [ + 0.2, + 0.2, + 0.2 + ] + }, + "gui": { + "rotation": [ + 0, + 0, + -45 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "head": { + "translation": [ + 0, + 45.25, + 0 + ], + "scale": [ + 2, + 2, + 2 + ] + }, + "fixed": { + "rotation": [ + 0, + 0, + 45 + ], + "scale": [ + 0.5, + 0.5, + 0.5 + ] + }, + "on_shelf": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + }, + "groups": [ + { + "name": "royal_assailant_battleaxe", + "origin": [ + 7.65, + -7.75, + 8 + ], + "scope": 0, + "color": 0, + "children": [ + { + "name": "handle", + "origin": [ + 5, + -15, + 5 + ], + "scope": 0, + "color": 0, + "children": [ + 0, + 1, + 2, + 3, + { + "name": "head", + "origin": [ + 14.275, + 23, + 8 + ], + "scope": 0, + "color": 0, + "children": [ + { + "name": "left", + "origin": [ + 14.275, + 23, + 8 + ], + "scope": 0, + "color": 0, + "children": [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ] + }, + 15, + 16 + ] + } + ] + } + ] + }, + { + "name": "royal_assailant_battleaxe", + "origin": [ + 8.35, + -7.75, + 8 + ], + "scope": 0, + "color": 0, + "children": [ + { + "name": "handle", + "origin": [ + 11, + -15, + 5 + ], + "scope": 0, + "color": 0, + "children": [ + { + "name": "head", + "origin": [ + 1.725, + 23, + 8 + ], + "scope": 0, + "color": 0, + "children": [ + { + "name": "right", + "origin": [ + 1.725, + 23, + 8 + ], + "scope": 0, + "color": 0, + "children": [ + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27 + ] + } + ] + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_boots.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_boots.json new file mode 100644 index 00000000..946c57e4 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_boots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/royal_assailant/royal_assailant_boots" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_chestplate.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_chestplate.json new file mode 100644 index 00000000..f008da1a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_chestplate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/royal_assailant/royal_assailant_chestplate" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_helmet.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_helmet.json new file mode 100644 index 00000000..eb1b1568 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_helmet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/royal_assailant/royal_assailant_helmet" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_leggings.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_leggings.json new file mode 100644 index 00000000..86c0a4fd --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_leggings.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/royal_assailant/royal_assailant_leggings" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_staff.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_staff.json new file mode 100644 index 00000000..39bc398a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_staff.json @@ -0,0 +1 @@ +{"parent":"antarchy:item/royal_assailant_staff_held_geo"} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_staff_held_geo.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_staff_held_geo.json new file mode 100644 index 00000000..22ee499d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_assailant_staff_held_geo.json @@ -0,0 +1 @@ +{"parent":"builtin/entity"} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_boat.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_boat.json new file mode 100644 index 00000000..5d9cd98d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_boat.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/royal_boat" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_button.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_button.json new file mode 100644 index 00000000..44f6f576 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_button.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/royal_button_inventory" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_chest_boat.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_chest_boat.json new file mode 100644 index 00000000..f93241d4 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_chest_boat.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/royal_chest_boat" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_door.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_door.json new file mode 100644 index 00000000..3f22e637 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/royal_door" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_fence.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_fence.json new file mode 100644 index 00000000..077c93c7 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_fence.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/royal_fence_inventory" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_fence_gate.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_fence_gate.json new file mode 100644 index 00000000..38ab16b5 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_fence_gate.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/royal_fence_gate" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_flowering_leaves.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_flowering_leaves.json new file mode 100644 index 00000000..581868a9 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_flowering_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/royal_flowering_leaves" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_boots.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_boots.json new file mode 100644 index 00000000..26c2c0d9 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_boots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/royal_guardian/royal_guardian_boots" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_chestplate.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_chestplate.json new file mode 100644 index 00000000..089cf9e0 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_chestplate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/royal_guardian/royal_guardian_chestplate" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_helmet.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_helmet.json new file mode 100644 index 00000000..ca1c2762 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_helmet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/royal_guardian/royal_guardian_helmet" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_leggings.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_leggings.json new file mode 100644 index 00000000..5a367fbc --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_leggings.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/royal_guardian/royal_guardian_leggings" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_shield.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_shield.json new file mode 100644 index 00000000..06f63826 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_shield.json @@ -0,0 +1,641 @@ +{ + "format_version": "1.21.11", + "credit": "Made with Blockbench", + "texture_size": [ + 64, + 64 + ], + "textures": { + "0": "antarchy:item/royal_guardian/royal_guardian_shield", + "particle": "antarchy:item/royal_guardian/royal_guardian_shield" + }, + "elements": [ + { + "from": [ + 7, + 2, + 9 + ], + "to": [ + 9, + 8, + 14 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 0.5, + -3, + 7 + ] + }, + "faces": { + "north": { + "uv": [ + 10.75, + 10.25, + 11.25, + 11.75 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 6, + 9, + 7.25, + 10.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 2, + 11, + 2.5, + 12.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 6, + 10.5, + 7.25, + 12 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 3, + 12.25, + 2.5, + 11 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 3.5, + 11, + 3, + 12.25 + ], + "texture": "#0" + } + } + }, + { + "from": [ + -2.185, + -5.81, + 6.99 + ], + "to": [ + 9.11, + 5.485, + 9.01 + ], + "rotation": { + "angle": 45, + "axis": "z", + "origin": [ + 8, + 4.375, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 8, + 0, + 10.75, + 2.75 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 7.25, + 9, + 7.75, + 11.75 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 8, + 2.75, + 10.75, + 5.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 10.75, + 0, + 11.25, + 2.75 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 13.5, + 3.25, + 10.75, + 2.75 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 13.5, + 3.25, + 10.75, + 3.75 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 0, + -2, + 7 + ], + "to": [ + 16, + 16, + 9 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 0.5, + 0, + 7 + ] + }, + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 4.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 9, + 0.5, + 13.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 4, + 0, + 8, + 4.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0.5, + 9, + 1, + 13.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 6, + 9.5, + 2, + 9 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 6, + 9.5, + 2, + 10 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 0, + -10, + 7 + ], + "to": [ + 16, + -2, + 9 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 0.5, + -8, + 7 + ] + }, + "faces": { + "north": { + "uv": [ + 12, + 12, + 16, + 14 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 11.5, + 11.5, + 12, + 16 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 12, + 14, + 16, + 16 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 11.5, + 11.5, + 12, + 16 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 6, + 9.5, + 2, + 9 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 6, + 9.5, + 2, + 10 + ], + "texture": "#0" + } + } + }, + { + "from": [ + -2.535, + -6.36, + 6.59 + ], + "to": [ + 9.41, + 5.585, + 9.41 + ], + "rotation": { + "angle": 45, + "axis": "z", + "origin": [ + 8, + 4.175, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 8, + 5.5, + 10.75, + 8.25 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 10.75, + 3.75, + 11.25, + 6.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 8, + 5.5, + 10.75, + 8.25 + ], + "rotation": 90, + "texture": "#0" + }, + "west": { + "uv": [ + 10.75, + 6.5, + 11.25, + 9.25 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 13.5, + 9.75, + 10.75, + 9.25 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 13.5, + 9.75, + 10.75, + 10.25 + ], + "texture": "#0" + } + } + }, + { + "from": [ + -0.4, + -2.3, + 6.6 + ], + "to": [ + 16.4, + 16.5, + 9.4 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 0.5, + 0.1, + 7 + ] + }, + "faces": { + "north": { + "uv": [ + 0, + 4.5, + 4, + 9 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 1, + 9, + 1.5, + 13.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 4.5, + 4, + 9 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 1.5, + 9, + 2, + 13.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 6, + 10.5, + 2, + 10 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 6, + 10.5, + 2, + 11 + ], + "texture": "#0" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 0 + ], + "translation": [ + 3.75, + 1, + 2.5 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + -90, + 0 + ], + "translation": [ + 3.5, + 1, + 2.5 + ] + }, + "firstperson_righthand": { + "rotation": [ + -5, + 0, + 5 + ], + "translation": [ + 0.5, + 1, + 0.5 + ], + "scale": [ + 0.6, + 0.6, + 0.6 + ] + }, + "firstperson_lefthand": { + "rotation": [ + -5, + 0, + 5 + ], + "translation": [ + 0.5, + 1, + 0.5 + ], + "scale": [ + 0.6, + 0.6, + 0.6 + ] + }, + "ground": { + "translation": [ + 0, + 4, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + -154.79, + 33.92, + -172.56 + ], + "translation": [ + 0, + 1.5, + 0 + ], + "scale": [ + 0.5, + 0.5, + 0.5 + ] + }, + "fixed": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.5, + 0.5, + 0.5 + ] + }, + "on_shelf": { + "rotation": [ + 0, + -180, + 0 + ] + } + }, + "groups": [ + { + "name": "royal_guardian_shield", + "origin": [ + 8, + 5.075, + 1 + ], + "scope": 0, + "color": 0, + "children": [ + { + "name": "handle", + "origin": [ + 0, + -3, + 0 + ], + "scope": 0, + "color": 0, + "children": [ + 0 + ] + }, + { + "name": "shield_base", + "origin": [ + 8, + 5.075, + 1 + ], + "scope": 0, + "color": 0, + "children": [ + 1, + 2, + 3 + ] + }, + { + "name": "shield_border", + "origin": [ + 8, + 5.075, + 1 + ], + "scope": 0, + "color": 0, + "children": [ + 4, + 5 + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_sword.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_sword.json new file mode 100644 index 00000000..52bdad62 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_sword.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:item/royal_guardian_sword_held" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_sword_gui.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_sword_gui.json new file mode 100644 index 00000000..b5d36e70 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_sword_gui.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "gui_light": "front", + "textures": { + "layer0": "antarchy:item/royal_guardian/royal_guardian_sword_item" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_sword_held.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_sword_held.json new file mode 100644 index 00000000..ea1c3aa6 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_guardian_sword_held.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:item/big_bertha_held" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_hanging_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_hanging_sign.json new file mode 100644 index 00000000..834b318f --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/royal_hanging_sign" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_leaves.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_leaves.json new file mode 100644 index 00000000..8ddad63f --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/royal_leaves" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_log.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_log.json new file mode 100644 index 00000000..07579509 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_log.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/royal_log" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_planks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_planks.json new file mode 100644 index 00000000..dd927174 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_planks.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/royal_planks" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_pressure_plate.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_pressure_plate.json new file mode 100644 index 00000000..d15606c7 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_pressure_plate.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/royal_pressure_plate" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_sapling.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_sapling.json new file mode 100644 index 00000000..38e384b1 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:block/royal/royal_sapling" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_sign.json new file mode 100644 index 00000000..64c35d26 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/royal_sign" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_slab.json new file mode 100644 index 00000000..1ccd35dc --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_slab.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/royal_slab" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_stairs.json new file mode 100644 index 00000000..88702599 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_stairs.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/royal_stairs" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_trapdoor.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_trapdoor.json new file mode 100644 index 00000000..36ef37ec --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/royal_trapdoor_bottom" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_wood.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_wood.json new file mode 100644 index 00000000..cd402133 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/royal_wood.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/royal_wood" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/spiraling_vines.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/spiraling_vines.json new file mode 100644 index 00000000..34722e97 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/spiraling_vines.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:block/spiraling_vines/spiraling_vines" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/stripped_royal_log.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/stripped_royal_log.json new file mode 100644 index 00000000..0a0dcadc --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/stripped_royal_log.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/stripped_royal_log" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/stripped_royal_wood.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/stripped_royal_wood.json new file mode 100644 index 00000000..a6cd2cd8 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/stripped_royal_wood.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/stripped_royal_wood" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/stripped_truffalo_log.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/stripped_truffalo_log.json new file mode 100644 index 00000000..9a94f22d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/stripped_truffalo_log.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/stripped_truffalo_log" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/stripped_truffalo_wood.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/stripped_truffalo_wood.json new file mode 100644 index 00000000..e8177a87 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/stripped_truffalo_wood.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/stripped_truffalo_wood" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/tigers_eye_block.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/tigers_eye_block.json new file mode 100644 index 00000000..798488ea --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/truffalo_boat.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_boat.json new file mode 100644 index 00000000..0cd6be3a --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_boat.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/truffalo_boat" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_button.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_button.json new file mode 100644 index 00000000..c2e537d5 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_button.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/truffalo_button_inventory" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_chest_boat.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_chest_boat.json new file mode 100644 index 00000000..f56d001d --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_chest_boat.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/truffalo_chest_boat" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_door.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_door.json new file mode 100644 index 00000000..f17cc2af --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/truffalo_door_icon" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_fence.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_fence.json new file mode 100644 index 00000000..84d3cfc5 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_fence.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/truffalo_fence_inventory" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_fence_gate.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_fence_gate.json new file mode 100644 index 00000000..de020a1c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_fence_gate.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/truffalo_fence_gate" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_hanging_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_hanging_sign.json new file mode 100644 index 00000000..17b9e158 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/truffalo_hanging_sign" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_log.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_log.json new file mode 100644 index 00000000..48291bb5 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_log.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/truffalo_log" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_planks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_planks.json new file mode 100644 index 00000000..da2c17aa --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_planks.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/truffalo_planks" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_pressure_plate.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_pressure_plate.json new file mode 100644 index 00000000..a3cb5958 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_pressure_plate.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/truffalo_pressure_plate" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_sapling.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_sapling.json new file mode 100644 index 00000000..5b511f0c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:block/truffalo/truffalo_sapling" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_sign.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_sign.json new file mode 100644 index 00000000..6e4306fa --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/truffalo_sign" + } +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_slab.json new file mode 100644 index 00000000..e51ff718 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_slab.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/truffalo_slab" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_stairs.json new file mode 100644 index 00000000..ff7b4285 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_stairs.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/truffalo_stairs" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_trapdoor.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_trapdoor.json new file mode 100644 index 00000000..fb71d598 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_trapdoor_bottom" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_wood.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_wood.json new file mode 100644 index 00000000..e49ad0c7 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/truffalo_wood.json @@ -0,0 +1,4 @@ +{ + "parent": "antarchy:block/truffalo_wood" +} + diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite.json new file mode 100644 index 00000000..9a0ebac5 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/typhonite" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_brick_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_brick_slab.json new file mode 100644 index 00000000..d9bbcd71 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/typhonite_brick_slab" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_brick_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_brick_stairs.json new file mode 100644 index 00000000..1bfdf85f --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/typhonite_brick_stairs" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_brick_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_brick_wall.json new file mode 100644 index 00000000..f72624fd --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/typhonite_brick_wall_inventory" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_bricks.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_bricks.json new file mode 100644 index 00000000..a134652e --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/typhonite_bricks" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_pillar.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_pillar.json new file mode 100644 index 00000000..5fda63ac --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_pillar.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/typhonite_pillar" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_slab.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_slab.json new file mode 100644 index 00000000..0540cb41 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/typhonite_slab" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_spike.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_spike.json new file mode 100644 index 00000000..bf381c64 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_spike.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:block/typhonite/typhonite_spike_tip" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_stairs.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_stairs.json new file mode 100644 index 00000000..9d48e3d7 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/typhonite_stairs" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_wall.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_wall.json new file mode 100644 index 00000000..bf51dc69 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/typhonite_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/typhonite_wall_inventory" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/veined_typhonite.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/veined_typhonite.json new file mode 100644 index 00000000..70be2ac7 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/veined_typhonite.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/veined_typhonite" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/verdant_nyxium.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/verdant_nyxium.json new file mode 100644 index 00000000..d33dec43 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/verdant_nyxium.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/verdant_nyxium" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/verdant_roots.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/verdant_roots.json new file mode 100644 index 00000000..a0335473 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/verdant_roots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:block/verdant_roots" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/vortex_charge.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/vortex_charge.json new file mode 100644 index 00000000..b61f7405 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/vortex_charge.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/vortex_charge" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/vortex_lens.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/vortex_lens.json new file mode 100644 index 00000000..38b2ea85 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/vortex_lens.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/vortex_lens" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/vortex_spawn_egg.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/vortex_spawn_egg.json new file mode 100644 index 00000000..ddd15597 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/vortex_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/whirlflower.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/whirlflower.json new file mode 100644 index 00000000..7320dcba --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/whirlflower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/whirlflower" + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/white_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/white_truffalo_tuft.json new file mode 100644 index 00000000..986b18b0 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/white_truffalo_tuft.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_tuft_white" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/models/item/worm_hook.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/worm_hook.json new file mode 100644 index 00000000..06f8ad58 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/worm_spawn_egg.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/worm_spawn_egg.json new file mode 100644 index 00000000..ddd15597 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/worm_tooth.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/worm_tooth.json new file mode 100644 index 00000000..0f87351f --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/assets/antarchy/models/item/yellow_truffalo_tuft.json b/common-1.20.1/src/main/resources/assets/antarchy/models/item/yellow_truffalo_tuft.json new file mode 100644 index 00000000..dcee9c1c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/models/item/yellow_truffalo_tuft.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/truffalo_tuft_yellow" +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/place1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/place1.ogg new file mode 100644 index 00000000..b1b95928 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/place1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/place2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/place2.ogg new file mode 100644 index 00000000..54f3611c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/place2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/place3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/place3.ogg new file mode 100644 index 00000000..950d902d Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/place3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/place4.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/place4.ogg new file mode 100644 index 00000000..db465b5a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/place4.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/scafold1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/scafold1.ogg new file mode 100644 index 00000000..373038c9 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/scafold1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/scafold2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/scafold2.ogg new file mode 100644 index 00000000..1449700b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/scafold2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/scafold3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/scafold3.ogg new file mode 100644 index 00000000..d8f73657 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/scafold3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/scafold4.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/scafold4.ogg new file mode 100644 index 00000000..e0819869 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/scafold4.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/step1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/step1.ogg new file mode 100644 index 00000000..b431df66 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/step1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/step2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/step2.ogg new file mode 100644 index 00000000..6f19db49 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/step2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/step3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/step3.ogg new file mode 100644 index 00000000..91b2ec18 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/step3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/step4.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/step4.ogg new file mode 100644 index 00000000..f7eda876 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/block/antimetal/step4.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break1.ogg new file mode 100644 index 00000000..3b3d3598 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break2.ogg new file mode 100644 index 00000000..8e87d6f5 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break3.ogg new file mode 100644 index 00000000..171ac9db Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break4.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break4.ogg new file mode 100644 index 00000000..c0a05c54 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break4.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break5.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break5.ogg new file mode 100644 index 00000000..f4df51f5 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break5.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break6.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break6.ogg new file mode 100644 index 00000000..42a1e88c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/heart_break6.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart1.ogg new file mode 100644 index 00000000..31022041 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart2.ogg new file mode 100644 index 00000000..2de459c3 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart3.ogg new file mode 100644 index 00000000..42ec62a3 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart4.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart4.ogg new file mode 100644 index 00000000..71d601ac Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart4.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart5.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart5.ogg new file mode 100644 index 00000000..7619d30d Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart5.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart6.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart6.ogg new file mode 100644 index 00000000..1825e8eb Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/event/mob_effects/bloodglass_ward/regen_heart6.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip1.ogg new file mode 100644 index 00000000..37388cb8 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip2.ogg new file mode 100644 index 00000000..9544281a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip3.ogg new file mode 100644 index 00000000..7ecc349f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip4.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip4.ogg new file mode 100644 index 00000000..7bd068fc Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip4.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip5.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip5.ogg new file mode 100644 index 00000000..715c9997 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip5.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip6.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip6.ogg new file mode 100644 index 00000000..6a58a546 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/armor/blood_crystal_equip6.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/blood_crystal_katana/dash1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/blood_crystal_katana/dash1.ogg new file mode 100644 index 00000000..c02aece2 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/blood_crystal_katana/dash1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/blood_crystal_katana/dash2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/blood_crystal_katana/dash2.ogg new file mode 100644 index 00000000..a8aff517 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/blood_crystal_katana/dash2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/blood_crystal_katana/dash3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/blood_crystal_katana/dash3.ogg new file mode 100644 index 00000000..9fe29dfd Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/blood_crystal_katana/dash3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/blood_crystal_katana/dash4.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/blood_crystal_katana/dash4.ogg new file mode 100644 index 00000000..83723048 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/blood_crystal_katana/dash4.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/drop1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/drop1.ogg new file mode 100644 index 00000000..d56db707 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/drop1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/drop2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/drop2.ogg new file mode 100644 index 00000000..ecc2f9ef Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/drop2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/drop3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/drop3.ogg new file mode 100644 index 00000000..fd157fd6 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/drop3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/dryfire1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/dryfire1.ogg new file mode 100644 index 00000000..e572e6e6 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/dryfire1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/dryfire2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/dryfire2.ogg new file mode 100644 index 00000000..057becca Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/dryfire2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/dryfire3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/dryfire3.ogg new file mode 100644 index 00000000..fdab2ce7 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/dryfire3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/hold_loop.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/hold_loop.ogg new file mode 100644 index 00000000..6b00f1bc Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/hold_loop.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/launch1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/launch1.ogg new file mode 100644 index 00000000..1cf38962 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/launch1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/launch2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/launch2.ogg new file mode 100644 index 00000000..b2719abd Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/launch2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/launch3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/launch3.ogg new file mode 100644 index 00000000..8a168362 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/launch3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/pickup1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/pickup1.ogg new file mode 100644 index 00000000..80193aec Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/pickup1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/pickup2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/pickup2.ogg new file mode 100644 index 00000000..25deedb8 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/pickup2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/pickup3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/pickup3.ogg new file mode 100644 index 00000000..bfdc3b61 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/gravity_gun/pickup3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/portal_invalid_surface_swt_01.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/portal_invalid_surface_swt_01.ogg new file mode 100644 index 00000000..5120a913 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/portal_invalid_surface_swt_01.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_blue_01.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_blue_01.ogg new file mode 100644 index 00000000..68d866bc Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_blue_01.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_blue_02.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_blue_02.ogg new file mode 100644 index 00000000..8c8c407c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_blue_02.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_blue_03.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_blue_03.ogg new file mode 100644 index 00000000..9dc78b09 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_blue_03.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_red_01.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_red_01.ogg new file mode 100644 index 00000000..97e7625a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_red_01.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_red_02.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_red_02.ogg new file mode 100644 index 00000000..efd191a8 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_red_02.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_red_03.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_red_03.ogg new file mode 100644 index 00000000..ae4c631b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/portalgun/wpn_portal_gun_fire_red_03.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/critshot1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/critshot1.ogg new file mode 100644 index 00000000..14de0b37 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/critshot1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/critshot2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/critshot2.ogg new file mode 100644 index 00000000..253a27a5 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/critshot2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/critshot3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/critshot3.ogg new file mode 100644 index 00000000..28c64d62 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/critshot3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/growraycharge.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/growraycharge.ogg new file mode 100644 index 00000000..26141c45 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/growraycharge.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/growrayloop.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/growrayloop.ogg new file mode 100644 index 00000000..16f54232 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/growrayloop.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/mediumshot1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/mediumshot1.ogg new file mode 100644 index 00000000..34d0456a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/mediumshot1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/mediumshot2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/mediumshot2.ogg new file mode 100644 index 00000000..a1920058 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/mediumshot2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/mediumshot3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/mediumshot3.ogg new file mode 100644 index 00000000..037e4a8d Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/mediumshot3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/shrinkraycharge.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/shrinkraycharge.ogg new file mode 100644 index 00000000..9534da3a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/shrinkraycharge.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/shrinkrayloop.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/shrinkrayloop.ogg new file mode 100644 index 00000000..8fe2682a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/shrinkrayloop.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/weakshot1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/weakshot1.ogg new file mode 100644 index 00000000..15740ce5 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/weakshot1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/weakshot2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/weakshot2.ogg new file mode 100644 index 00000000..ee2023a3 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/weakshot2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/weakshot3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/weakshot3.ogg new file mode 100644 index 00000000..3fdcbffa Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/size_ray/weakshot3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/squidzooka/squizooka1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/squidzooka/squizooka1.ogg new file mode 100644 index 00000000..21ef89d4 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/squidzooka/squizooka1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/squidzooka/squizooka2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/squidzooka/squizooka2.ogg new file mode 100644 index 00000000..e4e60fda Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/squidzooka/squizooka2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/squidzooka/squizooka3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/squidzooka/squizooka3.ogg new file mode 100644 index 00000000..15a12ac9 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/squidzooka/squizooka3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/squidzooka/squizooka4.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/squidzooka/squizooka4.ogg new file mode 100644 index 00000000..6f93376b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/item/squidzooka/squizooka4.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/dimensional_tear/tear_close.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/dimensional_tear/tear_close.ogg new file mode 100644 index 00000000..46fc775f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/dimensional_tear/tear_close.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/dimensional_tear/tear_creature_leaves.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/dimensional_tear/tear_creature_leaves.ogg new file mode 100644 index 00000000..da3c1519 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/dimensional_tear/tear_creature_leaves.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/dimensional_tear/tear_idle.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/dimensional_tear/tear_idle.ogg new file mode 100644 index 00000000..9b25bb0f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/dimensional_tear/tear_idle.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/dimensional_tear/tear_open.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/dimensional_tear/tear_open.ogg new file mode 100644 index 00000000..80ddc7b1 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/dimensional_tear/tear_open.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/bite_1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/bite_1.ogg new file mode 100644 index 00000000..fdfe41d3 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/bite_1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/bite_2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/bite_2.ogg new file mode 100644 index 00000000..e51a52f3 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/bite_2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/black_hole_shoot.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/black_hole_shoot.ogg new file mode 100644 index 00000000..6fbf0fc5 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/black_hole_shoot.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/death.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/death.ogg new file mode 100644 index 00000000..d3a7526a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/death.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/decree.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/decree.ogg new file mode 100644 index 00000000..9329727b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/decree.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/fireball_shoot.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/fireball_shoot.ogg new file mode 100644 index 00000000..8a3cd9d3 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/fireball_shoot.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/fly_loop_1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/fly_loop_1.ogg new file mode 100644 index 00000000..4c691968 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/fly_loop_1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/fly_loop_2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/fly_loop_2.ogg new file mode 100644 index 00000000..86ef6dfc Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/fly_loop_2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/hurt_1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/hurt_1.ogg new file mode 100644 index 00000000..d5d1495c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/hurt_1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/hurt_2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/hurt_2.ogg new file mode 100644 index 00000000..0b185acb Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/hurt_2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/hurt_3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/hurt_3.ogg new file mode 100644 index 00000000..3ce39f3a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/hurt_3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/idle_1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/idle_1.ogg new file mode 100644 index 00000000..555e69e8 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/idle_1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/idle_2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/idle_2.ogg new file mode 100644 index 00000000..d5355b08 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/idle_2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/idle_3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/idle_3.ogg new file mode 100644 index 00000000..6dd5e572 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/idle_3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/judgement.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/judgement.ogg new file mode 100644 index 00000000..a19d0263 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/judgement.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/laser_shoot.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/laser_shoot.ogg new file mode 100644 index 00000000..0889d9b1 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/laser_shoot.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/roar.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/roar.ogg new file mode 100644 index 00000000..ea0b2b87 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/roar.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/stomp.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/stomp.ogg new file mode 100644 index 00000000..a99a4efb Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/stomp.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/success.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/success.ogg new file mode 100644 index 00000000..f477e84f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/success.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/walk_1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/walk_1.ogg new file mode 100644 index 00000000..74c80257 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/walk_1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/walk_2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/walk_2.ogg new file mode 100644 index 00000000..e52603a5 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/walk_2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/walk_3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/walk_3.ogg new file mode 100644 index 00000000..861adaff Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/walk_3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/wing_flap.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/wing_flap.ogg new file mode 100644 index 00000000..89bd7cd0 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/king/wing_flap.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/bite1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/bite1.ogg new file mode 100644 index 00000000..59a0ee3a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/bite1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/flt4.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/flt4.ogg new file mode 100644 index 00000000..b1cffa7b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/flt4.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/fly1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/fly1.ogg new file mode 100644 index 00000000..6319fc08 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/fly1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/fly2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/fly2.ogg new file mode 100644 index 00000000..c9f2e383 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/fly2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/fly3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/fly3.ogg new file mode 100644 index 00000000..6f3dd34a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/fly3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/fly5.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/fly5.ogg new file mode 100644 index 00000000..58243908 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/fly5.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/fly6.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/fly6.ogg new file mode 100644 index 00000000..a8ccecab Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/fly6.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/idle1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/idle1.ogg new file mode 100644 index 00000000..cd2e45f4 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/idle1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/idle2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/idle2.ogg new file mode 100644 index 00000000..342f727f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/idle2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/shoot1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/shoot1.ogg new file mode 100644 index 00000000..cd90afe7 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/shoot1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/walk1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/walk1.ogg new file mode 100644 index 00000000..4b24dd3a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/walk1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/walk2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/walk2.ogg new file mode 100644 index 00000000..e1a1e6aa Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/walk2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/walk3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/walk3.ogg new file mode 100644 index 00000000..ae165bf4 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/walk3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/walk4.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/walk4.ogg new file mode 100644 index 00000000..6695876f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/prince/walk4.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/bite1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/bite1.ogg new file mode 100644 index 00000000..59a0ee3a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/bite1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/flt4.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/flt4.ogg new file mode 100644 index 00000000..b1cffa7b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/flt4.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/fly1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/fly1.ogg new file mode 100644 index 00000000..6319fc08 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/fly1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/fly2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/fly2.ogg new file mode 100644 index 00000000..c9f2e383 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/fly2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/fly3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/fly3.ogg new file mode 100644 index 00000000..6f3dd34a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/fly3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/fly5.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/fly5.ogg new file mode 100644 index 00000000..58243908 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/fly5.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/fly6.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/fly6.ogg new file mode 100644 index 00000000..a8ccecab Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/fly6.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/idle1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/idle1.ogg new file mode 100644 index 00000000..cd2e45f4 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/idle1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/idle2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/idle2.ogg new file mode 100644 index 00000000..342f727f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/idle2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/shoot1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/shoot1.ogg new file mode 100644 index 00000000..cd90afe7 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/shoot1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/walk1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/walk1.ogg new file mode 100644 index 00000000..4b24dd3a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/walk1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/walk2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/walk2.ogg new file mode 100644 index 00000000..e1a1e6aa Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/walk2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/walk3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/walk3.ogg new file mode 100644 index 00000000..ae165bf4 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/walk3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/walk4.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/walk4.ogg new file mode 100644 index 00000000..6695876f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/princess/walk4.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/bite_1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/bite_1.ogg new file mode 100644 index 00000000..fdfe41d3 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/bite_1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/bite_2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/bite_2.ogg new file mode 100644 index 00000000..e51a52f3 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/bite_2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/black_hole_shoot.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/black_hole_shoot.ogg new file mode 100644 index 00000000..6fbf0fc5 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/black_hole_shoot.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/death.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/death.ogg new file mode 100644 index 00000000..d3a7526a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/death.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/fireball_shoot.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/fireball_shoot.ogg new file mode 100644 index 00000000..8a3cd9d3 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/fireball_shoot.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/fly_loop_1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/fly_loop_1.ogg new file mode 100644 index 00000000..4c691968 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/fly_loop_1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/fly_loop_2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/fly_loop_2.ogg new file mode 100644 index 00000000..86ef6dfc Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/fly_loop_2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/hurt_1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/hurt_1.ogg new file mode 100644 index 00000000..d5d1495c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/hurt_1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/hurt_2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/hurt_2.ogg new file mode 100644 index 00000000..0b185acb Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/hurt_2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/hurt_3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/hurt_3.ogg new file mode 100644 index 00000000..3ce39f3a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/hurt_3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/idle_1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/idle_1.ogg new file mode 100644 index 00000000..555e69e8 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/idle_1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/idle_2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/idle_2.ogg new file mode 100644 index 00000000..d5355b08 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/idle_2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/idle_3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/idle_3.ogg new file mode 100644 index 00000000..6dd5e572 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/idle_3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/laser_shoot.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/laser_shoot.ogg new file mode 100644 index 00000000..0889d9b1 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/laser_shoot.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/queen_beam_end.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/queen_beam_end.ogg new file mode 100644 index 00000000..e65e0b0d Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/queen_beam_end.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/queen_beam_loop.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/queen_beam_loop.ogg new file mode 100644 index 00000000..39d5a606 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/queen_beam_loop.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/queen_beam_start.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/queen_beam_start.ogg new file mode 100644 index 00000000..75bb6463 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/queen_beam_start.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/roar.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/roar.ogg new file mode 100644 index 00000000..ea0b2b87 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/roar.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/stomp.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/stomp.ogg new file mode 100644 index 00000000..a99a4efb Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/stomp.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/walk_1.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/walk_1.ogg new file mode 100644 index 00000000..74c80257 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/walk_1.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/walk_2.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/walk_2.ogg new file mode 100644 index 00000000..e52603a5 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/walk_2.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/walk_3.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/walk_3.ogg new file mode 100644 index 00000000..861adaff Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/walk_3.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/wing_flap.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/wing_flap.ogg new file mode 100644 index 00000000..89bd7cd0 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/mob/queen/wing_flap.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/music/game/elythia/idyll.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/music/game/elythia/idyll.ogg new file mode 100644 index 00000000..aca6e786 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/music/game/elythia/idyll.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/music/game/thoraxis/assimilation.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/music/game/thoraxis/assimilation.ogg new file mode 100644 index 00000000..781c8c05 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/music/game/thoraxis/assimilation.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/music/game/thoraxis/haywire.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/music/game/thoraxis/haywire.ogg new file mode 100644 index 00000000..775c93b6 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/music/game/thoraxis/haywire.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/music/game/thoraxis/inversion_layer.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/music/game/thoraxis/inversion_layer.ogg new file mode 100644 index 00000000..14b22f67 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/music/game/thoraxis/inversion_layer.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_enter_01.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_enter_01.ogg new file mode 100644 index 00000000..fcc0b0e2 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_enter_01.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_enter_02.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_enter_02.ogg new file mode 100644 index 00000000..78e137bc Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_enter_02.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_enter_03.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_enter_03.ogg new file mode 100644 index 00000000..c7cc7443 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_enter_03.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_exit_01.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_exit_01.ogg new file mode 100644 index 00000000..5a2086a6 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_exit_01.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_exit_02.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_exit_02.ogg new file mode 100644 index 00000000..1e8d7ca4 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_exit_02.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_fizzle_01.ogg b/common-1.20.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.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_fizzle_01.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_fizzle_02.ogg b/common-1.20.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.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_fizzle_02.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_01.ogg b/common-1.20.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.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_01.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_02.ogg b/common-1.20.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.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_02.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_03.ogg b/common-1.20.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.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_03.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_04.ogg b/common-1.20.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.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_invalid_surface_04.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_open_blue_01.ogg b/common-1.20.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.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_open_blue_01.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_open_red_01.ogg b/common-1.20.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.20.1/src/main/resources/assets/antarchy/sounds/portal/portal_open_red_01.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/wpn_portal_ambient_lp_01.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/wpn_portal_ambient_lp_01.ogg new file mode 100644 index 00000000..36d50e8b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/portal/wpn_portal_ambient_lp_01.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/sounds/records/underside.ogg b/common-1.20.1/src/main/resources/assets/antarchy/sounds/records/underside.ogg new file mode 100644 index 00000000..325657e7 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/sounds/records/underside.ogg differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/broodstone/mossy_broodstone_bricks.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/broodstone/mossy_broodstone_bricks.png new file mode 100644 index 00000000..742fa33f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/broodstone/mossy_broodstone_bricks.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/computer/computer.animation.json b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/computer/computer.animation.json new file mode 100644 index 00000000..062e648c --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/computer/computer.animation.json @@ -0,0 +1,158 @@ +{ + "format_version": "1.8.0", + "animations": { + "on_state": { + "loop": true, + "bones": { + "on": { + "scale": { + "vector": [1, 1, 1] + } + }, + "white_flash": { + "scale": { + "vector": [0, 0, 0] + } + }, + "off": { + "scale": { + "vector": [0, 0, 0] + } + }, + "computer_on": { + "scale": { + "vector": [1, 1, 1] + } + } + } + }, + "off_state": { + "loop": true, + "bones": { + "on": { + "scale": { + "vector": [0, 0, 0] + } + }, + "white_flash": { + "scale": { + "vector": [0, 0, 0] + } + }, + "off": { + "scale": { + "vector": [1, 1, 1] + } + }, + "computer_on": { + "scale": { + "vector": [0, 0, 0] + } + } + } + }, + "turn_on": { + "loop": "hold_on_last_frame", + "animation_length": 0.4583, + "bones": { + "on": { + "scale": { + "0.0": { + "vector": [1, 0, 0] + }, + "0.125": { + "vector": [1, 0, 0] + }, + "0.2917": { + "vector": [1, 1, 1], + "easing": "easeInOutCubic" + } + } + }, + "white_flash": { + "scale": { + "0.0": { + "vector": [1, 0, 0] + }, + "0.0417": { + "vector": [1, 0.2, 0.2] + }, + "0.2083": { + "vector": [1, 1, 1], + "easing": "easeInOutQuint" + } + } + }, + "off": { + "scale": { + "vector": [1, 1, 1] + } + }, + "computer_on": { + "scale": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "vector": [1, 1, 1] + } + } + } + } + }, + "turn_off": { + "loop": "hold_on_last_frame", + "animation_length": 0.4583, + "bones": { + "on": { + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "0.25": { + "vector": [1, 0, 1], + "easing": "easeInOutQuint" + } + } + }, + "white_flash": { + "scale": { + "0.0": { + "vector": [1, 1, 0] + }, + "0.125": { + "vector": [1, 1, 0] + }, + "0.375": { + "vector": [1, 0, 0], + "easing": "easeInOutQuart" + } + } + }, + "off": { + "scale": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "vector": [1, 1, 1] + } + } + }, + "computer_on": { + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "0.25": { + "vector": [1, 1, 1] + }, + "0.2917": { + "vector": [0, 0, 0] + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/computer/computer.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/computer/computer.png new file mode 100644 index 00000000..e24c294c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/computer/computer.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/computer/computer.png.mcmeta b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/computer/computer.png.mcmeta new file mode 100644 index 00000000..68df5399 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/computer/computer.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 5 + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/duskbell.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/duskbell.png new file mode 100644 index 00000000..815915cb Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/duskbell.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/glimming_reed/glimmering_reed_bottom.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/glimming_reed/glimmering_reed_bottom.png new file mode 100644 index 00000000..85a83030 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/glimming_reed/glimmering_reed_bottom.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/glimming_reed/glimmering_reed_top.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/glimming_reed/glimmering_reed_top.png new file mode 100644 index 00000000..039939ed Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/glimming_reed/glimmering_reed_top.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/gorevine.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/gorevine.png new file mode 100644 index 00000000..6554dba8 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/gorevine.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/gorevine_hanging.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/gorevine_hanging.png new file mode 100644 index 00000000..8d565fa8 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/gorevine_hanging.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/large_nadir_fern_bottom.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/large_nadir_fern_bottom.png new file mode 100644 index 00000000..8af6a69c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/large_nadir_fern_bottom.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/large_nadir_fern_top.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/large_nadir_fern_top.png new file mode 100644 index 00000000..419965d7 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/large_nadir_fern_top.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/loam/chiseled_loam_bricks.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/loam/chiseled_loam_bricks.png new file mode 100644 index 00000000..95c68d74 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/loam/chiseled_loam_bricks.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/loam/loam.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/loam/loam.png new file mode 100644 index 00000000..3bfd1130 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/loam/loam.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/loam/loam_bricks.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/loam/loam_bricks.png new file mode 100644 index 00000000..cc145caf Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/loam/loam_bricks.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/loam/packed_loam.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/loam/packed_loam.png new file mode 100644 index 00000000..c7b125cb Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/loam/packed_loam.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/mossy_nyxite_bricks.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/mossy_nyxite_bricks.png new file mode 100644 index 00000000..d56c0766 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/mossy_nyxite_bricks.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/chiseled_myrmite.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/chiseled_myrmite.png new file mode 100644 index 00000000..57b1cce0 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/chiseled_myrmite.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/mossy_myrmite_bricks.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/mossy_myrmite_bricks.png new file mode 100644 index 00000000..14e25ae7 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/mossy_myrmite_bricks.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/myrmite.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/myrmite.png new file mode 100644 index 00000000..1a74738a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/myrmite.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/myrmite_bricks.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/myrmite_bricks.png new file mode 100644 index 00000000..c3b9c5b0 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/myrmite_bricks.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/myrmite_coal_ore.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/myrmite_coal_ore.png new file mode 100644 index 00000000..a2c6baed Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/myrmite_coal_ore.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/myrmite_pillar.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/myrmite_pillar.png new file mode 100644 index 00000000..f5c7265a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/myrmite_pillar.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/myrmite_pillar_top.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/myrmite_pillar_top.png new file mode 100644 index 00000000..64ac39dd Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/myrmite_pillar_top.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/polished_myrmite.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/polished_myrmite.png new file mode 100644 index 00000000..ece32bb6 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/myrmite/polished_myrmite.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/nadir/nadir_roots.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/nadir/nadir_roots.png new file mode 100644 index 00000000..f7139408 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/nadir/nadir_roots.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/nadir_fern.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/nadir_fern.png new file mode 100644 index 00000000..4ab2811d Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/nadir_fern.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/nadir_nyxium.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/nadir_nyxium.png new file mode 100644 index 00000000..38ff4859 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/nadir_nyxium.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/nadir_nyxium_top.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/nadir_nyxium_top.png new file mode 100644 index 00000000..a20b3776 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/nadir_nyxium_top.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/prince_egg.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/prince_egg.png new file mode 100644 index 00000000..5b5b5510 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/prince_egg.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/princess_egg.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/princess_egg.png new file mode 100644 index 00000000..4ddb21cb Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/princess_egg.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/flowering_royal_leaves.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/flowering_royal_leaves.png new file mode 100644 index 00000000..aab75834 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/flowering_royal_leaves.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_door_bottom.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_door_bottom.png new file mode 100644 index 00000000..134594de Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_door_bottom.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_door_top.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_door_top.png new file mode 100644 index 00000000..c456f321 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_door_top.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_leaves.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_leaves.png new file mode 100644 index 00000000..6ea7989c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_leaves.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_log.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_log.png new file mode 100644 index 00000000..5e0b207b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_log.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_log_top.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_log_top.png new file mode 100644 index 00000000..44b163be Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_log_top.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_planks.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_planks.png new file mode 100644 index 00000000..66579e30 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_planks.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_sapling.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_sapling.png new file mode 100644 index 00000000..934a7030 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_sapling.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_trapdoor.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_trapdoor.png new file mode 100644 index 00000000..29da24b7 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/royal_trapdoor.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/stripped_royal_log.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/stripped_royal_log.png new file mode 100644 index 00000000..e98967a5 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/stripped_royal_log.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/stripped_royal_log_top.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/stripped_royal_log_top.png new file mode 100644 index 00000000..fdbff426 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/royal/stripped_royal_log_top.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/spiraling_vines/spiraling_vines.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/spiraling_vines/spiraling_vines.png new file mode 100644 index 00000000..6c632369 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/spiraling_vines/spiraling_vines.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/spiraling_vines/spiraling_vines_top.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/spiraling_vines/spiraling_vines_top.png new file mode 100644 index 00000000..8b169130 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/spiraling_vines/spiraling_vines_top.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/tigers_eye_block.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/tigers_eye_block.png new file mode 100644 index 00000000..11784c45 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/tigers_eye_block.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/black_truffalo_tuft.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/black_truffalo_tuft.png new file mode 100644 index 00000000..ef62679f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/black_truffalo_tuft.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/blue_truffalo_tuft.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/blue_truffalo_tuft.png new file mode 100644 index 00000000..d9e2aa2b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/blue_truffalo_tuft.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/brown_truffalo_tuft.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/brown_truffalo_tuft.png new file mode 100644 index 00000000..1fdf6237 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/brown_truffalo_tuft.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/cyan_truffalo_tuft.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/cyan_truffalo_tuft.png new file mode 100644 index 00000000..c3b52028 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/cyan_truffalo_tuft.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/gray_truffalo_tuft.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/gray_truffalo_tuft.png new file mode 100644 index 00000000..f542dfc6 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/gray_truffalo_tuft.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/green_truffalo_tuft.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/green_truffalo_tuft.png new file mode 100644 index 00000000..0ed3065a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/green_truffalo_tuft.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/light_blue_truffalo_tuft.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/light_blue_truffalo_tuft.png new file mode 100644 index 00000000..467511f5 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/light_blue_truffalo_tuft.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/light_gray_truffalo_tuft.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/light_gray_truffalo_tuft.png new file mode 100644 index 00000000..0780b4a3 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/light_gray_truffalo_tuft.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/lime_truffalo_tuft.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/lime_truffalo_tuft.png new file mode 100644 index 00000000..8b51565b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/lime_truffalo_tuft.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/magenta_truffalo_tuft.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/magenta_truffalo_tuft.png new file mode 100644 index 00000000..85d3c10d Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/magenta_truffalo_tuft.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/orange_truffalo_tuft.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/orange_truffalo_tuft.png new file mode 100644 index 00000000..dd2c967c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/orange_truffalo_tuft.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/pink_truffalo_tuft.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/pink_truffalo_tuft.png new file mode 100644 index 00000000..9f801da1 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/pink_truffalo_tuft.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/purple_truffalo_tuft.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/purple_truffalo_tuft.png new file mode 100644 index 00000000..6decc264 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/purple_truffalo_tuft.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/red_truffalo_tuft.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/red_truffalo_tuft.png new file mode 100644 index 00000000..e44eafed Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/red_truffalo_tuft.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_door_bottom.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_door_bottom.png new file mode 100644 index 00000000..77d00dc2 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_door_bottom.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_door_top.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_door_top.png new file mode 100644 index 00000000..e1a8c21d Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_door_top.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_log.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_log.png new file mode 100644 index 00000000..17971a49 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_log.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_log_stripped.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_log_stripped.png new file mode 100644 index 00000000..bc7e17b9 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_log_stripped.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_log_top.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_log_top.png new file mode 100644 index 00000000..d983393d Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_log_top.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_planks.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_planks.png new file mode 100644 index 00000000..95b92894 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_planks.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_sapling.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_sapling.png new file mode 100644 index 00000000..6c376013 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_sapling.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_stripped_log_top.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_stripped_log_top.png new file mode 100644 index 00000000..44e88d3d Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_stripped_log_top.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_trapdoor.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_trapdoor.png new file mode 100644 index 00000000..f22f3e83 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_trapdoor.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_wood.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_wood.png new file mode 100644 index 00000000..bb00c048 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_wood.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_wood_stripped.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_wood_stripped.png new file mode 100644 index 00000000..0e1cc176 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/truffalo_wood_stripped.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/white_truffalo_tuft.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/white_truffalo_tuft.png new file mode 100644 index 00000000..3eb0f204 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/white_truffalo_tuft.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/yellow_truffalo_tuft.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/yellow_truffalo_tuft.png new file mode 100644 index 00000000..28428144 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/truffalo/yellow_truffalo_tuft.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/chiseled_typhonite.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/chiseled_typhonite.png new file mode 100644 index 00000000..ab0ddcf2 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/chiseled_typhonite.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/polished_typhonite.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/polished_typhonite.png new file mode 100644 index 00000000..276387ea Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/polished_typhonite.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite.png new file mode 100644 index 00000000..5ab28aca Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_bricks.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_bricks.png new file mode 100644 index 00000000..79931a69 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_bricks.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_pillar.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_pillar.png new file mode 100644 index 00000000..9e7df260 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_pillar.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_pillar_top.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_pillar_top.png new file mode 100644 index 00000000..ebd36d45 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_pillar_top.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_spike_base.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_spike_base.png new file mode 100644 index 00000000..934f57b7 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_spike_base.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_spike_middle.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_spike_middle.png new file mode 100644 index 00000000..d72a5718 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_spike_middle.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_spike_tip.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_spike_tip.png new file mode 100644 index 00000000..b40d80d7 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/typhonite_spike_tip.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/veined_typhonite.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/veined_typhonite.png new file mode 100644 index 00000000..2b8fda91 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/veined_typhonite.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/veined_typhonite.png.mcmeta b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/veined_typhonite.png.mcmeta new file mode 100644 index 00000000..557410d3 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/typhonite/veined_typhonite.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 10, + "interpolate": true + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/verdant_nyxium.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/verdant_nyxium.png new file mode 100644 index 00000000..a0c1b67f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/verdant_nyxium.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/verdant_nyxium_old.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/verdant_nyxium_old.png new file mode 100644 index 00000000..15e56c68 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/verdant_nyxium_old.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/verdant_nyxium_top.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/verdant_nyxium_top.png new file mode 100644 index 00000000..bbd1227f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/verdant_nyxium_top.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/verdant_roots.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/verdant_roots.png new file mode 100644 index 00000000..0fcd3007 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/verdant_roots.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/vortex_lens/vortex_lens_off.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/vortex_lens/vortex_lens_off.png new file mode 100644 index 00000000..1db94a61 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/vortex_lens/vortex_lens_off.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/vortex_lens/vortex_lens_on.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/vortex_lens/vortex_lens_on.png new file mode 100644 index 00000000..6eb5df1c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/vortex_lens/vortex_lens_on.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/vortex_lens/vortex_lens_on_bluestone.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/vortex_lens/vortex_lens_on_bluestone.png new file mode 100644 index 00000000..9b1ac807 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/vortex_lens/vortex_lens_on_bluestone.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/block/whirlflower.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/whirlflower.png new file mode 100644 index 00000000..6840c24b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/block/whirlflower.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/boat/royal.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/boat/royal.png new file mode 100644 index 00000000..df67c79e Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/boat/royal.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/boat/truffalo.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/boat/truffalo.png new file mode 100644 index 00000000..f31cbffa Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/boat/truffalo.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/chest_boat/royal.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/chest_boat/royal.png new file mode 100644 index 00000000..4b533b60 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/chest_boat/royal.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/chest_boat/truffalo.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/chest_boat/truffalo.png new file mode 100644 index 00000000..9fef333a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/chest_boat/truffalo.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard.png new file mode 100644 index 00000000..6ef485c4 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_black.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_black.png new file mode 100644 index 00000000..06b2f774 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_black.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_blue.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_blue.png new file mode 100644 index 00000000..9c50a66e Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_blue.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_brown.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_brown.png new file mode 100644 index 00000000..274bf7de Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_brown.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_cyan.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_cyan.png new file mode 100644 index 00000000..ae6d82e5 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_cyan.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_gray.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_gray.png new file mode 100644 index 00000000..9ed6c10f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_gray.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_green.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_green.png new file mode 100644 index 00000000..1406b85f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_green.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_light_blue.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_light_blue.png new file mode 100644 index 00000000..b5078399 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_light_blue.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_light_gray.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_light_gray.png new file mode 100644 index 00000000..1cdbafcd Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_light_gray.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_lime.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_lime.png new file mode 100644 index 00000000..c7e14bff Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_lime.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_magenta.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_magenta.png new file mode 100644 index 00000000..7962ac6c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_magenta.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_orange.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_orange.png new file mode 100644 index 00000000..7306f589 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_orange.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_pink.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_pink.png new file mode 100644 index 00000000..65450f02 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_pink.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_purple.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_purple.png new file mode 100644 index 00000000..c17e5ac9 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_purple.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_red.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_red.png new file mode 100644 index 00000000..2d666c5a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_red.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_white.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_white.png new file mode 100644 index 00000000..e031f0ea Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_white.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_yellow.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_yellow.png new file mode 100644 index 00000000..b780973f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/hoverboard/hoverboard_yellow.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_ball.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_ball.png new file mode 100644 index 00000000..d7a971ed Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_ball.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_ball.png.mcmeta b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_ball.png.mcmeta new file mode 100644 index 00000000..73e1d375 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_ball.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 4, + "interpolate": false + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_beam_end_1.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_beam_end_1.png new file mode 100644 index 00000000..d0cad387 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_beam_end_1.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_beam_end_2.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_beam_end_2.png new file mode 100644 index 00000000..0433b515 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_beam_end_2.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_beam_inner.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_beam_inner.png new file mode 100644 index 00000000..7e58eb62 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_beam_inner.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_beam_outer.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_beam_outer.png new file mode 100644 index 00000000..69056eaf Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/fire_beam_outer.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_ball.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_ball.png new file mode 100644 index 00000000..4104a295 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_ball.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_beam_end_1.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_beam_end_1.png new file mode 100644 index 00000000..8262c0c2 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_beam_end_1.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_beam_end_2.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_beam_end_2.png new file mode 100644 index 00000000..b6877cf9 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_beam_end_2.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_beam_inner.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_beam_inner.png new file mode 100644 index 00000000..04c70a60 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_beam_inner.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_beam_outer.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_beam_outer.png new file mode 100644 index 00000000..0bc2be3a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_beam_outer.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_spike.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_spike.png new file mode 100644 index 00000000..7ea12b56 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/ice_spike.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/king.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/king.png new file mode 100644 index 00000000..8e2d262a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/king.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/lightning_beam_end_1.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/lightning_beam_end_1.png new file mode 100644 index 00000000..be830b53 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/lightning_beam_end_1.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/lightning_beam_end_2.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/lightning_beam_end_2.png new file mode 100644 index 00000000..fdd601cd Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/lightning_beam_end_2.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/lightning_beam_inner.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/lightning_beam_inner.png new file mode 100644 index 00000000..c1b4cfcb Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/lightning_beam_inner.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/lightning_beam_outer.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/lightning_beam_outer.png new file mode 100644 index 00000000..261a037e Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/king/lightning_beam_outer.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/manticore.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/manticore.png new file mode 100644 index 00000000..63794925 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/manticore.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/prince.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/prince.png new file mode 100644 index 00000000..114adf50 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/prince.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/princess.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/princess.png new file mode 100644 index 00000000..e53c38db Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/princess.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/black_hole.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/black_hole.png new file mode 100644 index 00000000..17d72ada Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/black_hole.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/black_hole.png.mcmeta b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/black_hole.png.mcmeta new file mode 100644 index 00000000..78df88c4 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/black_hole.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/dream_fire_ball.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/dream_fire_ball.png new file mode 100644 index 00000000..e98f1ee9 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/dream_fire_ball.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/dream_fire_ball.png.mcmeta b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/dream_fire_ball.png.mcmeta new file mode 100644 index 00000000..73e1d375 --- /dev/null +++ b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/dream_fire_ball.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 4, + "interpolate": false + } +} diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen.png new file mode 100644 index 00000000..cf671104 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_beam_end_1.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_beam_end_1.png new file mode 100644 index 00000000..c3f6118e Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_beam_end_1.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_beam_end_2.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_beam_end_2.png new file mode 100644 index 00000000..f93fca80 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_beam_end_2.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_beam_inner.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_beam_inner.png new file mode 100644 index 00000000..7658c7b8 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_beam_inner.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_beam_outer.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_beam_outer.png new file mode 100644 index 00000000..74143aa6 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_beam_outer.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_end_1.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_end_1.png new file mode 100644 index 00000000..a3e06013 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_end_1.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_end_2.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_end_2.png new file mode 100644 index 00000000..be3c8a6d Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_end_2.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_inner.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_inner.png new file mode 100644 index 00000000..a1e8c354 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_inner.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_outer.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_outer.png new file mode 100644 index 00000000..81ee65f5 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_outer.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_emissive.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_emissive.png new file mode 100644 index 00000000..bbda49e0 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_emissive.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_end_1.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_end_1.png new file mode 100644 index 00000000..c3f6118e Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_end_1.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_end_2.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_end_2.png new file mode 100644 index 00000000..f93fca80 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_end_2.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_inner.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_inner.png new file mode 100644 index 00000000..7658c7b8 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_inner.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_outer.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_outer.png new file mode 100644 index 00000000..74143aa6 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_outer.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_end_1.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_end_1.png new file mode 100644 index 00000000..cc82be0d Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_end_1.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_end_2.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_end_2.png new file mode 100644 index 00000000..db0829f2 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_end_2.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_inner.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_inner.png new file mode 100644 index 00000000..5bd02124 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_inner.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_outer.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_outer.png new file mode 100644 index 00000000..74143aa6 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_outer.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/signs/hanging/royal.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/signs/hanging/royal.png new file mode 100644 index 00000000..6ab7ac11 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/signs/hanging/royal.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/signs/hanging/truffalo.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/signs/hanging/truffalo.png new file mode 100644 index 00000000..d333dc7f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/signs/hanging/truffalo.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/signs/royal.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/signs/royal.png new file mode 100644 index 00000000..0d540f09 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/signs/royal.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/signs/truffalo.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/signs/truffalo.png new file mode 100644 index 00000000..26572d84 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/signs/truffalo.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/vortex.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/vortex.png new file mode 100644 index 00000000..0efc0b4f Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/vortex.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/worm/worm_medium.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/worm/worm_medium.png new file mode 100644 index 00000000..ac0d2450 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/worm/worm_medium.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/worm/worm_small.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/worm/worm_small.png new file mode 100644 index 00000000..1ac97196 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/entity/worm/worm_small.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/healthbars/king_background.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/healthbars/king_background.png new file mode 100644 index 00000000..63e1f5ee Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/healthbars/king_background.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/healthbars/king_progress.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/healthbars/king_progress.png new file mode 100644 index 00000000..039eb71c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/healthbars/king_progress.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/healthbars/queen_background.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/healthbars/queen_background.png new file mode 100644 index 00000000..d00943de Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/healthbars/queen_background.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/healthbars/queen_progress.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/healthbars/queen_progress.png new file mode 100644 index 00000000..44d7f25b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/healthbars/queen_progress.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/king.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/king.png new file mode 100644 index 00000000..e38eec7c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/king.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/queen.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/queen.png new file mode 100644 index 00000000..529ab677 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/boss_bars/queen.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/hanging_signs/royal.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/hanging_signs/royal.png new file mode 100644 index 00000000..c633da9c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/gui/hanging_signs/royal.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/broodfruit_cobbler.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/broodfruit_cobbler.png new file mode 100644 index 00000000..a4f15e66 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/broodfruit_cobbler.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/cooked_cheep.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/cooked_cheep.png new file mode 100644 index 00000000..799225a7 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/cooked_cheep.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/duskbell.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/duskbell.png new file mode 100644 index 00000000..815915cb Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/duskbell.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/eye_of_the_storm/eye_of_the_storm.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/eye_of_the_storm/eye_of_the_storm.png new file mode 100644 index 00000000..34c1dd08 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/eye_of_the_storm/eye_of_the_storm.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/eye_of_the_storm/eye_of_the_storm_item.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/eye_of_the_storm/eye_of_the_storm_item.png new file mode 100644 index 00000000..fb7e7bf7 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/eye_of_the_storm/eye_of_the_storm_item.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/floppy_disk/cavaryn_floppy_disk.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/floppy_disk/cavaryn_floppy_disk.png new file mode 100644 index 00000000..499d4485 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/floppy_disk/cavaryn_floppy_disk.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/floppy_disk/elythia_floppy_disk.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/floppy_disk/elythia_floppy_disk.png new file mode 100644 index 00000000..46de61e4 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/floppy_disk/elythia_floppy_disk.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/floppy_disk/floppy_disk.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/floppy_disk/floppy_disk.png new file mode 100644 index 00000000..501ce91c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/floppy_disk/floppy_disk.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/floppy_disk/thoraxis_floppy_disk.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/floppy_disk/thoraxis_floppy_disk.png new file mode 100644 index 00000000..6591dfd0 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/floppy_disk/thoraxis_floppy_disk.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/gorevine.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/gorevine.png new file mode 100644 index 00000000..8d565fa8 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/gorevine.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard.png new file mode 100644 index 00000000..f824c2d1 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_black.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_black.png new file mode 100644 index 00000000..1d50da36 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_black.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_blue.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_blue.png new file mode 100644 index 00000000..aafc3cc9 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_blue.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_brown.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_brown.png new file mode 100644 index 00000000..952c99fd Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_brown.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_cyan.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_cyan.png new file mode 100644 index 00000000..5df34e92 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_cyan.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_gray.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_gray.png new file mode 100644 index 00000000..574b6e19 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_gray.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_green.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_green.png new file mode 100644 index 00000000..e8cfea98 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_green.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_light_blue.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_light_blue.png new file mode 100644 index 00000000..cd5cc534 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_light_blue.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_light_gray.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_light_gray.png new file mode 100644 index 00000000..909fcc74 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_light_gray.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_lime.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_lime.png new file mode 100644 index 00000000..5ad641d5 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_lime.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_magenta.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_magenta.png new file mode 100644 index 00000000..ee256674 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_magenta.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_orange.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_orange.png new file mode 100644 index 00000000..fb3b3287 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_orange.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_pink.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_pink.png new file mode 100644 index 00000000..b95d3da5 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_pink.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_purple.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_purple.png new file mode 100644 index 00000000..bc1653fc Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_purple.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_red.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_red.png new file mode 100644 index 00000000..c09ce14b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_red.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_white.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_white.png new file mode 100644 index 00000000..55c29050 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_white.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_yellow.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_yellow.png new file mode 100644 index 00000000..bdfac340 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/hoverboard/hoverboard_yellow.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/large_nadir_fern.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/large_nadir_fern.png new file mode 100644 index 00000000..419965d7 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/large_nadir_fern.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/manticore_wing.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/manticore_wing.png new file mode 100644 index 00000000..f94581be Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/manticore_wing.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/manticore_wings_item.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/manticore_wings_item.png new file mode 100644 index 00000000..c58dd0ba Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/manticore_wings_item.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/music_disc_underside.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/music_disc_underside.png new file mode 100644 index 00000000..53b90928 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/music_disc_underside.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/nadir_fern.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/nadir_fern.png new file mode 100644 index 00000000..4ab2811d Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/nadir_fern.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/portal_gun/portal_gun_item.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/portal_gun/portal_gun_item.png new file mode 100644 index 00000000..55853791 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/portal_gun/portal_gun_item.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_battleaxe.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_battleaxe.png new file mode 100644 index 00000000..6dd03dc4 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_battleaxe.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_battleaxe_item.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_battleaxe_item.png new file mode 100644 index 00000000..35cdd152 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_battleaxe_item.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_boots.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_boots.png new file mode 100644 index 00000000..f1545c75 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_boots.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_chestplate.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_chestplate.png new file mode 100644 index 00000000..5a3875bb Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_chestplate.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_helmet.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_helmet.png new file mode 100644 index 00000000..cd6b5eb7 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_helmet.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_leggings.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_leggings.png new file mode 100644 index 00000000..86b9d927 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant/royal_assailant_leggings.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant_staff_item.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant_staff_item.png new file mode 100644 index 00000000..1c5faf10 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_assailant_staff_item.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_boat.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_boat.png new file mode 100644 index 00000000..68582c8b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_boat.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_chest_boat.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_chest_boat.png new file mode 100644 index 00000000..7d3287ec Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_chest_boat.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_door.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_door.png new file mode 100644 index 00000000..032ffa0b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_door.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_boots.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_boots.png new file mode 100644 index 00000000..acb141b0 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_boots.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_chestplate.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_chestplate.png new file mode 100644 index 00000000..3e685c5c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_chestplate.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_helmet.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_helmet.png new file mode 100644 index 00000000..d9f0dadd Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_helmet.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_leggings.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_leggings.png new file mode 100644 index 00000000..b7ac2f27 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_leggings.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_shield.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_shield.png new file mode 100644 index 00000000..a22810fd Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_shield.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_sword.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_sword.png new file mode 100644 index 00000000..415bf5c9 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_sword.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_sword_item.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_sword_item.png new file mode 100644 index 00000000..ae37d90c Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_guardian/royal_guardian_sword_item.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_hanging_sign.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_hanging_sign.png new file mode 100644 index 00000000..6a69c8f8 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_hanging_sign.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_sign.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_sign.png new file mode 100644 index 00000000..61d45255 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/royal_sign.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/truffalo_boat.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/truffalo_boat.png new file mode 100644 index 00000000..4b99cfc8 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/truffalo_boat.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/truffalo_chest_boat.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/truffalo_chest_boat.png new file mode 100644 index 00000000..38a2d279 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/truffalo_chest_boat.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/truffalo_door_icon.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/truffalo_door_icon.png new file mode 100644 index 00000000..f28fe7b0 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/truffalo_door_icon.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/truffalo_hanging_sign.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/truffalo_hanging_sign.png new file mode 100644 index 00000000..553c00fd Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/truffalo_hanging_sign.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/truffalo_sign.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/truffalo_sign.png new file mode 100644 index 00000000..34e8876a Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/truffalo_sign.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/vortex_charge.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/vortex_charge.png new file mode 100644 index 00000000..70a00987 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/vortex_charge.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/whirlflower.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/whirlflower.png new file mode 100644 index 00000000..6840c24b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/whirlflower.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/worm_hook.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/worm_hook.png new file mode 100644 index 00000000..8bd36c6b Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/worm_hook.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/item/worm_tooth.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/worm_tooth.png new file mode 100644 index 00000000..605e55aa Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/item/worm_tooth.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/mob_effect/commanded.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/mob_effect/commanded.png new file mode 100644 index 00000000..b73a5b56 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/mob_effect/commanded.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/mob_effect/contracted.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/mob_effect/contracted.png new file mode 100644 index 00000000..d8527f96 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/mob_effect/contracted.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/mob_effect/dilated.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/mob_effect/dilated.png new file mode 100644 index 00000000..d8527f96 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/mob_effect/dilated.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/models/armor/manticore_wings.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/models/armor/manticore_wings.png new file mode 100644 index 00000000..2e0ec9b4 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/models/armor/manticore_wings.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/models/armor/royal_assailant_layer_1.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/models/armor/royal_assailant_layer_1.png new file mode 100644 index 00000000..15b57d45 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/models/armor/royal_assailant_layer_1.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/models/armor/royal_assailant_layer_2.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/models/armor/royal_assailant_layer_2.png new file mode 100644 index 00000000..10784a59 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/models/armor/royal_assailant_layer_2.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/models/armor/royal_guardian_layer_1.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/models/armor/royal_guardian_layer_1.png new file mode 100644 index 00000000..2f9deaef Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/models/armor/royal_guardian_layer_1.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/models/armor/royal_guardian_layer_2.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/models/armor/royal_guardian_layer_2.png new file mode 100644 index 00000000..37b6dc46 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/models/armor/royal_guardian_layer_2.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/models/item/portal_gun.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/models/item/portal_gun.png new file mode 100644 index 00000000..4d2ef2af Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/models/item/portal_gun.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/models/item/royal_assailant_staff.png b/common-1.20.1/src/main/resources/assets/antarchy/textures/models/item/royal_assailant_staff.png new file mode 100644 index 00000000..8aece857 Binary files /dev/null and b/common-1.20.1/src/main/resources/assets/antarchy/textures/models/item/royal_assailant_staff.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/vfx/portal_gun_black_hole.png b/common-1.20.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.20.1/src/main/resources/assets/antarchy/textures/vfx/portal_gun_black_hole.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/vfx/portal_gun_portal_blue.png b/common-1.20.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.20.1/src/main/resources/assets/antarchy/textures/vfx/portal_gun_portal_blue.png differ diff --git a/common-1.20.1/src/main/resources/assets/antarchy/textures/vfx/portal_gun_portal_orange.png b/common-1.20.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.20.1/src/main/resources/assets/antarchy/textures/vfx/portal_gun_portal_orange.png differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/a_lovely_world.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/a_lovely_world.json new file mode 100644 index 00000000..aff9ec92 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/a_lovely_world.json @@ -0,0 +1,42 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "discover_stampys_house": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "structures": "antarchy:stampys_house" + } + } + } + ] + }, + "trigger": "minecraft:location" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.a_lovely_world.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:ouranwood_door" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.a_lovely_world.title" + } + }, + "requirements": [ + [ + "discover_stampys_house" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/anger_the_hive_mind.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/anger_the_hive_mind.json new file mode 100644 index 00000000..b7bf748b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/anger_the_hive_mind.json @@ -0,0 +1,47 @@ +{ + "parent": "antarchy:visit_cavaryn", + "criteria": { + "kill_horde_common": { + "conditions": { + "entity": { + "type": { + "tag": "antarchy:horde_common" + } + }, + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "dimension": "antarchy:cavaryn" + } + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "text": "Kill one of Cavaryn's horde-common creatures" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:creeping_horror_spawn_egg" + }, + "show_toast": true, + "title": { + "text": "Anger the Hive Mind" + } + }, + "requirements": [ + [ + "kill_horde_common" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/ant_arch_of_elythia.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/ant_arch_of_elythia.json new file mode 100644 index 00000000..e19595ba --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/ant_arch_of_elythia.json @@ -0,0 +1,58 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "kill_basilisk": { + "conditions": { + "entity": { + "type": "antarchy:basilisk" + } + }, + "trigger": "minecraft:player_killed_entity" + }, + "kill_toreterror": { + "conditions": { + "entity": { + "type": "antarchy:toreterror" + } + }, + "trigger": "minecraft:player_killed_entity" + }, + "obtain_brutalfly_elytra": { + "conditions": { + "items": [ + { + "items": "antarchy:brutalfly_elytra" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "text": "Defeat Basilisk, Toreterror, and Brutalfly to claim mastery of Elythia" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "antarchy:brutalfly_elytra" + }, + "show_toast": true, + "title": { + "text": "Ant-arch of Elythia" + } + }, + "requirements": [ + [ + "kill_basilisk" + ], + [ + "kill_toreterror" + ], + [ + "obtain_brutalfly_elytra" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/apple_of_my_eye.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/apple_of_my_eye.json new file mode 100644 index 00000000..65b0a56e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/apple_of_my_eye.json @@ -0,0 +1,29 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "impossible": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.apple_of_my_eye.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:glimmer_bottle" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.apple_of_my_eye.title" + } + }, + "requirements": [ + [ + "impossible" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/beetle_buddies.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/beetle_buddies.json new file mode 100644 index 00000000..e5837da4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/beetle_buddies.json @@ -0,0 +1,34 @@ +{ + "parent": "antarchy:anger_the_hive_mind", + "criteria": { + "tame_hercules_beetle": { + "conditions": { + "entity": { + "type": "antarchy:hercules_beetle" + } + }, + "trigger": "minecraft:tame_animal" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.beetle_buddies.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:hercules_beetle_spawn_egg" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.beetle_buddies.title" + } + }, + "requirements": [ + [ + "tame_hercules_beetle" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/behavioral_correction.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/behavioral_correction.json new file mode 100644 index 00000000..f8a7ed03 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/behavioral_correction.json @@ -0,0 +1,36 @@ +{ + "parent": "antarchy:herculean_task", + "criteria": { + "obtain_attitude_adjuster": { + "conditions": { + "items": [ + { + "items": "antarchy:attitude_adjuster" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.behavioral_correction.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:attitude_adjuster" + }, + "show_toast": true, + "title": { + "text": "Ant-ger Management" + } + }, + "requirements": [ + [ + "obtain_attitude_adjuster" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/brutalfly.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/brutalfly.json new file mode 100644 index 00000000..6cf7e04a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/brutalfly.json @@ -0,0 +1,36 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "brutalfly": { + "conditions": { + "items": [ + { + "items": "antarchy:brutalfly_elytra" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.brutalfly.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:brutalfly_elytra" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.brutalfly.title" + } + }, + "requirements": [ + [ + "brutalfly" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/bug_apetit.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/bug_apetit.json new file mode 100644 index 00000000..c76db0e8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/bug_apetit.json @@ -0,0 +1,36 @@ +{ + "parent": "antarchy:anger_the_hive_mind", + "criteria": { + "eat_cooked_bug_meat": { + "conditions": { + "item": { + "items": [ + "antarchy:cooked_bug_meat" + ] + } + }, + "trigger": "minecraft:consume_item" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.bug_apetit.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:cooked_bug_meat" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.bug_apetit.title" + } + }, + "requirements": [ + [ + "eat_cooked_bug_meat" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/bugged_out.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/bugged_out.json new file mode 100644 index 00000000..a3f500bf --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/bugged_out.json @@ -0,0 +1,34 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "kill_alpha_mantis": { + "conditions": { + "entity": { + "type": "antarchy:alpha_mantis" + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.bugged_out.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "antarchy:alpha_mantis_spawn_egg" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.bugged_out.title" + } + }, + "requirements": [ + [ + "kill_alpha_mantis" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/cancel_out.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/cancel_out.json new file mode 100644 index 00000000..7ab8bd36 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/cancel_out.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "cancel_out": { + "conditions": { + "effects": { + "antarchy:growth": {}, + "antarchy:shrinking": {} + } + }, + "trigger": "minecraft:effects_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.cancel_out.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "antarchy:shrink_ray" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.cancel_out.title" + } + }, + "requirements": [ + [ + "cancel_out" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/challenge_games.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/challenge_games.json new file mode 100644 index 00000000..10510c63 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/challenge_games.json @@ -0,0 +1,42 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "discover_ruined_arena": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "structures": "antarchy:ruined_arena" + } + } + } + ] + }, + "trigger": "minecraft:location" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.challenge_games.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:stone_bricks" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.challenge_games.title" + } + }, + "requirements": [ + [ + "discover_ruined_arena" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/cops_n_robbers.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/cops_n_robbers.json new file mode 100644 index 00000000..00a17b4a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/cops_n_robbers.json @@ -0,0 +1,42 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "discover_ruined_prison": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "structures": "antarchy:ruined_prison" + } + } + } + ] + }, + "trigger": "minecraft:location" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.cops_n_robbers.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "minecraft:iron_bars" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.cops_n_robbers.title" + } + }, + "requirements": [ + [ + "discover_ruined_prison" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/davy_jones_locker.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/davy_jones_locker.json new file mode 100644 index 00000000..e5c3e555 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/davy_jones_locker.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "kill_kraken": { + "conditions": { + "entity": { + "type": "antarchy:kraken" + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.davy_jones_locker.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:kraken_tooth" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.davy_jones_locker.title" + } + }, + "requirements": [ + [ + "kill_kraken" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/deerly_beloved.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/deerly_beloved.json new file mode 100644 index 00000000..3ac0b74d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/deerly_beloved.json @@ -0,0 +1,29 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "impossible": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.deerly_beloved.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:glimmer_bottle" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.deerly_beloved.title" + } + }, + "requirements": [ + [ + "impossible" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/dont_let_the_bed_bugs_bite.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/dont_let_the_bed_bugs_bite.json new file mode 100644 index 00000000..d7724e5a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/dont_let_the_bed_bugs_bite.json @@ -0,0 +1,34 @@ +{ + "parent": "antarchy:visit_thoraxis", + "criteria": { + "kill_bed_bug": { + "conditions": { + "entity": { + "type": "antarchy:bed_bug" + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.dont_let_the_bed_bugs_bite.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:bed_bug_egg" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.dont_let_the_bed_bugs_bite.title" + } + }, + "requirements": [ + [ + "kill_bed_bug" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/duct_tape.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/duct_tape.json new file mode 100644 index 00000000..7d5bb26a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/duct_tape.json @@ -0,0 +1,29 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "impossible": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.duct_tape.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:duct_tape" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.duct_tape.title" + } + }, + "requirements": [ + [ + "impossible" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/elkcellent_choice.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/elkcellent_choice.json new file mode 100644 index 00000000..294cc956 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/elkcellent_choice.json @@ -0,0 +1,29 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "impossible": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.elkcellent_choice.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:glimmer_bottle" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.elkcellent_choice.title" + } + }, + "requirements": [ + [ + "impossible" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/enter_the_speed_force.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/enter_the_speed_force.json new file mode 100644 index 00000000..34f3141d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/enter_the_speed_force.json @@ -0,0 +1,39 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "become_contracted": { + "conditions": { + "effects": { + "antarchy:contracted": {} + } + }, + "trigger": "minecraft:effects_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.enter_the_speed_force.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "minecraft:potion", + "components": { + "minecraft:potion_contents": { + "potion": "antarchy:time_contraction" + } + } + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.enter_the_speed_force.title" + } + }, + "requirements": [ + [ + "become_contracted" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/fallen_king_crown.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/fallen_king_crown.json new file mode 100644 index 00000000..03a01b96 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/fallen_king_crown.json @@ -0,0 +1,36 @@ +{ + "parent": "antarchy:fallen_kingdom_castle", + "criteria": { + "fallen_king_crown": { + "conditions": { + "items": [ + { + "items": "antarchy:fallen_king_crown" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.fallen_king_crown.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "antarchy:fallen_king_crown" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.fallen_king_crown.title" + } + }, + "requirements": [ + [ + "fallen_king_crown" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/fallen_kingdom_castle.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/fallen_kingdom_castle.json new file mode 100644 index 00000000..98ff40ab --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/fallen_kingdom_castle.json @@ -0,0 +1,42 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "discover_castle": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "structures": "antarchy:fallen_kingdom_castle" + } + } + } + ] + }, + "trigger": "minecraft:location" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.fallen_kingdom_castle.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "minecraft:stone_bricks" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.fallen_kingdom_castle.title" + } + }, + "requirements": [ + [ + "discover_castle" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/gravity_gun_craft.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/gravity_gun_craft.json new file mode 100644 index 00000000..4c612dc1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/gravity_gun_craft.json @@ -0,0 +1,36 @@ +{ + "parent": "antarchy:visit_thoraxis", + "criteria": { + "craft_gravity_gun": { + "conditions": { + "items": [ + { + "items": "antarchy:gravity_gun" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.gravity_gun_craft.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:gravity_gun" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.gravity_gun_craft.title" + } + }, + "requirements": [ + [ + "craft_gravity_gun" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/growth_ray_craft.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/growth_ray_craft.json new file mode 100644 index 00000000..97c9bdb8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/growth_ray_craft.json @@ -0,0 +1,36 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "craft_growth_ray": { + "conditions": { + "items": [ + { + "items": "antarchy:growth_ray" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.growth_ray_craft.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:growth_ray" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.growth_ray_craft.title" + } + }, + "requirements": [ + [ + "craft_growth_ray" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/herculean_task.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/herculean_task.json new file mode 100644 index 00000000..70dc5d59 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/herculean_task.json @@ -0,0 +1,34 @@ +{ + "parent": "antarchy:anger_the_hive_mind", + "criteria": { + "kill_hercules_beetle": { + "conditions": { + "entity": { + "type": "antarchy:hercules_beetle" + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.herculean_task.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:hercules_horn" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.herculean_task.title" + } + }, + "requirements": [ + [ + "kill_hercules_beetle" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/hey_listen.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/hey_listen.json new file mode 100644 index 00000000..8d624e78 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/hey_listen.json @@ -0,0 +1,29 @@ +{ + "parent": "antarchy:visit_thoraxis", + "criteria": { + "impossible": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.hey_listen.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:reverie_spawn_egg" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.hey_listen.title" + } + }, + "requirements": [ + [ + "impossible" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/hoppy_together.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/hoppy_together.json new file mode 100644 index 00000000..9d5bdb62 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/hoppy_together.json @@ -0,0 +1,29 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "impossible": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.hoppy_together.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:glimmer_bottle" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.hoppy_together.title" + } + }, + "requirements": [ + [ + "impossible" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/i_am_the_nightmare.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/i_am_the_nightmare.json new file mode 100644 index 00000000..8d5a8a76 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/i_am_the_nightmare.json @@ -0,0 +1,61 @@ +{ + "parent": "antarchy:visit_thoraxis", + "criteria": { + "kill_emperor_scorpion": { + "conditions": { + "entity": { + "type": "antarchy:emperor_scorpion" + } + }, + "trigger": "minecraft:player_killed_entity" + }, + "kill_lucid": { + "conditions": { + "entity": { + "type": "antarchy:lucid" + } + }, + "trigger": "minecraft:player_killed_entity" + }, + "kill_nightmare": { + "conditions": { + "entity": { + "type": "antarchy:nightmare" + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "text": "Defeat Emperor Scorpion, Lucid, and Nightmare" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:potion", + "components": { + "minecraft:potion_contents": { + "potion": "antarchy:dread" + } + } + }, + "show_toast": true, + "title": { + "text": "I Am the Nightmare" + } + }, + "requirements": [ + [ + "kill_emperor_scorpion" + ], + [ + "kill_lucid" + ], + [ + "kill_nightmare" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/in_the_upside_down.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/in_the_upside_down.json new file mode 100644 index 00000000..e1f2e4aa --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/in_the_upside_down.json @@ -0,0 +1,39 @@ +{ + "parent": "antarchy:visit_thoraxis", + "criteria": { + "become_inverted": { + "conditions": { + "effects": { + "antarchy:inverted": {} + } + }, + "trigger": "minecraft:effects_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.in_the_upside_down.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "minecraft:potion", + "components": { + "minecraft:potion_contents": { + "potion": "antarchy:inversion" + } + } + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.in_the_upside_down.title" + } + }, + "requirements": [ + [ + "become_inverted" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/kill_toreterror.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/kill_toreterror.json new file mode 100644 index 00000000..040750d4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/kill_toreterror.json @@ -0,0 +1,34 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "kill_toreterror": { + "conditions": { + "entity": { + "type": "antarchy:toreterror" + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.kill_toreterror.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "antarchy:toreterror_spawn_egg" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.kill_toreterror.title" + } + }, + "requirements": [ + [ + "kill_toreterror" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/let_it_die.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/let_it_die.json new file mode 100644 index 00000000..1b50319f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/let_it_die.json @@ -0,0 +1,81 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "obtain_truffalo_tuft": { + "conditions": { + "items": [ + { + "items": "antarchy:white_truffalo_tuft" + }, + { + "items": "antarchy:orange_truffalo_tuft" + }, + { + "items": "antarchy:magenta_truffalo_tuft" + }, + { + "items": "antarchy:light_blue_truffalo_tuft" + }, + { + "items": "antarchy:yellow_truffalo_tuft" + }, + { + "items": "antarchy:lime_truffalo_tuft" + }, + { + "items": "antarchy:pink_truffalo_tuft" + }, + { + "items": "antarchy:gray_truffalo_tuft" + }, + { + "items": "antarchy:light_gray_truffalo_tuft" + }, + { + "items": "antarchy:cyan_truffalo_tuft" + }, + { + "items": "antarchy:purple_truffalo_tuft" + }, + { + "items": "antarchy:blue_truffalo_tuft" + }, + { + "items": "antarchy:brown_truffalo_tuft" + }, + { + "items": "antarchy:green_truffalo_tuft" + }, + { + "items": "antarchy:red_truffalo_tuft" + }, + { + "items": "antarchy:black_truffalo_tuft" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.let_it_die.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:white_truffalo_tuft" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.let_it_die.title" + } + }, + "requirements": [ + [ + "obtain_truffalo_tuft" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/let_it_grow.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/let_it_grow.json new file mode 100644 index 00000000..a5363806 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/let_it_grow.json @@ -0,0 +1,29 @@ +{ + "parent": "antarchy:let_it_die", + "criteria": { + "grow_truffalo_sapling": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.let_it_grow.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:truffalo_sapling" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.let_it_grow.title" + } + }, + "requirements": [ + [ + "grow_truffalo_sapling" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/long_live_the_prince.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/long_live_the_prince.json new file mode 100644 index 00000000..bd7b288a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/long_live_the_prince.json @@ -0,0 +1,34 @@ +{ + "parent": "antarchy:fallen_kingdom_castle", + "criteria": { + "tame_prince": { + "conditions": { + "entity": { + "type": "antarchy:prince" + } + }, + "trigger": "minecraft:tame_animal" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.long_live_the_prince.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "antarchy:prince_egg" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.long_live_the_prince.title" + } + }, + "requirements": [ + [ + "tame_prince" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/long_live_the_princess.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/long_live_the_princess.json new file mode 100644 index 00000000..d12d5e02 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/long_live_the_princess.json @@ -0,0 +1,34 @@ +{ + "parent": "antarchy:fallen_kingdom_castle", + "criteria": { + "tame_princess": { + "conditions": { + "entity": { + "type": "antarchy:princess" + } + }, + "trigger": "minecraft:tame_animal" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.long_live_the_princess.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "antarchy:princess_egg" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.long_live_the_princess.title" + } + }, + "requirements": [ + [ + "tame_princess" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/lucid_dreams.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/lucid_dreams.json new file mode 100644 index 00000000..3793958b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/lucid_dreams.json @@ -0,0 +1,34 @@ +{ + "parent": "antarchy:visit_thoraxis", + "criteria": { + "kill_lucid": { + "conditions": { + "entity": { + "type": "antarchy:lucid" + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.lucid_dreams.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:lucid_eye" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.lucid_dreams.title" + } + }, + "requirements": [ + [ + "kill_lucid" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/moley_poley.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/moley_poley.json new file mode 100644 index 00000000..844c93b3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/moley_poley.json @@ -0,0 +1,34 @@ +{ + "parent": "antarchy:anger_the_hive_mind", + "criteria": { + "kill_molevore": { + "conditions": { + "entity": { + "type": "antarchy:molevore" + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.moley_poley.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:molevore_nose" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.moley_poley.title" + } + }, + "requirements": [ + [ + "kill_molevore" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/mucus_obtained.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/mucus_obtained.json new file mode 100644 index 00000000..ce570ca6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/mucus_obtained.json @@ -0,0 +1,36 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "obtain_mucus": { + "conditions": { + "items": [ + { + "items": "antarchy:mucus" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.mucus_obtained.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:mucus" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.mucus_obtained.title" + } + }, + "requirements": [ + [ + "obtain_mucus" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/now_watch_me_whip.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/now_watch_me_whip.json new file mode 100644 index 00000000..9e066933 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/now_watch_me_whip.json @@ -0,0 +1,36 @@ +{ + "parent": "antarchy:sting_operation", + "criteria": { + "now_watch_me_whip": { + "conditions": { + "items": [ + { + "items": "antarchy:scorpion_whip" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.now_watch_me_whip.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:scorpion_whip" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.now_watch_me_whip.title" + } + }, + "requirements": [ + [ + "now_watch_me_whip" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/probably_wondering_how_i_got_here.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/probably_wondering_how_i_got_here.json new file mode 100644 index 00000000..a9e78b70 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/probably_wondering_how_i_got_here.json @@ -0,0 +1,39 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "become_dilated": { + "conditions": { + "effects": { + "antarchy:dilated": {} + } + }, + "trigger": "minecraft:effects_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.probably_wondering_how_i_got_here.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "minecraft:potion", + "components": { + "minecraft:potion_contents": { + "potion": "antarchy:time_dilation" + } + } + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.probably_wondering_how_i_got_here.title" + } + }, + "requirements": [ + [ + "become_dilated" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/rocket_powered_octopus.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/rocket_powered_octopus.json new file mode 100644 index 00000000..3bc55c0d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/rocket_powered_octopus.json @@ -0,0 +1,36 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "craft_rpo_launcher": { + "conditions": { + "items": [ + { + "items": "antarchy:rpo_launcher" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.rocket_powered_octopus.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:rpo_launcher" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.rocket_powered_octopus.title" + } + }, + "requirements": [ + [ + "craft_rpo_launcher" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/royal_assailant_staff.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/royal_assailant_staff.json new file mode 100644 index 00000000..f1eaa800 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/royal_assailant_staff.json @@ -0,0 +1,36 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "royal_assailant_staff": { + "conditions": { + "items": [ + { + "items": "antarchy:royal_assailant_staff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.royal_assailant_staff.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "antarchy:royal_assailant_staff" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.royal_assailant_staff.title" + } + }, + "requirements": [ + [ + "royal_assailant_staff" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/shark_weak.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/shark_weak.json new file mode 100644 index 00000000..66b5ab4c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/shark_weak.json @@ -0,0 +1,34 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "kill_cloud_shark": { + "conditions": { + "entity": { + "type": "antarchy:cloud_shark" + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.shark_weak.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:cloud_shark_fin" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.shark_weak.title" + } + }, + "requirements": [ + [ + "kill_cloud_shark" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/shrink_ray_craft.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/shrink_ray_craft.json new file mode 100644 index 00000000..21bbb0c2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/shrink_ray_craft.json @@ -0,0 +1,36 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "craft_shrink_ray": { + "conditions": { + "items": [ + { + "items": "antarchy:shrink_ray" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.shrink_ray_craft.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:shrink_ray" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.shrink_ray_craft.title" + } + }, + "requirements": [ + [ + "craft_shrink_ray" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/soups_up.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/soups_up.json new file mode 100644 index 00000000..1ca68d32 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/soups_up.json @@ -0,0 +1,36 @@ +{ + "parent": "antarchy:shark_weak", + "criteria": { + "eat_soup": { + "conditions": { + "item": { + "items": [ + "antarchy:cloud_shark_fin_soup" + ] + } + }, + "trigger": "minecraft:consume_item" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.soups_up.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:cloud_shark_fin_soup" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.soups_up.title" + } + }, + "requirements": [ + [ + "eat_soup" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/spirant_animal.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/spirant_animal.json new file mode 100644 index 00000000..9b9508b5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/spirant_animal.json @@ -0,0 +1,29 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "impossible": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.spirant_animal.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:glimmer_bottle" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.spirant_animal.title" + } + }, + "requirements": [ + [ + "impossible" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/squidzooka_craft.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/squidzooka_craft.json new file mode 100644 index 00000000..719c78d1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/squidzooka_craft.json @@ -0,0 +1,36 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "craft_squidzooka": { + "conditions": { + "items": [ + { + "items": "antarchy:squidzooka" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.squidzooka_craft.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:squidzooka" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.squidzooka_craft.title" + } + }, + "requirements": [ + [ + "craft_squidzooka" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/sting_operation.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/sting_operation.json new file mode 100644 index 00000000..40fdb1fa --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/sting_operation.json @@ -0,0 +1,34 @@ +{ + "parent": "antarchy:visit_thoraxis", + "criteria": { + "kill_emperor_scorpion": { + "conditions": { + "entity": { + "type": "antarchy:emperor_scorpion" + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "text": "Defeat the Emperor Scorpion" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "antarchy:emperor_scorpion_spawn_egg" + }, + "show_toast": true, + "title": { + "text": "Sting Operation" + } + }, + "requirements": [ + [ + "kill_emperor_scorpion" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/stone_cold.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/stone_cold.json new file mode 100644 index 00000000..6a228241 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/stone_cold.json @@ -0,0 +1,34 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "kill_basilisk": { + "conditions": { + "entity": { + "type": "antarchy:basilisk" + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.stone_cold.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:basilisk_fang" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.stone_cold.title" + } + }, + "requirements": [ + [ + "kill_basilisk" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/sweater_dreams.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/sweater_dreams.json new file mode 100644 index 00000000..c54c949a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/sweater_dreams.json @@ -0,0 +1,39 @@ +{ + "parent": "antarchy:visit_thoraxis", + "criteria": { + "kill_nightmare": { + "conditions": { + "entity": { + "type": "antarchy:nightmare" + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.sweater_dreams.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "minecraft:potion", + "components": { + "minecraft:potion_contents": { + "potion": "antarchy:dread" + } + } + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.sweater_dreams.title" + } + }, + "requirements": [ + [ + "kill_nightmare" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/temporal_contradiction.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/temporal_contradiction.json new file mode 100644 index 00000000..f75d40bc --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/temporal_contradiction.json @@ -0,0 +1,35 @@ +{ + "parent": "antarchy:enter_the_speed_force", + "criteria": { + "become_contradictory": { + "conditions": { + "effects": { + "antarchy:contracted": {}, + "antarchy:dilated": {} + } + }, + "trigger": "minecraft:effects_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.temporal_contradiction.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:clock" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.temporal_contradiction.title" + } + }, + "requirements": [ + [ + "become_contradictory" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/the_lab.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/the_lab.json new file mode 100644 index 00000000..09d9dcfb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/the_lab.json @@ -0,0 +1,42 @@ +{ + "parent": "antarchy:visit_elythia", + "criteria": { + "discover_lab": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "structures": "antarchy:trayaurus_lab" + } + } + } + ] + }, + "trigger": "minecraft:location" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.the_lab.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:diamond_minecart" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.the_lab.title" + } + }, + "requirements": [ + [ + "discover_lab" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/ultimate_armor.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/ultimate_armor.json new file mode 100644 index 00000000..e7a0f11e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/ultimate_armor.json @@ -0,0 +1,75 @@ +{ + "parent": "minecraft:story/root", + "criteria": { + "ultimate_helmet": { + "conditions": { + "items": [ + { + "items": "antarchy:ultimate_helmet" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "ultimate_chestplate": { + "conditions": { + "items": [ + { + "items": "antarchy:ultimate_chestplate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "ultimate_leggings": { + "conditions": { + "items": [ + { + "items": "antarchy:ultimate_leggings" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "ultimate_boots": { + "conditions": { + "items": [ + { + "items": "antarchy:ultimate_boots" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.ultimate_armor.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "antarchy:ultimate_chestplate" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.ultimate_armor.title" + } + }, + "requirements": [ + [ + "ultimate_helmet" + ], + [ + "ultimate_chestplate" + ], + [ + "ultimate_leggings" + ], + [ + "ultimate_boots" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/ultimate_bow.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/ultimate_bow.json new file mode 100644 index 00000000..2b171495 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/ultimate_bow.json @@ -0,0 +1,36 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "ultimate_bow": { + "conditions": { + "items": [ + { + "items": "antarchy:ultimate_bow" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.ultimate_bow.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "antarchy:ultimate_bow" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.ultimate_bow.title" + } + }, + "requirements": [ + [ + "ultimate_bow" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/upper_craft.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/upper_craft.json new file mode 100644 index 00000000..f221db8b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/upper_craft.json @@ -0,0 +1,36 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "craft_upper": { + "conditions": { + "items": [ + { + "items": "antarchy:upper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.upper_craft.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:upper" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.upper_craft.title" + } + }, + "requirements": [ + [ + "craft_upper" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/very_hungry_caterpillar.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/very_hungry_caterpillar.json new file mode 100644 index 00000000..c87e10a8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/very_hungry_caterpillar.json @@ -0,0 +1,29 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "impossible": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.very_hungry_caterpillar.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:caterpillar_spawn_egg" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.very_hungry_caterpillar.title" + } + }, + "requirements": [ + [ + "impossible" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/visit_cavaryn.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/visit_cavaryn.json new file mode 100644 index 00000000..f02d73ed --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/visit_cavaryn.json @@ -0,0 +1,32 @@ +{ + "criteria": { + "entered_cavaryn": { + "conditions": { + "to": "antarchy:cavaryn" + }, + "trigger": "minecraft:changed_dimension" + } + }, + "display": { + "announce_to_chat": true, + "background": "antarchy:textures/block/myrmite/myrmite.png", + "description": { + "translate": "advancements.antarchy.visit_cavaryn.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:myrmite" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.visit_cavaryn.title" + } + }, + "requirements": [ + [ + "entered_cavaryn" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/visit_elythia.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/visit_elythia.json new file mode 100644 index 00000000..123c2124 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/visit_elythia.json @@ -0,0 +1,32 @@ +{ + "criteria": { + "entered_elythia": { + "conditions": { + "to": "antarchy:elythia" + }, + "trigger": "minecraft:changed_dimension" + } + }, + "display": { + "announce_to_chat": true, + "background": "antarchy:textures/block/ouranwood/mossy_ouranwood_log.png", + "description": { + "translate": "advancements.antarchy.visit_elythia.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:brown_ant_nest" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.visit_elythia.title" + } + }, + "requirements": [ + [ + "entered_elythia" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/visit_thoraxis.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/visit_thoraxis.json new file mode 100644 index 00000000..ac57108b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/visit_thoraxis.json @@ -0,0 +1,32 @@ +{ + "criteria": { + "entered_thoraxis": { + "conditions": { + "to": "antarchy:thoraxis" + }, + "trigger": "minecraft:changed_dimension" + } + }, + "display": { + "announce_to_chat": true, + "background": "antarchy:textures/block/nyxite.png", + "description": { + "translate": "advancements.antarchy.visit_thoraxis.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:red_ant_nest" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.visit_thoraxis.title" + } + }, + "requirements": [ + [ + "entered_thoraxis" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/water_cannon_craft.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/water_cannon_craft.json new file mode 100644 index 00000000..eaaa28c9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/water_cannon_craft.json @@ -0,0 +1,36 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "get_water_cannon": { + "conditions": { + "items": [ + { + "items": "antarchy:water_cannon" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.water_cannon_craft.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:water_cannon" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.water_cannon_craft.title" + } + }, + "requirements": [ + [ + "get_water_cannon" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/advancement/whoever_smelt_it_dealt_it.json b/common-1.20.1/src/main/resources/data/antarchy/advancement/whoever_smelt_it_dealt_it.json new file mode 100644 index 00000000..9e10d2ca --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/advancement/whoever_smelt_it_dealt_it.json @@ -0,0 +1,39 @@ +{ + "parent": "antarchy:visit_thoraxis", + "criteria": { + "become_stinky": { + "conditions": { + "effects": { + "antarchy:stinky": {} + } + }, + "trigger": "minecraft:effects_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.whoever_smelt_it_dealt_it.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "minecraft:potion", + "components": { + "minecraft:potion_contents": { + "potion": "antarchy:stinky" + } + } + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.whoever_smelt_it_dealt_it.title" + } + }, + "requirements": [ + [ + "become_stinky" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/jukebox_song/underside.json b/common-1.20.1/src/main/resources/data/antarchy/jukebox_song/underside.json new file mode 100644 index 00000000..10fde747 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/jukebox_song/underside.json @@ -0,0 +1,8 @@ +{ + "sound_event": "antarchy:music_disc_underside", + "description": { + "translate": "jukebox_song.antarchy.underside" + }, + "length_in_seconds": 225.0, + "comparator_output": 13 +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/amber_lichen.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/amber_lichen.json new file mode 100644 index 00000000..dfba2794 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/amber_lichen.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "minecraft:shears" + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:amber_lichen" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/amber_lichen" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/amber_moss_block.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/amber_moss_block.json new file mode 100644 index 00000000..a8bfc055 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/amber_moss_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:amber_moss_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/amber_moss_block" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/amber_moss_carpet.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/amber_moss_carpet.json new file mode 100644 index 00000000..7e68cad1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/amber_moss_carpet.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:amber_moss_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/amber_moss_carpet" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antigravel.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antigravel.json new file mode 100644 index 00000000..b89e352a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antigravel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:antigravel" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/antigravel" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal.json new file mode 100644 index 00000000..3ed331e1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:antimetal" + } + ] + } + ], + "random_sequence": "antarchy:blocks/antimetal" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_activator_rail.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_activator_rail.json new file mode 100644 index 00000000..f91df6d2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_activator_rail.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:antimetal_activator_rail" + } + ] + } + ], + "random_sequence": "antarchy:blocks/antimetal_activator_rail" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_detector_rail.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_detector_rail.json new file mode 100644 index 00000000..a6101057 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_detector_rail.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:antimetal_detector_rail" + } + ] + } + ], + "random_sequence": "antarchy:blocks/antimetal_detector_rail" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_powered_rail.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_powered_rail.json new file mode 100644 index 00000000..eed683c6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_powered_rail.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:antimetal_powered_rail" + } + ] + } + ], + "random_sequence": "antarchy:blocks/antimetal_powered_rail" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_rail.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_rail.json new file mode 100644 index 00000000..e58e371f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_rail.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:antimetal_rail" + } + ] + } + ], + "random_sequence": "antarchy:blocks/antimetal_rail" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_scaffolding.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_scaffolding.json new file mode 100644 index 00000000..abcd187f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_scaffolding.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:antimetal_scaffolding" + } + ] + } + ], + "random_sequence": "antarchy:blocks/antimetal_scaffolding" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_slab.json new file mode 100644 index 00000000..959fbd3c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_slab.json @@ -0,0 +1,44 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "antarchy:antimetal_slab", + "properties": { + "type": "double" + } + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": 2 + } + ], + "name": "antarchy:antimetal_slab" + }, + { + "type": "minecraft:item", + "name": "antarchy:antimetal_slab" + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/antimetal_slab" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_stairs.json new file mode 100644 index 00000000..f81249ea --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/antimetal_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:antimetal_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/antimetal_stairs" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bed_bug_egg.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bed_bug_egg.json new file mode 100644 index 00000000..d16d9f39 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bed_bug_egg.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:bed_bug_egg", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ], + "random_sequence": "minecraft:blocks/turtle_egg" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bile_vein.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bile_vein.json new file mode 100644 index 00000000..32eb33c8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bile_vein.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:bile_vein" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/bile_vein" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/biomite.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/biomite.json new file mode 100644 index 00000000..ac5e40b9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/biomite.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:biomite" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/biomite" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/biomite_turf.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/biomite_turf.json new file mode 100644 index 00000000..9980b91f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/biomite_turf.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:biomite_turf" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/biomite_turf" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/biowart.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/biowart.json new file mode 100644 index 00000000..38860771 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/biowart.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:biowart" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/biowart" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/biowart_tendrils.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/biowart_tendrils.json new file mode 100644 index 00000000..416d7142 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/biowart_tendrils.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:biowart_tendrils" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/biowart_tendrils" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/black_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/black_truffalo_tuft.json new file mode 100644 index 00000000..ac9cea8d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/black_truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:black_truffalo_tuft" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/black_truffalo_tuft" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/blood_crystal_block.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/blood_crystal_block.json new file mode 100644 index 00000000..d59363a9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/blood_crystal_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:blood_crystal_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/blood_crystal_cluster.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/blood_crystal_cluster.json new file mode 100644 index 00000000..3f5b2e29 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/blood_crystal_cluster.json @@ -0,0 +1,79 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "antarchy:blood_crystal_cluster" + }, + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:cluster_max_harvestables" + } + } + ], + "functions": [ + { + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + } + ], + "name": "antarchy:blood_crystal_shard" + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:blood_crystal_shard" + } + ] + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/amethyst_cluster" +} + diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/blue_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/blue_truffalo_tuft.json new file mode 100644 index 00000000..dbb20d31 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/blue_truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:blue_truffalo_tuft" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/blue_truffalo_tuft" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_block.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_block.json new file mode 100644 index 00000000..1e8f11e6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:bluestone_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_comparator.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_comparator.json new file mode 100644 index 00000000..26d77722 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_comparator.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:bluestone_comparator" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_lamp.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_lamp.json new file mode 100644 index 00000000..050e8523 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_lamp.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:bluestone_lamp" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/bluestone_lamp" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_ore.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_ore.json new file mode 100644 index 00000000..b7f5736d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "antarchy:bluestone_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:bluestone", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_repeater.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_repeater.json new file mode 100644 index 00000000..dc3e4d9f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_repeater.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:bluestone_repeater" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_torch.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_torch.json new file mode 100644 index 00000000..1181c0aa --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_torch.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:bluestone_torch" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_wire.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_wire.json new file mode 100644 index 00000000..b49ab6cb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/bluestone_wire.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:bluestone" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/blush_moss_block.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/blush_moss_block.json new file mode 100644 index 00000000..566101fa --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/blush_moss_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:blush_moss_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/moss_block" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/blush_moss_carpet.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/blush_moss_carpet.json new file mode 100644 index 00000000..2c408c83 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/blush_moss_carpet.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "antarchy:blush_moss_carpet", + "condition": "minecraft:block_state_property", + "properties": { + "bottom": "true" + } + } + ], + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:blush_moss_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/moss_carpet" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone.json new file mode 100644 index 00000000..127d6661 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/broodstone" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_slab.json new file mode 100644 index 00000000..3b654ece --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:broodstone_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:broodstone_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/broodstone_brick_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_stairs.json new file mode 100644 index 00000000..66b18f76 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone_brick_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_wall.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_wall.json new file mode 100644 index 00000000..ca98b9a5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_wall.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone_brick_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_bricks.json new file mode 100644 index 00000000..800d7a1a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_bricks.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_pillar.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_pillar.json new file mode 100644 index 00000000..0cddd51f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_pillar.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone_pillar" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/broodstone_pillar" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_slab.json new file mode 100644 index 00000000..fd22e35a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:broodstone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:broodstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/broodstone_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_stairs.json new file mode 100644 index 00000000..61531b81 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_titanium_ore.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_titanium_ore.json new file mode 100644 index 00000000..e82655e1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_titanium_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone_titanium_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:raw_titanium_scrap", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_uranium_ore.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_uranium_ore.json new file mode 100644 index 00000000..adc15d84 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_uranium_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone_uranium_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:raw_uranium_scrap", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_wall.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_wall.json new file mode 100644 index 00000000..b611acf6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/broodstone_wall.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/brown_ant_nest.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/brown_ant_nest.json new file mode 100644 index 00000000..41e87a40 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/brown_ant_nest.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:brown_ant_nest" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/brown_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/brown_truffalo_tuft.json new file mode 100644 index 00000000..107b7ad4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/brown_truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:brown_truffalo_tuft" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/brown_truffalo_tuft" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/budding_blood_crystal.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/budding_blood_crystal.json new file mode 100644 index 00000000..7b59ea19 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/budding_blood_crystal.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "pools": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/camellia.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/camellia.json new file mode 100644 index 00000000..897225ec --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/camellia.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "antarchy:camellia", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "antarchy:camellia" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/camellia" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_broodstone.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_broodstone.json new file mode 100644 index 00000000..2fe7e767 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_broodstone.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiseled_broodstone" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_dream_sandstone.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_dream_sandstone.json new file mode 100644 index 00000000..ae82513c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_dream_sandstone.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiseled_dream_sandstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chiseled_sandstone" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_loam_bricks.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_myrmite.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_myrmite.json new file mode 100644 index 00000000..3dcb8a62 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_nyxite.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_nyxite.json new file mode 100644 index 00000000..47104d56 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_nyxite.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiseled_nyxite" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/chiseled_nyxite" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_shellstone.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_shellstone.json new file mode 100644 index 00000000..d3467ae6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_shellstone.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiseled_shellstone" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/chiseled_shellstone" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_titanium.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_titanium.json new file mode 100644 index 00000000..e0aff048 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_titanium.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiseled_titanium" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/chiseled_titanium" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_typhonite.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_typhonite.json new file mode 100644 index 00000000..0c08b1ff --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_typhonite.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiseled_typhonite" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_uranium.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_uranium.json new file mode 100644 index 00000000..55880026 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chiseled_uranium.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiseled_uranium" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/chiseled_uranium" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chitin_block.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chitin_block.json new file mode 100644 index 00000000..dee0af3b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chitin_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chitin_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/chitin_block" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chitin_spike.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chitin_spike.json new file mode 100644 index 00000000..ded89868 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/chitin_spike.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chitin_spike" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cloud_block.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cloud_block.json new file mode 100644 index 00000000..7b59ea19 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cloud_block.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "pools": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/corn_crop.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/corn_crop.json new file mode 100644 index 00000000..54de69a3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/corn_crop.json @@ -0,0 +1,89 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "antarchy:corn", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "antarchy:corn_crop", + "properties": { + "half": "lower", + "age": "3" + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:corn_seeds", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "antarchy:corn_crop", + "properties": { + "half": "lower" + } + } + ] + } + ] + } + ] + }, + { + "rolls": 1.0, + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "antarchy:corn_crop", + "properties": { + "half": "lower", + "age": "3" + } + }, + { + "condition": "minecraft:random_chance", + "chance": 0.5 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:corn" + } + ] + }, + { + "rolls": 1.0, + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "antarchy:corn_crop", + "properties": { + "half": "lower", + "age": "3" + } + }, + { + "condition": "minecraft:random_chance", + "chance": 0.5 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:corn" + } + ] + } + ], + "random_sequence": "antarchy:blocks/corn_crop" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cornea_stalk.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cornea_stalk.json new file mode 100644 index 00000000..cca0ef2d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cornea_stalk.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:block", + "pools": [], + "random_sequence": "antarchy:blocks/cornea_stalk" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cracked_shellstone_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cracked_shellstone_bricks.json new file mode 100644 index 00000000..caf67870 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cracked_shellstone_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:cracked_shellstone_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/cracked_shellstone_bricks" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/creeping_horror_egg.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/creeping_horror_egg.json new file mode 100644 index 00000000..2a3ec5b3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/creeping_horror_egg.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:creeping_horror_egg", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ], + "random_sequence": "minecraft:blocks/turtle_egg" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/creeping_horror_eggs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/creeping_horror_eggs.json new file mode 100644 index 00000000..ee8223b7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/creeping_horror_eggs.json @@ -0,0 +1 @@ +{"type":"minecraft:block","pools":[]} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/creepvine.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/creepvine.json new file mode 100644 index 00000000..e1abf289 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/creepvine.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "minecraft:shears" + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:creepvine" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/creepvine" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/critter_cage_block.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/critter_cage_block.json new file mode 100644 index 00000000..88290b1f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/critter_cage_block.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:critter_cage" + } + ], + "functions": [ + { + "function": "minecraft:copy_components", + "source": "block_entity" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_dream_sandstone.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_dream_sandstone.json new file mode 100644 index 00000000..424f9e65 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_dream_sandstone.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:cut_dream_sandstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cut_sandstone" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_dream_sandstone_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_dream_sandstone_slab.json new file mode 100644 index 00000000..2a86b88d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_dream_sandstone_slab.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:cut_dream_sandstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cut_sandstone_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_titanium.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_titanium.json new file mode 100644 index 00000000..66c0b972 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_titanium.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:cut_titanium" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/cut_titanium" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_titanium_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_titanium_slab.json new file mode 100644 index 00000000..3c4ff908 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_titanium_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:cut_titanium_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:cut_titanium_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/cut_titanium_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_titanium_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_titanium_stairs.json new file mode 100644 index 00000000..aad46bb5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_titanium_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:cut_titanium_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/cut_titanium_stairs" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_uranium.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_uranium.json new file mode 100644 index 00000000..301f599d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_uranium.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:cut_uranium" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/cut_uranium" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_uranium_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_uranium_slab.json new file mode 100644 index 00000000..3a637241 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_uranium_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:cut_uranium_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:cut_uranium_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/cut_uranium_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_uranium_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_uranium_stairs.json new file mode 100644 index 00000000..085fba98 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cut_uranium_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:cut_uranium_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/cut_uranium_stairs" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cyan_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cyan_truffalo_tuft.json new file mode 100644 index 00000000..99ec2112 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/cyan_truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:cyan_truffalo_tuft" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/cyan_truffalo_tuft" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dead_star_coral.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dead_star_coral.json new file mode 100644 index 00000000..d34f10d0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dead_star_coral.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:dead_star_coral" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dead_star_coral_block.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dead_star_coral_block.json new file mode 100644 index 00000000..06d2dfd0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dead_star_coral_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:dead_star_coral_block" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dead_star_coral_fan.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dead_star_coral_fan.json new file mode 100644 index 00000000..43218c24 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dead_star_coral_fan.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:dead_star_coral_fan" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dead_star_coral_wall_fan.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dead_star_coral_wall_fan.json new file mode 100644 index 00000000..43218c24 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dead_star_coral_wall_fan.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:dead_star_coral_fan" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/deepslate_titanium_ore.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/deepslate_titanium_ore.json new file mode 100644 index 00000000..a1bef158 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/deepslate_titanium_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "antarchy:deepslate_titanium_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:raw_titanium_scrap", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/deepslate_uranium_ore.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/deepslate_uranium_ore.json new file mode 100644 index 00000000..f2199bdf --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/deepslate_uranium_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "antarchy:deepslate_uranium_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:raw_uranium_scrap", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_campfire.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_campfire.json new file mode 100644 index 00000000..8bf38e8a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_campfire.json @@ -0,0 +1,46 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:dream_campfire" + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:dream_sand" + } + ] + } + ], + "random_sequence": "antarchy:blocks/dream_campfire" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_ceiling_torch.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_ceiling_torch.json new file mode 100644 index 00000000..2d716ec1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_ceiling_torch.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:dream_torch" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/dream_ceiling_torch" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_lantern.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_lantern.json new file mode 100644 index 00000000..d8a0fc78 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_lantern.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:dream_lantern" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/dream_lantern" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_sand.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_sand.json new file mode 100644 index 00000000..d30a08f9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_sand.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:dream_sand" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sand" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_sandstone.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_sandstone.json new file mode 100644 index 00000000..d639dbcc --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_sandstone.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:dream_sandstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sandstone" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_sandstone_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_sandstone_slab.json new file mode 100644 index 00000000..b2b99f1b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_sandstone_slab.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:dream_sandstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sandstone_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_sandstone_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_sandstone_stairs.json new file mode 100644 index 00000000..4c4f2870 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_sandstone_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:dream_sandstone_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sandstone_stairs" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_sandstone_wall.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_sandstone_wall.json new file mode 100644 index 00000000..62a87487 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_sandstone_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:dream_sandstone_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sandstone_wall" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_torch.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_torch.json new file mode 100644 index 00000000..be499a91 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_torch.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:dream_torch" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/dream_torch" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_wall_torch.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_wall_torch.json new file mode 100644 index 00000000..ee1a3927 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/dream_wall_torch.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:dream_torch" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/dream_wall_torch" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/duct_tape.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/duct_tape.json new file mode 100644 index 00000000..36106b7c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/duct_tape.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:duct_tape" + } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "antarchy:duct_tape", + "properties": { + "uses": "4" + } + }, + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/duplicator_log.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/duplicator_log.json new file mode 100644 index 00000000..89403243 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/duplicator_log.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:duplicator_log" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/duplicator_sapling.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/duplicator_sapling.json new file mode 100644 index 00000000..1d011246 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/duplicator_sapling.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:duplicator_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/duskbell.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/duskbell.json new file mode 100644 index 00000000..973e11a4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/duskbell.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:duskbell" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/giant_lily_pad.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/giant_lily_pad.json new file mode 100644 index 00000000..b6332265 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/giant_lily_pad.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:giant_lily_pad" + } + ] + }, + { + "rolls": 1.0, + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "antarchy:giant_lily_pad", + "properties": { + "has_lotus": "true" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:lotus" + } + ] + } + ], + "random_sequence": "antarchy:blocks/giant_lily_pad" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/glowcap_mushroom.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/glowcap_mushroom.json new file mode 100644 index 00000000..0fe88a8e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/glowcap_mushroom.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:glowcap_mushroom" + } + ] + } + ], + "random_sequence": "antarchy:blocks/glowcap_mushroom" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/glowcap_mushroom_block.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/glowcap_mushroom_block.json new file mode 100644 index 00000000..43f987b9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/glowcap_mushroom_block.json @@ -0,0 +1,64 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "antarchy:glowcap_mushroom_block", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:glowcap_mushroom", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 2.0 + } + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "parameters": { + "bonusMultiplier": 2 + } + } + ] + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/glowcap_mushroom_block" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/gorevine.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/gorevine.json new file mode 100644 index 00000000..97481e4a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/gorevine.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:gorevine" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/gorevine" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/gray_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/gray_truffalo_tuft.json new file mode 100644 index 00000000..02313f9f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/gray_truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:gray_truffalo_tuft" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/gray_truffalo_tuft" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/green_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/green_truffalo_tuft.json new file mode 100644 index 00000000..2c18ed3d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/green_truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:green_truffalo_tuft" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/green_truffalo_tuft" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/hanging_creeproots.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/hanging_creeproots.json new file mode 100644 index 00000000..3a6dfc7e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/hanging_creeproots.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:hanging_creeproots" + } + ] + } + ], + "random_sequence": "antarchy:blocks/hanging_creeproots" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/hanging_peach.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/hanging_peach.json new file mode 100644 index 00000000..96e05f39 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/hanging_peach.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/hanging_peach" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/hushweed.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/hushweed.json new file mode 100644 index 00000000..38f318d5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/hushweed.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:hushweed" + } + ] + } + ], + "random_sequence": "antarchy:blocks/hushweed" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/infested_coarse_dirt.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/infested_coarse_dirt.json new file mode 100644 index 00000000..7b59ea19 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/infested_coarse_dirt.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "pools": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/infested_rooted_dirt.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/infested_rooted_dirt.json new file mode 100644 index 00000000..7b59ea19 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/infested_rooted_dirt.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "pools": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/jerry_egg.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/jerry_egg.json new file mode 100644 index 00000000..1c029f55 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/jerry_egg.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:jerry_egg" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/jerry_egg" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/jumpy_bug_egg.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/jumpy_bug_egg.json new file mode 100644 index 00000000..56e63d63 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/jumpy_bug_egg.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:jumpy_bug_egg" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/jumpy_bug_egg" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/large_blood_crystal_bud.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/large_blood_crystal_bud.json new file mode 100644 index 00000000..802a65ec --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/large_blood_crystal_bud.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "antarchy:large_blood_crystal_bud" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/large_amethyst_bud" +} + diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/large_nadir_fern.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/large_nadir_fern.json new file mode 100644 index 00000000..d66040a5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/large_nadir_fern.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:large_nadir_fern" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "condition": "minecraft:block_state_property", + "block": "antarchy:large_nadir_fern", + "properties": { + "half": "bottom" + } + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/light_blue_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/light_blue_truffalo_tuft.json new file mode 100644 index 00000000..fc7085cc --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/light_blue_truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:light_blue_truffalo_tuft" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/light_blue_truffalo_tuft" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/light_gray_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/light_gray_truffalo_tuft.json new file mode 100644 index 00000000..ffb85736 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/light_gray_truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:light_gray_truffalo_tuft" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/light_gray_truffalo_tuft" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/lime_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/lime_truffalo_tuft.json new file mode 100644 index 00000000..9e4be025 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/lime_truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:lime_truffalo_tuft" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/lime_truffalo_tuft" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/loam.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/loam.json new file mode 100644 index 00000000..4b098d8f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/loam.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:loam" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/loam" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/loam_brick_slab.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/loam_brick_stairs.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/loam_brick_wall.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/loam_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/loam_bricks.json new file mode 100644 index 00000000..e4752904 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/lotus.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/lotus.json new file mode 100644 index 00000000..2c7f5cb8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/lotus.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "conditions": [ + { "condition": "minecraft:survives_explosion" } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:lotus" + } + ] + } + ], + "random_sequence": "antarchy:blocks/lotus" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/lumen_froglight.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/lumen_froglight.json new file mode 100644 index 00000000..79c8941d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/lumen_froglight.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:lumen_froglight" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/lurking_terror_egg.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/lurking_terror_egg.json new file mode 100644 index 00000000..1cfefbdd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/lurking_terror_egg.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:lurking_terror_egg", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ], + "random_sequence": "minecraft:blocks/turtle_egg" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/lurking_terror_eggs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/lurking_terror_eggs.json new file mode 100644 index 00000000..ee8223b7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/lurking_terror_eggs.json @@ -0,0 +1 @@ +{"type":"minecraft:block","pools":[]} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/magenta_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/magenta_truffalo_tuft.json new file mode 100644 index 00000000..f01cf89e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/magenta_truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:magenta_truffalo_tuft" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/magenta_truffalo_tuft" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/medium_blood_crystal_bud.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/medium_blood_crystal_bud.json new file mode 100644 index 00000000..f8fb2734 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/medium_blood_crystal_bud.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "antarchy:medium_blood_crystal_bud" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/medium_amethyst_bud" +} + diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/molting_vines.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/molting_vines.json new file mode 100644 index 00000000..35966857 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/molting_vines.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:molting_vines" + } + ] + } + ], + "random_sequence": "antarchy:blocks/molting_vines" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_broodstone_brick_slab.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_broodstone_brick_stairs.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_broodstone_brick_wall.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_broodstone_bricks.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_myrmite_brick_slab.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_myrmite_brick_stairs.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_myrmite_brick_wall.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_myrmite_bricks.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_nyxite_brick_slab.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_nyxite_brick_stairs.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_nyxite_brick_wall.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_nyxite_bricks.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_ouranwood_log.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_ouranwood_log.json new file mode 100644 index 00000000..d5d9a58a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_ouranwood_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mossy_ouranwood_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_log" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_ouranwood_wood.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_ouranwood_wood.json new file mode 100644 index 00000000..fb237892 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_ouranwood_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mossy_ouranwood_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_wood" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_shellstone_brick_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_shellstone_brick_slab.json new file mode 100644 index 00000000..1ee537f0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_shellstone_brick_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:mossy_shellstone_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:mossy_shellstone_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/mossy_shellstone_brick_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_shellstone_brick_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_shellstone_brick_stairs.json new file mode 100644 index 00000000..3c45a676 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_shellstone_brick_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mossy_shellstone_brick_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/mossy_shellstone_brick_stairs" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_shellstone_brick_wall.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_shellstone_brick_wall.json new file mode 100644 index 00000000..0c5bee10 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_shellstone_brick_wall.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mossy_shellstone_brick_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/mossy_shellstone_brick_wall" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_shellstone_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_shellstone_bricks.json new file mode 100644 index 00000000..c71114a5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mossy_shellstone_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mossy_shellstone_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/mossy_shellstone_bricks" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mucus.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mucus.json new file mode 100644 index 00000000..e429ffd7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/mucus.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mucus" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "minecraft:shears" + ] + } + } + ] + } + ], + "random_sequence": "antarchy:blocks/mucus" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite.json new file mode 100644 index 00000000..fd82e19e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:myrmite" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/myrmite" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_brick_slab.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_brick_stairs.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_brick_wall.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_bricks.json new file mode 100644 index 00000000..14a3fe25 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_coal_ore.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_coal_ore.json new file mode 100644 index 00000000..6da2ca1d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_coal_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "antarchy:myrmite_coal_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:coal", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_slab.json new file mode 100644 index 00000000..b99c86e9 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_stairs.json new file mode 100644 index 00000000..96c9860c --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_wall.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/myrmite_wall.json new file mode 100644 index 00000000..6c04fa09 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_button.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_button.json new file mode 100644 index 00000000..cc738c5c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_button" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_door.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_door.json new file mode 100644 index 00000000..d992154d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "antarchy:nadir_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "antarchy:nadir_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_door" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_fence.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_fence.json new file mode 100644 index 00000000..3388ad18 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_fence" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_fence_gate.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_fence_gate.json new file mode 100644 index 00000000..aeb691fc --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_fence_gate" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_fern.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_fern.json new file mode 100644 index 00000000..988f498a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_fern.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_fern" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_hanging_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_hanging_sign.json new file mode 100644 index 00000000..7754bba0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/nadir_hanging_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_log.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_log.json new file mode 100644 index 00000000..0b91f557 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_log" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_nyxium.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_nyxium.json new file mode 100644 index 00000000..a4b63b71 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_nyxium.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_nyxium" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_planks.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_planks.json new file mode 100644 index 00000000..489c3e34 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_planks" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_pressure_plate.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_pressure_plate.json new file mode 100644 index 00000000..c9f9152d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_pressure_plate" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_roots.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_roots.json new file mode 100644 index 00000000..ee883e2d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_roots.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_roots" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_sapling.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_sapling.json new file mode 100644 index 00000000..dd2b5842 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_sapling.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_sapling" + } + ] + } + ], + "random_sequence": "antarchy:blocks/nadir_sapling" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_sign.json new file mode 100644 index 00000000..67baa54a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/nadir_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_slab.json new file mode 100644 index 00000000..c2c76ef4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:nadir_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:nadir_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_stairs.json new file mode 100644 index 00000000..e06e6af0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_stairs" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_trapdoor.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_trapdoor.json new file mode 100644 index 00000000..6c570532 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_trapdoor" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_veil.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_veil.json new file mode 100644 index 00000000..dfb8cce5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_veil.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_veil" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/nadir_veil" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_wall_hanging_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_wall_hanging_sign.json new file mode 100644 index 00000000..5a053f35 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_wall_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/nadir_wall_hanging_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_wall_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_wall_sign.json new file mode 100644 index 00000000..ef0298e8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_wall_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/nadir_wall_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_wood.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_wood.json new file mode 100644 index 00000000..cb9de74b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nadir_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_wood" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite.json new file mode 100644 index 00000000..88d04855 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nyxite" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_brick_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_brick_slab.json new file mode 100644 index 00000000..dd76fd58 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_brick_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:nyxite_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:nyxite_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/nyxite_brick_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_brick_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_brick_stairs.json new file mode 100644 index 00000000..e417be42 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_brick_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nyxite_brick_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/nyxite_brick_stairs" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_brick_wall.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_brick_wall.json new file mode 100644 index 00000000..bfd778ec --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_brick_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nyxite_brick_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/nyxite_brick_wall" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_bricks.json new file mode 100644 index 00000000..3737802a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nyxite_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/nyxite_bricks" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_pillar.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_pillar.json new file mode 100644 index 00000000..1afc0284 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_pillar.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nyxite_pillar" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/nyxite_pillar" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_slab.json new file mode 100644 index 00000000..a65d7383 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:nyxite_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:nyxite_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/nyxite_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_spike.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_spike.json new file mode 100644 index 00000000..4d1b4380 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_spike.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nyxite_spike" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_stairs.json new file mode 100644 index 00000000..87cece8a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nyxite_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/nyxite_stairs" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_wall.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_wall.json new file mode 100644 index 00000000..b1bdfe1b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/nyxite_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nyxite_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/nyxite_wall" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/orange_milkweed.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/orange_milkweed.json new file mode 100644 index 00000000..f79b2304 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/orange_milkweed.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "antarchy:orange_milkweed", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "antarchy:orange_milkweed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/orange_milkweed" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/orange_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/orange_truffalo_tuft.json new file mode 100644 index 00000000..e3affa3c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/orange_truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:orange_truffalo_tuft" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/orange_truffalo_tuft" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_acorn.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_acorn.json new file mode 100644 index 00000000..e1eefbb8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_acorn.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_acorn" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/ouranwood_acorn" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_button.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_button.json new file mode 100644 index 00000000..44d807f6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_button" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_door.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_door.json new file mode 100644 index 00000000..f5e80def --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "antarchy:ouranwood_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "antarchy:ouranwood_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_door" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_fence.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_fence.json new file mode 100644 index 00000000..7caf870a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_fence" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_fence_gate.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_fence_gate.json new file mode 100644 index 00000000..b5611fc4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_fence_gate" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_hanging_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_hanging_sign.json new file mode 100644 index 00000000..abe13499 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/ouranwood_hanging_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_leaves.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_leaves.json new file mode 100644 index 00000000..2957533a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_leaves.json @@ -0,0 +1,137 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "antarchy:ouranwood_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.025, + 0.027777778, + 0.03125, + 0.041666668, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "antarchy:ouranwood_acorn" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/ouranwood_leaves" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_log.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_log.json new file mode 100644 index 00000000..d4293289 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_log" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_planks.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_planks.json new file mode 100644 index 00000000..a06fd256 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_planks" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_pressure_plate.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_pressure_plate.json new file mode 100644 index 00000000..572da244 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_pressure_plate" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_sign.json new file mode 100644 index 00000000..d74b95f4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/ouranwood_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_slab.json new file mode 100644 index 00000000..2607b412 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:ouranwood_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:ouranwood_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_slab" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_stairs.json new file mode 100644 index 00000000..5000d99f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_stairs" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_trapdoor.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_trapdoor.json new file mode 100644 index 00000000..b117b21c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_trapdoor" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_wall_hanging_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_wall_hanging_sign.json new file mode 100644 index 00000000..a082998d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_wall_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/ouranwood_wall_hanging_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_wall_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_wall_sign.json new file mode 100644 index 00000000..6dafb630 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_wall_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/ouranwood_wall_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_wood.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_wood.json new file mode 100644 index 00000000..1a7dbd98 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/ouranwood_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_wood" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/packed_loam.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/packed_loam.json new file mode 100644 index 00000000..193e4afc --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/pale_nyxite.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/pale_nyxite.json new file mode 100644 index 00000000..7f93d556 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/pale_nyxite.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:pale_nyxite" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_button.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_button.json new file mode 100644 index 00000000..74410c74 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_button" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_door.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_door.json new file mode 100644 index 00000000..c8b63c95 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "antarchy:peach_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "antarchy:peach_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_door" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_fence.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_fence.json new file mode 100644 index 00000000..31c7edd6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_fence" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_fence_gate.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_fence_gate.json new file mode 100644 index 00000000..fd509861 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_fence_gate" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_hanging_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_hanging_sign.json new file mode 100644 index 00000000..a5d88061 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/peach_hanging_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_leaves.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_leaves.json new file mode 100644 index 00000000..f1a2b349 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_leaves.json @@ -0,0 +1,138 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "antarchy:peach_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.025, + 0.027777778, + 0.03125, + 0.041666668, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "antarchy:peach_sapling" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/peach_leaves" +} + diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_log.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_log.json new file mode 100644 index 00000000..35a91254 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_log" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_planks.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_planks.json new file mode 100644 index 00000000..1bd313c7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_planks" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_pressure_plate.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_pressure_plate.json new file mode 100644 index 00000000..7f9121ef --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_pressure_plate" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_sapling.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_sapling.json new file mode 100644 index 00000000..7d35a420 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_sapling.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach_sapling" + } + ] + } + ], + "random_sequence": "antarchy:blocks/peach_sapling" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_sign.json new file mode 100644 index 00000000..b71fbb4b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/peach_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_slab.json new file mode 100644 index 00000000..53e759d0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:peach_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:peach_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_stairs.json new file mode 100644 index 00000000..3f81f57e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_stairs" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_trapdoor.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_trapdoor.json new file mode 100644 index 00000000..ee2c8580 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_trapdoor" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_wall_hanging_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_wall_hanging_sign.json new file mode 100644 index 00000000..f9804bed --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_wall_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/peach_wall_hanging_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_wall_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_wall_sign.json new file mode 100644 index 00000000..7ddd0f95 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_wall_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/peach_wall_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_wood.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_wood.json new file mode 100644 index 00000000..f1787698 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/peach_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_wood" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/pink_milkweed.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/pink_milkweed.json new file mode 100644 index 00000000..99a772e5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/pink_milkweed.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "antarchy:pink_milkweed", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "antarchy:pink_milkweed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/pink_milkweed" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/pink_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/pink_truffalo_tuft.json new file mode 100644 index 00000000..43471614 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/pink_truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:pink_truffalo_tuft" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/pink_truffalo_tuft" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_antimetal.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_antimetal.json new file mode 100644 index 00000000..73100b37 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_antimetal.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_antimetal" + } + ] + } + ], + "random_sequence": "antarchy:blocks/polished_antimetal" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_antimetal_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_antimetal_slab.json new file mode 100644 index 00000000..624081d1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_antimetal_slab.json @@ -0,0 +1,44 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "antarchy:polished_antimetal_slab", + "properties": { + "type": "double" + } + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": 2 + } + ], + "name": "antarchy:polished_antimetal_slab" + }, + { + "type": "minecraft:item", + "name": "antarchy:polished_antimetal_slab" + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/polished_antimetal_slab" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_antimetal_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_antimetal_stairs.json new file mode 100644 index 00000000..e96674d5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_antimetal_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_antimetal_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/polished_antimetal_stairs" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone.json new file mode 100644 index 00000000..6820fe85 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_broodstone" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_slab.json new file mode 100644 index 00000000..10ca4083 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:polished_broodstone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:polished_broodstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/polished_broodstone_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_stairs.json new file mode 100644 index 00000000..dd45fc50 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_broodstone_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_wall.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_wall.json new file mode 100644 index 00000000..28fae763 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_wall.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_broodstone_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite.json new file mode 100644 index 00000000..9542c810 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite_slab.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite_stairs.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_myrmite_wall.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite.json new file mode 100644 index 00000000..9bdf4248 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_nyxite" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/polished_nyxite" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite_button.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite_button.json new file mode 100644 index 00000000..4568d117 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_nyxite_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stone_button" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite_pressure_plate.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite_pressure_plate.json new file mode 100644 index 00000000..9590f8d2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_nyxite_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stone_pressure_plate" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite_slab.json new file mode 100644 index 00000000..fd3b5613 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:polished_nyxite_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:polished_nyxite_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/polished_nyxite_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite_stairs.json new file mode 100644 index 00000000..db1519d2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_nyxite_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/polished_nyxite_stairs" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite_wall.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite_wall.json new file mode 100644 index 00000000..852fd8f6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_nyxite_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_nyxite_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/polished_nyxite_wall" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone.json new file mode 100644 index 00000000..f2f69474 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_shellstone" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/polished_shellstone" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_slab.json new file mode 100644 index 00000000..9f14b34e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:polished_shellstone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:polished_shellstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/polished_shellstone_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_stairs.json new file mode 100644 index 00000000..b1834d14 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_shellstone_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/polished_shellstone_stairs" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_wall.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_wall.json new file mode 100644 index 00000000..dc9c6f88 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_shellstone_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/polished_shellstone_wall" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_typhonite.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_typhonite.json new file mode 100644 index 00000000..cb0c77be --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_typhonite.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_typhonite" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_typhonite_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_typhonite_slab.json new file mode 100644 index 00000000..480ee8fa --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_typhonite_slab.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_typhonite_slab" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_typhonite_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_typhonite_stairs.json new file mode 100644 index 00000000..39245e3c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_typhonite_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_typhonite_stairs" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_typhonite_wall.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_typhonite_wall.json new file mode 100644 index 00000000..001f7682 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/polished_typhonite_wall.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_typhonite_wall" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potent_nyxite.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potent_nyxite.json new file mode 100644 index 00000000..a08a448b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potent_nyxite.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:potent_nyxite" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_glowcap_mushroom.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_glowcap_mushroom.json new file mode 100644 index 00000000..c7a9f5e6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_glowcap_mushroom.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:glowcap_mushroom" + } + ] + } + ], + "random_sequence": "antarchy:blocks/potted_glowcap_mushroom" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_lotus.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_lotus.json new file mode 100644 index 00000000..ad1f944c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_lotus.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:lotus" + } + ] + } + ], + "random_sequence": "antarchy:blocks/potted_lotus" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_nadir_sapling.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_nadir_sapling.json new file mode 100644 index 00000000..004fffd6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_nadir_sapling.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nadir_sapling" + } + ] + } + ], + "random_sequence": "antarchy:blocks/potted_nadir_sapling" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_ouranwood_acorn.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_ouranwood_acorn.json new file mode 100644 index 00000000..061cb2d6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_ouranwood_acorn.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_acorn" + } + ] + } + ], + "random_sequence": "antarchy:blocks/potted_ouranwood_acorn" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_peach_sapling.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_peach_sapling.json new file mode 100644 index 00000000..c22a2844 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_peach_sapling.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach_sapling" + } + ] + } + ], + "random_sequence": "antarchy:blocks/potted_peach_sapling" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_spider_lily.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_spider_lily.json new file mode 100644 index 00000000..079da348 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_spider_lily.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:spider_lily" + } + ] + } + ], + "random_sequence": "antarchy:blocks/potted_spider_lily" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_truffalo_sapling.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_truffalo_sapling.json new file mode 100644 index 00000000..d948a9a7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/potted_truffalo_sapling.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:truffalo_sapling" + } + ] + } + ], + "random_sequence": "antarchy:blocks/potted_truffalo_sapling" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/prince_egg.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/prince_egg.json new file mode 100644 index 00000000..15debe54 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/prince_egg.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ { "type": "minecraft:item", "name": "antarchy:prince_egg" } ], + "conditions": [ { "condition": "minecraft:survives_explosion" } ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/princess_egg.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/princess_egg.json new file mode 100644 index 00000000..cfae1e9f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/princess_egg.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ { "type": "minecraft:item", "name": "antarchy:princess_egg" } ], + "conditions": [ { "condition": "minecraft:survives_explosion" } ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/purple_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/purple_truffalo_tuft.json new file mode 100644 index 00000000..f1e79bfa --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/purple_truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:purple_truffalo_tuft" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/purple_truffalo_tuft" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/rainbow_ant_nest.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/rainbow_ant_nest.json new file mode 100644 index 00000000..bd2bcf15 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/rainbow_ant_nest.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:rainbow_ant_nest" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/raw_titanium_block.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/raw_titanium_block.json new file mode 100644 index 00000000..3db55d2e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/raw_titanium_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:raw_titanium_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/raw_uranium_block.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/raw_uranium_block.json new file mode 100644 index 00000000..15692e0a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/raw_uranium_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:raw_uranium_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/red_ant_nest.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/red_ant_nest.json new file mode 100644 index 00000000..1db5c81a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/red_ant_nest.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:red_ant_nest" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/red_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/red_truffalo_tuft.json new file mode 100644 index 00000000..c57c9afd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/red_truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:red_truffalo_tuft" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/red_truffalo_tuft" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/roseate_froglight.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/roseate_froglight.json new file mode 100644 index 00000000..7665156e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/roseate_froglight.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:roseate_froglight" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_button.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_button.json new file mode 100644 index 00000000..6d8cfca0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:royal_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_button" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_door.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_door.json new file mode 100644 index 00000000..f10f45b7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "antarchy:royal_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "antarchy:royal_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_door" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_fence.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_fence.json new file mode 100644 index 00000000..a2f8c1bb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:royal_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_fence" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_fence_gate.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_fence_gate.json new file mode 100644 index 00000000..defc27c9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:royal_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_fence_gate" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_flowering_leaves.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_flowering_leaves.json new file mode 100644 index 00000000..ee441fed --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_flowering_leaves.json @@ -0,0 +1,137 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "antarchy:royal_flowering_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.05, + 0.0625, + 0.083333336, + 0.1, + 0.2 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "antarchy:royal_sapling" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/royal_flowering_leaves" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_hanging_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_hanging_sign.json new file mode 100644 index 00000000..8a23ac10 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:royal_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/royal_hanging_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_leaves.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_leaves.json new file mode 100644 index 00000000..ace26aac --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_leaves.json @@ -0,0 +1,137 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "antarchy:royal_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.05, + 0.0625, + 0.083333336, + 0.1, + 0.2 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "antarchy:royal_sapling" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/royal_leaves" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_log.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_log.json new file mode 100644 index 00000000..1b02da83 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:royal_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_log" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_planks.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_planks.json new file mode 100644 index 00000000..cfed9ada --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:royal_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_planks" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_pressure_plate.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_pressure_plate.json new file mode 100644 index 00000000..7aa789ff --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:royal_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_pressure_plate" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_sapling.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_sapling.json new file mode 100644 index 00000000..d24d014b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_sapling.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:royal_sapling" + } + ] + } + ], + "random_sequence": "antarchy:blocks/royal_sapling" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_sign.json new file mode 100644 index 00000000..47eda2de --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:royal_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/royal_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_slab.json new file mode 100644 index 00000000..a272fab5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:royal_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:royal_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_stairs.json new file mode 100644 index 00000000..5df86a9c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:royal_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_stairs" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_trapdoor.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_trapdoor.json new file mode 100644 index 00000000..97226170 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:royal_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_trapdoor" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_wall_hanging_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_wall_hanging_sign.json new file mode 100644 index 00000000..5921a4c8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_wall_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:royal_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/royal_wall_hanging_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_wall_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_wall_sign.json new file mode 100644 index 00000000..b7c5c0fb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_wall_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:royal_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/royal_wall_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_wood.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_wood.json new file mode 100644 index 00000000..7efc09b1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/royal_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:royal_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_wood" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/seashell.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/seashell.json new file mode 100644 index 00000000..da9adf20 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/seashell.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:seashell" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone.json new file mode 100644 index 00000000..d3323d86 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:shellstone" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/shellstone" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_slab.json new file mode 100644 index 00000000..d18aacd5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:shellstone_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:shellstone_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/shellstone_brick_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_stairs.json new file mode 100644 index 00000000..b5599f00 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:shellstone_brick_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/shellstone_brick_stairs" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_wall.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_wall.json new file mode 100644 index 00000000..fe77132f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:shellstone_brick_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/shellstone_brick_wall" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_bricks.json new file mode 100644 index 00000000..d726b845 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:shellstone_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/shellstone_bricks" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_pillar.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_pillar.json new file mode 100644 index 00000000..0197c093 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_pillar.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:shellstone_pillar" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/shellstone_pillar" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_slab.json new file mode 100644 index 00000000..9b8e83e9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:shellstone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:shellstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/shellstone_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_stairs.json new file mode 100644 index 00000000..5afbfa5a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:shellstone_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/shellstone_stairs" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_wall.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_wall.json new file mode 100644 index 00000000..30fda0e1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/shellstone_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:shellstone_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/shellstone_wall" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/small_blood_crystal_bud.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/small_blood_crystal_bud.json new file mode 100644 index 00000000..c3210026 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/small_blood_crystal_bud.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "antarchy:small_blood_crystal_bud" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/small_amethyst_bud" +} + diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/smooth_dream_sandstone.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/smooth_dream_sandstone.json new file mode 100644 index 00000000..910fb764 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/smooth_dream_sandstone.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:smooth_dream_sandstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smooth_sandstone" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/smooth_dream_sandstone_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/smooth_dream_sandstone_slab.json new file mode 100644 index 00000000..d2915704 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/smooth_dream_sandstone_slab.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:smooth_dream_sandstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smooth_sandstone_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/smooth_dream_sandstone_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/smooth_dream_sandstone_stairs.json new file mode 100644 index 00000000..d0898ddb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/smooth_dream_sandstone_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:smooth_dream_sandstone_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smooth_sandstone_stairs" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/spider_lily.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/spider_lily.json new file mode 100644 index 00000000..cf82c4af --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/spider_lily.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:spider_lily" + } + ] + } + ], + "random_sequence": "antarchy:blocks/spider_lily" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/spiraling_vines.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/spiraling_vines.json new file mode 100644 index 00000000..2cb5603f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/spiraling_vines.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "minecraft:shears" + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:spiraling_vines" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/spit_bug_egg.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/spit_bug_egg.json new file mode 100644 index 00000000..623ae141 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/spit_bug_egg.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:spit_bug_egg" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/spit_bug_egg" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/star_coral.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/star_coral.json new file mode 100644 index 00000000..2b132dbf --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/star_coral.json @@ -0,0 +1,42 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ], + "name": "antarchy:star_coral" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "antarchy:star_coral" + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/star_coral_block.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/star_coral_block.json new file mode 100644 index 00000000..f1b69b32 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/star_coral_block.json @@ -0,0 +1,42 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ], + "name": "antarchy:star_coral_block" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "antarchy:star_coral_block" + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/star_coral_fan.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/star_coral_fan.json new file mode 100644 index 00000000..0794b0d4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/star_coral_fan.json @@ -0,0 +1,42 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ], + "name": "antarchy:star_coral_fan" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "antarchy:star_coral_fan" + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/star_coral_wall_fan.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/star_coral_wall_fan.json new file mode 100644 index 00000000..0794b0d4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/star_coral_wall_fan.json @@ -0,0 +1,42 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ], + "name": "antarchy:star_coral_fan" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "antarchy:star_coral_fan" + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_nadir_log.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_nadir_log.json new file mode 100644 index 00000000..8c1d3eca --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_nadir_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:stripped_nadir_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_jungle_log" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_nadir_wood.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_nadir_wood.json new file mode 100644 index 00000000..72481f44 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_nadir_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:stripped_nadir_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_jungle_wood" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_ouranwood_log.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_ouranwood_log.json new file mode 100644 index 00000000..50d3061e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_ouranwood_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:stripped_ouranwood_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_jungle_log" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_ouranwood_wood.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_ouranwood_wood.json new file mode 100644 index 00000000..6e4679ad --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_ouranwood_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:stripped_ouranwood_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_jungle_wood" +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_peach_log.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_peach_log.json new file mode 100644 index 00000000..514158bb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_peach_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:stripped_peach_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_jungle_log" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_peach_wood.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_peach_wood.json new file mode 100644 index 00000000..91106444 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_peach_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:stripped_peach_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_jungle_wood" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_royal_log.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_royal_log.json new file mode 100644 index 00000000..342ffed7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_royal_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:stripped_royal_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_jungle_log" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_royal_wood.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_royal_wood.json new file mode 100644 index 00000000..94bd16cb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_royal_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:stripped_royal_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_jungle_wood" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_truffalo_log.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_truffalo_log.json new file mode 100644 index 00000000..c0314ebd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_truffalo_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:stripped_truffalo_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_jungle_log" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_truffalo_wood.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_truffalo_wood.json new file mode 100644 index 00000000..d1ae8ee1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/stripped_truffalo_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:stripped_truffalo_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_jungle_wood" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/termite_nest.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/termite_nest.json new file mode 100644 index 00000000..c222199e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/termite_nest.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:termite_nest" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/tigers_eye_block.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_bars.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_bars.json new file mode 100644 index 00000000..ca3141d4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_bars.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:titanium_bars" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/titanium_bars" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_block.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_block.json new file mode 100644 index 00000000..d75bfea9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:titanium_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_bulb.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_bulb.json new file mode 100644 index 00000000..463e1b1d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_bulb.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:titanium_bulb" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/titanium_bulb" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_door.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_door.json new file mode 100644 index 00000000..0d382fda --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "antarchy:titanium_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "antarchy:titanium_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/iron_door" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_ore.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_ore.json new file mode 100644 index 00000000..f2298a83 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "antarchy:titanium_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:raw_titanium_scrap", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_trapdoor.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_trapdoor.json new file mode 100644 index 00000000..f8099042 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/titanium_trapdoor.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:titanium_trapdoor" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "minecraft:blocks/iron_trapdoor" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/triffid_goo_block.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/triffid_goo_block.json new file mode 100644 index 00000000..b09e8e76 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/triffid_goo_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:triffid_goo_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/triffid_goo_block" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_button.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_button.json new file mode 100644 index 00000000..5ad58d66 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:truffalo_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_button" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_door.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_door.json new file mode 100644 index 00000000..69b83796 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "antarchy:truffalo_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "antarchy:truffalo_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_door" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_fence.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_fence.json new file mode 100644 index 00000000..707a33ea --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:truffalo_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_fence" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_fence_gate.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_fence_gate.json new file mode 100644 index 00000000..c8e7bc7f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:truffalo_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_fence_gate" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_hanging_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_hanging_sign.json new file mode 100644 index 00000000..54f758a0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:truffalo_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/truffalo_hanging_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_log.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_log.json new file mode 100644 index 00000000..51e527a7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:truffalo_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_log" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_planks.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_planks.json new file mode 100644 index 00000000..c529cb0d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:truffalo_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_planks" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_pressure_plate.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_pressure_plate.json new file mode 100644 index 00000000..fa9da633 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:truffalo_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_pressure_plate" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_sapling.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_sapling.json new file mode 100644 index 00000000..d970743a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_sapling.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:truffalo_sapling" + } + ] + } + ], + "random_sequence": "antarchy:blocks/truffalo_sapling" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_sign.json new file mode 100644 index 00000000..2b29322a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:truffalo_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/truffalo_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_slab.json new file mode 100644 index 00000000..8a299819 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:truffalo_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:truffalo_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_slab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_stairs.json new file mode 100644 index 00000000..158d7522 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:truffalo_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_stairs" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_trapdoor.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_trapdoor.json new file mode 100644 index 00000000..390764a8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:truffalo_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_trapdoor" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_wall_hanging_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_wall_hanging_sign.json new file mode 100644 index 00000000..23a38bab --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_wall_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:truffalo_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/truffalo_wall_hanging_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_wall_sign.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_wall_sign.json new file mode 100644 index 00000000..bad8f513 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_wall_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:truffalo_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/truffalo_wall_sign" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_wood.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_wood.json new file mode 100644 index 00000000..84d678cf --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/truffalo_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:truffalo_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_wood" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite.json new file mode 100644 index 00000000..31e2c01b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:typhonite" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_brick_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_brick_slab.json new file mode 100644 index 00000000..922c3ea7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_brick_slab.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:typhonite_brick_slab" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_brick_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_brick_stairs.json new file mode 100644 index 00000000..b1075370 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_brick_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:typhonite_brick_stairs" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_brick_wall.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_brick_wall.json new file mode 100644 index 00000000..002252ba --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_brick_wall.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:typhonite_brick_wall" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_bricks.json new file mode 100644 index 00000000..6fc7f6e8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_bricks.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:typhonite_bricks" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_pillar.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_pillar.json new file mode 100644 index 00000000..028dec50 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_pillar.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:typhonite_pillar" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_slab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_slab.json new file mode 100644 index 00000000..0ba75464 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_slab.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:typhonite_slab" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_spike.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_spike.json new file mode 100644 index 00000000..d72befaf --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_spike.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:typhonite_spike" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_stairs.json new file mode 100644 index 00000000..b3f1948f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:typhonite_stairs" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_wall.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_wall.json new file mode 100644 index 00000000..ea1fd4ae --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/typhonite_wall.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:typhonite_wall" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/umbral_moss_block.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/umbral_moss_block.json new file mode 100644 index 00000000..050f79fd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/umbral_moss_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:umbral_moss_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/moss_block" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/umbral_moss_carpet.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/umbral_moss_carpet.json new file mode 100644 index 00000000..1ca07a11 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/umbral_moss_carpet.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "antarchy:umbral_moss_carpet", + "condition": "minecraft:block_state_property", + "properties": { + "bottom": "true" + } + } + ], + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:umbral_moss_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/moss_carpet" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/upper.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/upper.json new file mode 100644 index 00000000..b5c904fa --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/upper.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:upper" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/upper" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_bars.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_bars.json new file mode 100644 index 00000000..e5a40a93 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_bars.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:uranium_bars" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/uranium_bars" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_block.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_block.json new file mode 100644 index 00000000..cb0f9784 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:uranium_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_bulb.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_bulb.json new file mode 100644 index 00000000..fa7bc0ff --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_bulb.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:uranium_bulb" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/uranium_bulb" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_door.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_door.json new file mode 100644 index 00000000..4485195d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "antarchy:uranium_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "antarchy:uranium_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/iron_door" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_ore.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_ore.json new file mode 100644 index 00000000..41202d6b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "antarchy:uranium_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:raw_uranium_scrap", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_trapdoor.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_trapdoor.json new file mode 100644 index 00000000..1ad2348a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/uranium_trapdoor.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:uranium_trapdoor" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "minecraft:blocks/iron_trapdoor" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/veined_typhonite.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/veined_typhonite.json new file mode 100644 index 00000000..86c34461 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/veined_typhonite.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:veined_typhonite" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/verdant_nyxium.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/verdant_nyxium.json new file mode 100644 index 00000000..331c7240 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/verdant_nyxium.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:verdant_nyxium" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/verdant_roots.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/verdant_roots.json new file mode 100644 index 00000000..1df874cd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/verdant_roots.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:verdant_roots" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/vortex_lens.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/vortex_lens.json new file mode 100644 index 00000000..941798cc --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/vortex_lens.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:vortex_lens" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/wasp_nest.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/wasp_nest.json new file mode 100644 index 00000000..cb9d67c8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/wasp_nest.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:wasp_nest" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/whirlflower.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/whirlflower.json new file mode 100644 index 00000000..1e4fa5d1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/whirlflower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:whirlflower" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/white_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/white_truffalo_tuft.json new file mode 100644 index 00000000..71d4ec30 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/white_truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:white_truffalo_tuft" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/white_truffalo_tuft" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/wild_corn.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/wild_corn.json new file mode 100644 index 00000000..46f29bdc --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/wild_corn.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "antarchy:wild_corn", + "properties": { + "half": "lower" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:corn" + } + ] + } + ], + "random_sequence": "antarchy:blocks/wild_corn" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/yellow_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/yellow_truffalo_tuft.json new file mode 100644 index 00000000..43ddfbb3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/blocks/yellow_truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:yellow_truffalo_tuft" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/yellow_truffalo_tuft" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/basilisk_lair/generic.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/basilisk_lair/generic.json new file mode 100644 index 00000000..93e08b3c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/basilisk_lair/generic.json @@ -0,0 +1,200 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_planks", + "weight": 16, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 6.0, + "max": 18.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_acorn", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:bluestone", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 3.0, + "max": 10.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:redstone", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 18, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 10.0, + "max": 28.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:torch", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_pickaxe", + "weight": 6 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_axe", + "weight": 6 + }, + { + "type": "minecraft:item", + "name": "minecraft:bow", + "weight": 6, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 6.0, + "max": 18.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:moss_block", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 8.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:vine", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 8.0 + } + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 7.0 + } + }, + { + "entries": [ + { + "type": "minecraft:empty", + "weight": 74 + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:chests/basilisk_lair/generic" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/basilisk_lair/treasure.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/basilisk_lair/treasure.json new file mode 100644 index 00000000..3c2530ea --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/basilisk_lair/treasure.json @@ -0,0 +1,198 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:basilisk_fang", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:basilisk_dagger", + "weight": 3, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 12.0, + "max": 25.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 5.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:bluestone", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 6.0, + "max": 16.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:redstone", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 6.0, + "max": 18.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 8, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 10.0, + "max": 24.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_pickaxe", + "weight": 5, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 12.0, + "max": 24.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 8, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 15.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 5.0, + "max": 8.0 + } + }, + { + "entries": [ + { + "type": "minecraft:empty", + "weight": 66 + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:chests/basilisk_lair/treasure" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/bedroom.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/bedroom.json new file mode 100644 index 00000000..6011c694 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/bedroom.json @@ -0,0 +1,135 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:white_bed", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:red_bed", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:blue_bed", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 12 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:paper", + "weight": 14 + }, + { + "type": "minecraft:item", + "name": "minecraft:clock", + "weight": 6 + }, + { + "type": "minecraft:item", + "name": "minecraft:compass", + "weight": 6 + }, + { + "type": "minecraft:item", + "name": "minecraft:candle", + "weight": 12 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:string", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:feather", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "antarchy:mud_pie", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:uranium_nugget", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:titanium_nugget", + "weight": 2 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 3.0 + } + } + ], + "random_sequence": "antarchy:chests/fallen_kingdom/bedroom" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/generic.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/generic.json new file mode 100644 index 00000000..1946e603 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/generic.json @@ -0,0 +1,205 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 16.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:oak_slab", + "weight": 14 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 16.0, + "min": 6.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:cobblestone", + "weight": 16 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 8 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:torch", + "weight": 14 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:stick", + "weight": 16 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:string", + "weight": 12 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:paper", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "antarchy:mud_pie", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:duct_tape", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:candle", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:uranium_nugget", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:titanium_nugget", + "weight": 4 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + } + } + ], + "random_sequence": "antarchy:chests/fallen_kingdom/generic" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/kitchen.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/kitchen.json new file mode 100644 index 00000000..6ba7c98a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/kitchen.json @@ -0,0 +1,235 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:carrot", + "weight": 14 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:potato", + "weight": 14 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:cooked_beef", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:cooked_porkchop", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bowl", + "weight": 12 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:apple", + "weight": 12 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:cookie", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:beetroot", + "weight": 8 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pumpkin_pie", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:sugar", + "weight": 6 + }, + { + "type": "minecraft:item", + "name": "antarchy:mud_pie", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:duct_tape", + "weight": 4 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:uranium_nugget", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:titanium_nugget", + "weight": 3 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 3.0 + } + } + ], + "random_sequence": "antarchy:chests/fallen_kingdom/kitchen" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/storage.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/storage.json new file mode 100644 index 00000000..98dfa9a2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/storage.json @@ -0,0 +1,220 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 16.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:cobblestone", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:oak_planks", + "weight": 18 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:spruce_planks", + "weight": 18 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:stick", + "weight": 18 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:torch", + "weight": 18 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:string", + "weight": 12 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 12 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:paper", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:flint", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:redstone", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "antarchy:mud_pie", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:duct_tape", + "weight": 4 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:uranium_nugget", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:titanium_nugget", + "weight": 3 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + } + } + ], + "random_sequence": "antarchy:chests/fallen_kingdom/storage" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/tools.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/tools.json new file mode 100644 index 00000000..56a1f365 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/tools.json @@ -0,0 +1,214 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stone_pickaxe", + "weight": 12 + }, + { + "type": "minecraft:item", + "name": "minecraft:stone_axe", + "weight": 12 + }, + { + "type": "minecraft:item", + "name": "minecraft:stone_shovel", + "weight": 12 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_pickaxe", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_axe", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_shovel", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_hoe", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:shears", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:flint_and_steel", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:shield", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:bow", + "weight": 6 + }, + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 4 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:stick", + "weight": 16 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 14 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:string", + "weight": 12 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:flint", + "weight": 12 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:leather", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "antarchy:mud_pie", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:duct_tape", + "weight": 4 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:uranium_nugget", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:titanium_nugget", + "weight": 3 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + } + } + ], + "random_sequence": "antarchy:chests/fallen_kingdom/tools" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/tower.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/tower.json new file mode 100644 index 00000000..599e935a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/tower.json @@ -0,0 +1,265 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bow", + "weight": 16, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 5.0, + "max": 22.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 14, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 6.0, + "max": 24.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:bow", + "weight": 8, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 18.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 6, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 18.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:shield", + "weight": 6 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 22, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 16.0, + "max": 32.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:spectral_arrow", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 16.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:tipped_arrow", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + }, + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "minecraft:poison" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:feather", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 8.0 + } + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:string", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 8.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:torch", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:duct_tape", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 4 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ], + "random_sequence": "antarchy:chests/fallen_kingdom_castle/tower" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/treasure.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/treasure.json new file mode 100644 index 00000000..be90946f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/treasure.json @@ -0,0 +1,146 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 24 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 20.0, + "min": 8.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:copper_ingot", + "weight": 24 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald", + "weight": 16 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 35.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 8 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond", + "weight": 12 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 5.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:uranium_nugget", + "weight": 8 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:titanium_nugget", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 6 + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:chests/fallen_kingdom/treasure" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/queen_castle/generic.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/queen_castle/generic.json new file mode 100644 index 00000000..ebfa6185 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/queen_castle/generic.json @@ -0,0 +1,12 @@ +{"type":"minecraft:chest","pools":[{"rolls":{"type":"minecraft:uniform","min":6,"max":9},"entries":[ +{"type":"minecraft:item","name":"minecraft:diamond_sword","weight":8,"functions":[{"function":"minecraft:enchant_with_levels","levels":{"type":"minecraft:uniform","min":18,"max":30},"options":"#minecraft:on_random_loot"}]}, +{"type":"minecraft:item","name":"minecraft:diamond_pickaxe","weight":7,"functions":[{"function":"minecraft:enchant_with_levels","levels":{"type":"minecraft:uniform","min":18,"max":30},"options":"#minecraft:on_random_loot"}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_helmet","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_chestplate","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_leggings","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_boots","weight":2}, +{"type":"minecraft:item","name":"antarchy:bluestone","weight":14,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":8,"max":20}}]}, +{"type":"minecraft:item","name":"antarchy:nyxite","weight":10,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":2,"max":6}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_shard","weight":12,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":2,"max":5}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_apple","weight":20,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":3}}]}, +{"type":"minecraft:item","name":"antarchy:lucid_pearl","weight":4},{"type":"minecraft:item","name":"minecraft:golden_apple","weight":5}, +{"type":"minecraft:item","name":"minecraft:potion","weight":8,"functions":[{"function":"minecraft:set_potion","id":"antarchy:inversion"}]},{"type":"minecraft:item","name":"minecraft:tipped_arrow","weight":8,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":4,"max":12}},{"function":"minecraft:set_potion","id":"antarchy:inversion"}]}, +{"type":"minecraft:item","name":"minecraft:book","weight":10,"functions":[{"function":"minecraft:enchant_randomly","options":["minecraft:mending","minecraft:unbreaking","minecraft:protection","minecraft:efficiency"]}]} +]}],"random_sequence":"antarchy:chests/queen_castle/generic"} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/queen_castle/treasure.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/queen_castle/treasure.json new file mode 100644 index 00000000..cfa3c85c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/queen_castle/treasure.json @@ -0,0 +1,12 @@ +{"type":"minecraft:chest","pools":[{"rolls":{"type":"minecraft:uniform","min":7,"max":10},"entries":[ +{"type":"minecraft:item","name":"antarchy:ultimate_helmet","weight":2},{"type":"minecraft:item","name":"antarchy:ultimate_chestplate","weight":2},{"type":"minecraft:item","name":"antarchy:ultimate_leggings","weight":2},{"type":"minecraft:item","name":"antarchy:ultimate_boots","weight":2}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_katana","weight":5},{"type":"minecraft:item","name":"antarchy:lucid_pearl","weight":8}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_shard","weight":14,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":3,"max":8}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_apple","weight":20,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":4}}]}, +{"type":"minecraft:item","name":"antarchy:bluestone","weight":14,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":10,"max":24}}]}, +{"type":"minecraft:item","name":"antarchy:nyxite","weight":10,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":4,"max":10}}]}, +{"type":"minecraft:item","name":"antarchy:potent_nyxite","weight":4},{"type":"minecraft:item","name":"minecraft:enchanted_golden_apple","weight":2}, +{"type":"minecraft:item","name":"minecraft:book","weight":14,"functions":[{"function":"minecraft:enchant_randomly","options":["minecraft:mending","minecraft:unbreaking","minecraft:protection","minecraft:efficiency","minecraft:fortune"]}]}, +{"type":"minecraft:item","name":"minecraft:potion","weight":8,"functions":[{"function":"minecraft:set_potion","id":"antarchy:inversion"}]},{"type":"minecraft:item","name":"minecraft:tipped_arrow","weight":8,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":6,"max":16}},{"function":"minecraft:set_potion","id":"antarchy:inversion"}]}, +{"type":"minecraft:item","name":"antarchy:titanium_ingot","weight":1},{"type":"minecraft:item","name":"antarchy:uranium_ingot","weight":1} +]}],"random_sequence":"antarchy:chests/queen_castle/treasure"} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/ruined_arena/generic.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/ruined_arena/generic.json new file mode 100644 index 00000000..1d928138 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/ruined_arena/generic.json @@ -0,0 +1,309 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bow", + "weight": 16, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 6.0, + "max": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:shield", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 18, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 12.0, + "max": 32.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:spectral_arrow", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 6.0, + "max": 14.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:bread", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 9, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:lapis_lazuli", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 10.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:experience_bottle", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 5.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "antarchy:shrinking" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "minecraft:strength" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "minecraft:slow_falling" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 5, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 10.0, + "max": 24.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 40, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 5.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 40, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 5.0 + } + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 7.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ultimate_sword", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "antarchy:ultimate_bow", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "antarchy:ultimate_crossbow", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_sword", + "weight": 4, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 18.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 4, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 18.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 6, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 20.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ], + "random_sequence": "antarchy:chests/ruined_arena/generic" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/ruined_prison/generic.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/ruined_prison/generic.json new file mode 100644 index 00000000..f7a5e755 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/ruined_prison/generic.json @@ -0,0 +1,240 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bread", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 5.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:rotten_flesh", + "weight": 16, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 7.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:bone", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:chain", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 20.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:torch", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:string", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:coal", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:experience_bottle", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "minecraft:healing" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:duct_tape", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 7.0 + } + } + ], + "random_sequence": "antarchy:chests/ruined_prison/generic" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/ruined_prison/warden_cache.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/ruined_prison/warden_cache.json new file mode 100644 index 00000000..ed539a08 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/ruined_prison/warden_cache.json @@ -0,0 +1,282 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_sword", + "weight": 14, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 10.0, + "max": 22.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 14, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 10.0, + "max": 22.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:shield", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 16, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 12.0, + "max": 28.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:spectral_arrow", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:chainmail_chestplate", + "weight": 8, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:chainmail_leggings", + "weight": 8, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:experience_bottle", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 5.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "minecraft:strength" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "minecraft:healing" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 6, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 16.0, + "max": 28.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 6 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 18, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 5.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 18, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 5.0 + } + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 7.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diamond_sword", + "weight": 4, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 20.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 4, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 20.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 6, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 20.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ], + "random_sequence": "antarchy:chests/ruined_prison/warden_cache" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/scorpion_arena/generic.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/scorpion_arena/generic.json new file mode 100644 index 00000000..01fe9ead --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/scorpion_arena/generic.json @@ -0,0 +1,12 @@ +{"type":"minecraft:chest","pools":[{"rolls":{"type":"minecraft:uniform","min":5,"max":8},"entries":[ +{"type":"minecraft:item","name":"minecraft:arrow","weight":18,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":12,"max":32}}]}, +{"type":"minecraft:item","name":"minecraft:tipped_arrow","weight":8,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":2,"max":6}},{"function":"minecraft:set_potion","id":"antarchy:inversion"}]}, +{"type":"minecraft:item","name":"minecraft:bow","weight":10,"functions":[{"function":"minecraft:enchant_with_levels","levels":{"type":"minecraft:uniform","min":6,"max":18},"options":"#minecraft:on_random_loot"}]}, +{"type":"minecraft:item","name":"minecraft:iron_sword","weight":8},{"type":"minecraft:item","name":"minecraft:shield","weight":8}, +{"type":"minecraft:item","name":"antarchy:bluestone","weight":15,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":3,"max":10}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_shard","weight":10,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":3}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_apple","weight":14,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":2}}]}, +{"type":"minecraft:item","name":"antarchy:scorpion_whip","weight":3},{"type":"minecraft:item","name":"minecraft:golden_apple","weight":3}, +{"type":"minecraft:item","name":"minecraft:potion","weight":7,"functions":[{"function":"minecraft:set_potion","id":"antarchy:inversion"}]}, +{"type":"minecraft:item","name":"minecraft:book","weight":5,"functions":[{"function":"minecraft:enchant_randomly","options":["minecraft:mending","minecraft:unbreaking","minecraft:sharpness"]}]} +]}],"random_sequence":"antarchy:chests/scorpion_arena/generic"} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/scorpion_arena/treasure.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/scorpion_arena/treasure.json new file mode 100644 index 00000000..9ca8c11a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/scorpion_arena/treasure.json @@ -0,0 +1,13 @@ +{"type":"minecraft:chest","pools":[{"rolls":{"type":"minecraft:uniform","min":6,"max":9},"entries":[ +{"type":"minecraft:item","name":"antarchy:scorpion_whip","weight":8},{"type":"minecraft:item","name":"antarchy:blood_crystal_katana","weight":4}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_helmet","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_chestplate","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_leggings","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_boots","weight":2}, +{"type":"minecraft:item","name":"antarchy:lucid_pearl","weight":3},{"type":"minecraft:item","name":"antarchy:blood_crystal_shard","weight":12,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":2,"max":6}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_apple","weight":16,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":3}}]}, +{"type":"minecraft:item","name":"antarchy:bluestone","weight":12,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":8,"max":18}}]}, +{"type":"minecraft:item","name":"antarchy:nyxite","weight":8,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":2,"max":6}}]}, +{"type":"minecraft:item","name":"minecraft:diamond_sword","weight":7,"functions":[{"function":"minecraft:enchant_with_levels","levels":{"type":"minecraft:uniform","min":18,"max":30},"options":"#minecraft:on_random_loot"}]}, +{"type":"minecraft:item","name":"minecraft:book","weight":8,"functions":[{"function":"minecraft:enchant_randomly","options":["minecraft:mending","minecraft:unbreaking","minecraft:sharpness","minecraft:protection"]}]}, +{"type":"minecraft:item","name":"minecraft:tipped_arrow","weight":6,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":4,"max":10}},{"function":"minecraft:set_potion","id":"antarchy:inversion"}]}, +{"type":"minecraft:item","name":"minecraft:potion","weight":6,"functions":[{"function":"minecraft:set_potion","id":"antarchy:inversion"}]}, +{"type":"minecraft:item","name":"antarchy:titanium_ingot","weight":1},{"type":"minecraft:item","name":"antarchy:uranium_ingot","weight":1} +]}],"random_sequence":"antarchy:chests/scorpion_arena/treasure"} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/seashell.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/seashell.json new file mode 100644 index 00000000..28e25c0e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/seashell.json @@ -0,0 +1,129 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "rolls": { + "type": "minecraft:uniform", + "min": 1, + "max": 3 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lapis_lazuli", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2, + "max": 6 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:redstone", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2, + "max": 6 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:quartz", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2, + "max": 5 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:raw_iron", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1, + "max": 3 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:raw_gold", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1, + "max": 3 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:heart_of_the_sea", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 1 + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/stampys_house/bedroom.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/stampys_house/bedroom.json new file mode 100644 index 00000000..8fcaf3c1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/stampys_house/bedroom.json @@ -0,0 +1,176 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:white_wool", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:orange_wool", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:candle", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:paper", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 7.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:feather", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 10, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_cat", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:bone", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:amethyst_shard", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:rainbow_sugar", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "antarchy:duct_tape", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 7.0 + } + } + ], + "random_sequence": "antarchy:chests/stampys_house/bedroom" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/stampys_house/kitchen.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/stampys_house/kitchen.json new file mode 100644 index 00000000..85d58abc --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/stampys_house/kitchen.json @@ -0,0 +1,165 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach", + "weight": 18, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 3.0, + "max": 8.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:peach_pie", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:popcorn", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:cornbread", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 5.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:root_beer", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:rainbow_sugar", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:cookie", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 3.0, + "max": 8.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:milk_bucket", + "weight": 6 + }, + { + "type": "minecraft:item", + "name": "minecraft:cake", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "minecraft:apple", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 5.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:bread", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 5.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:mud_pie", + "weight": 4 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 7.0 + } + } + ], + "random_sequence": "antarchy:chests/stampys_house/kitchen" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/stampys_house/storage.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/stampys_house/storage.json new file mode 100644 index 00000000..c7093fe5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/stampys_house/storage.json @@ -0,0 +1,176 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:peach_planks", + "weight": 16, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 6.0, + "max": 16.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:peach_slab", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:ladder", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:torch", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:redstone", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:lever", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:stick", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:string", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 8.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:fishing_rod", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:bow", + "weight": 6, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 6.0, + "max": 18.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:duct_tape", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 3 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 8.0 + } + } + ], + "random_sequence": "antarchy:chests/stampys_house/storage" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/temple_of_technoblade/generic.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/temple_of_technoblade/generic.json new file mode 100644 index 00000000..e5882976 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/temple_of_technoblade/generic.json @@ -0,0 +1,210 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:potato", + "weight": 20, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 24.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:baked_potato", + "weight": 16, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:poisonous_potato", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_carrot", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:cooked_porkchop", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 8.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ingot", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 5.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:amethyst_shard", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 8.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:tigers_eye", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 7, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 4 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 7.0 + } + }, + { + "entries": [ + { + "type": "minecraft:empty", + "weight": 72 + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:chests/temple_of_technoblade/generic" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/temple_of_technoblade/treasure.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/temple_of_technoblade/treasure.json new file mode 100644 index 00000000..189b3f72 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/temple_of_technoblade/treasure.json @@ -0,0 +1,170 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 16, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 7.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ingot", + "weight": 18, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:amethyst_shard", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:blood_crystal_shard", + "weight": 9, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:tigers_eye", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 8, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 18.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:fallen_king_crown", + "weight": 2 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 5.0, + "max": 8.0 + } + }, + { + "entries": [ + { + "type": "minecraft:empty", + "weight": 64 + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:chests/temple_of_technoblade/treasure" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/trayaurus_lab/trayaurus_lab.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/trayaurus_lab/trayaurus_lab.json new file mode 100644 index 00000000..3163e7d5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/trayaurus_lab/trayaurus_lab.json @@ -0,0 +1,449 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:redstone", + "weight": 28 + }, + { + "type": "minecraft:item", + "name": "minecraft:redstone_torch", + "weight": 18 + }, + { + "type": "minecraft:item", + "name": "minecraft:repeater", + "weight": 12 + }, + { + "type": "minecraft:item", + "name": "minecraft:comparator", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:lever", + "weight": 14 + }, + { + "type": "minecraft:item", + "name": "minecraft:observer", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:piston", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:sticky_piston", + "weight": 6 + }, + { + "type": "minecraft:item", + "name": "minecraft:dropper", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:dispenser", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:glass_bottle", + "weight": 12 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 7.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 12 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 7.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:copper_ingot", + "weight": 14 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 8 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:glowstone_dust", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:uranium_nugget", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:titanium_nugget", + "weight": 2 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flint_and_steel", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 15.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book", + "weight": 16 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": [ + "minecraft:mending", + "minecraft:swift_sneak", + "minecraft:frost_walker", + "minecraft:soul_speed", + "minecraft:binding_curse" + ] + } + ], + "name": "minecraft:book", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "antarchy:shrinking" + } + } + } + ], + "name": "minecraft:potion", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "antarchy:growing" + } + } + } + ], + "name": "minecraft:potion", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_sword", + "weight": 8 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:fermented_spider_eye", + "weight": 6 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:rainbow_sugar", + "weight": 14 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:glowstone_dust", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:lapis_lazuli", + "weight": 8 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:amethyst_shard", + "weight": 8 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bone", + "weight": 16 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:string", + "weight": 14 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:duct_tape", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:ouranwood_acorn", + "weight": 12 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:paper", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:feather", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "antarchy:mud_pie", + "weight": 4 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 4.0 + } + } + ], + "random_sequence": "antarchy:chests/trayaurus_lab" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/underside_ruins/generic.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/underside_ruins/generic.json new file mode 100644 index 00000000..482f04ec --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/underside_ruins/generic.json @@ -0,0 +1,12 @@ +{"type":"minecraft:chest","pools":[{"rolls":{"type":"minecraft:uniform","min":5,"max":8},"entries":[ +{"type":"minecraft:item","name":"minecraft:arrow","weight":16,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":10,"max":28}}]}, +{"type":"minecraft:item","name":"minecraft:tipped_arrow","weight":9,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":2,"max":6}},{"function":"minecraft:set_potion","id":"antarchy:inversion"}]}, +{"type":"minecraft:item","name":"minecraft:iron_pickaxe","weight":10},{"type":"minecraft:item","name":"minecraft:iron_sword","weight":8}, +{"type":"minecraft:item","name":"antarchy:bluestone","weight":15,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":4,"max":12}}]}, +{"type":"minecraft:item","name":"antarchy:nyxite","weight":10,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":4}}]}, +{"type":"minecraft:item","name":"antarchy:lucid_eye","weight":8,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":2}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_shard","weight":9,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":3}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_apple","weight":15,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":2}}]}, +{"type":"minecraft:item","name":"minecraft:potion","weight":8,"functions":[{"function":"minecraft:set_potion","id":"antarchy:inversion"}]}, +{"type":"minecraft:item","name":"minecraft:book","weight":6,"functions":[{"function":"minecraft:enchant_randomly","options":["minecraft:mending","minecraft:unbreaking","minecraft:efficiency"]}]} +]}],"random_sequence":"antarchy:chests/underside_ruins/generic"} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/underside_ruins/treasure.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/underside_ruins/treasure.json new file mode 100644 index 00000000..3562a324 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/chests/underside_ruins/treasure.json @@ -0,0 +1,13 @@ +{"type":"minecraft:chest","pools":[{"rolls":{"type":"minecraft:uniform","min":6,"max":9},"entries":[ +{"type":"minecraft:item","name":"antarchy:lucid_pearl","weight":8},{"type":"minecraft:item","name":"antarchy:blood_crystal_katana","weight":3}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_helmet","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_chestplate","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_leggings","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_boots","weight":2}, +{"type":"minecraft:item","name":"antarchy:potent_nyxite","weight":4},{"type":"minecraft:item","name":"antarchy:nyxite","weight":10,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":3,"max":8}}]}, +{"type":"minecraft:item","name":"antarchy:bluestone","weight":13,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":8,"max":20}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_shard","weight":12,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":2,"max":6}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_apple","weight":16,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":3}}]}, +{"type":"minecraft:item","name":"minecraft:diamond_pickaxe","weight":8,"functions":[{"function":"minecraft:enchant_with_levels","levels":{"type":"minecraft:uniform","min":18,"max":30},"options":"#minecraft:on_random_loot"}]}, +{"type":"minecraft:item","name":"minecraft:book","weight":10,"functions":[{"function":"minecraft:enchant_randomly","options":["minecraft:mending","minecraft:unbreaking","minecraft:efficiency","minecraft:protection"]}]}, +{"type":"minecraft:item","name":"minecraft:tipped_arrow","weight":7,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":4,"max":10}},{"function":"minecraft:set_potion","id":"antarchy:inversion"}]}, +{"type":"minecraft:item","name":"minecraft:potion","weight":7,"functions":[{"function":"minecraft:set_potion","id":"antarchy:inversion"}]}, +{"type":"minecraft:item","name":"antarchy:titanium_ingot","weight":1},{"type":"minecraft:item","name":"antarchy:uranium_ingot","weight":1} +]}],"random_sequence":"antarchy:chests/underside_ruins/treasure"} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/alpha_mantis.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/alpha_mantis.json new file mode 100644 index 00000000..851328fc --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/alpha_mantis.json @@ -0,0 +1,123 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mantis_claw" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget" + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 4.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 2.0 + } + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget" + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 4.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 2.0 + } + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:raw_bug_meat" + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 6.0, + "max": 10.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 3.0 + } + } + ] + } + ], + "random_sequence": "antarchy:entities/alpha_mantis" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/apple_cow.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/apple_cow.json new file mode 100644 index 00000000..a7437c82 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/apple_cow.json @@ -0,0 +1,75 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:leather", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:beef", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + }, + { + "function": "minecraft:furnace_smelt", + "conditions": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + } + ] + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/basilisk.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/basilisk.json new file mode 100644 index 00000000..a5a7135b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/basilisk.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": { + "type": "minecraft:uniform", + "min": 1, + "max": 2 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:basilisk_fang" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/bed_bug.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/bed_bug.json new file mode 100644 index 00000000..eb13f53d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/bed_bug.json @@ -0,0 +1,39 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:raw_bug_meat", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ], + "random_sequence": "antarchy:entities/bed_bug" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/brutalfly.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/brutalfly.json new file mode 100644 index 00000000..c001fa35 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/brutalfly.json @@ -0,0 +1,39 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:brutalfly_wing" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "random_sequence": "antarchy:entities/brutalfly" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/cheep.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/cheep.json new file mode 100644 index 00000000..ea3b5bba --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/cheep.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:cheep" + } + ] + } + ], + "random_sequence": "antarchy:entities/cheep" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/cloud_shark.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/cloud_shark.json new file mode 100644 index 00000000..5a78e7af --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/cloud_shark.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:cloud_shark_fin" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/creeping_horror.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/creeping_horror.json new file mode 100644 index 00000000..a6a1b354 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/creeping_horror.json @@ -0,0 +1,72 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chitin", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:raw_bug_meat", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ], + "random_sequence": "antarchy:entities/creeping_horror" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/easter_bunny.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/easter_bunny.json new file mode 100644 index 00000000..c4f7ac96 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/easter_bunny.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "pools": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/emperor_scorpion.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/emperor_scorpion.json new file mode 100644 index 00000000..c5a7c9df --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/emperor_scorpion.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:emperor_scorpion_stinger" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/enchanted_golden_apple_cow.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/enchanted_golden_apple_cow.json new file mode 100644 index 00000000..a7437c82 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/enchanted_golden_apple_cow.json @@ -0,0 +1,75 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:leather", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:beef", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + }, + { + "function": "minecraft:furnace_smelt", + "conditions": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + } + ] + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/flying_squirrel.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/flying_squirrel.json new file mode 100644 index 00000000..c4f7ac96 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/flying_squirrel.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "pools": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/golden_apple_cow.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/golden_apple_cow.json new file mode 100644 index 00000000..a7437c82 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/golden_apple_cow.json @@ -0,0 +1,75 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:leather", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:beef", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + }, + { + "function": "minecraft:furnace_smelt", + "conditions": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + } + ] + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/hercules_beetle.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/hercules_beetle.json new file mode 100644 index 00000000..a30541b2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/hercules_beetle.json @@ -0,0 +1,39 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:hercules_horn", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ], + "random_sequence": "antarchy:entities/hercules_beetle" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/jerry.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/jerry.json new file mode 100644 index 00000000..2a746c8b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/jerry.json @@ -0,0 +1,39 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:jerry_nucleus", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ], + "random_sequence": "antarchy:entities/jerry" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/jumpy_bug.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/jumpy_bug.json new file mode 100644 index 00000000..7bb37ad8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/jumpy_bug.json @@ -0,0 +1,94 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:jumpy_bug_leg", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chitin", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:raw_bug_meat", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/king.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/king.json new file mode 100644 index 00000000..b949f080 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/king.json @@ -0,0 +1,109 @@ +{ + "type": "minecraft:entity", + "random_sequence": "antarchy:entities/king", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:prince_egg", + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ] + } + ] + }, + { + "rolls": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 6.0 + }, + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:king_scale", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 16.0 + } + } + ] + } + ] + }, + { + "rolls": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 12.0 + }, + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gold_block", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 12.0, + "max": 20.0 + } + } + ] + } + ] + }, + { + "rolls": { + "type": "minecraft:uniform", + "min": 3.0, + "max": 5.0 + }, + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 10.0, + "max": 16.0 + } + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/kraken.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/kraken.json new file mode 100644 index 00000000..8306f4e1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/kraken.json @@ -0,0 +1,41 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": { + "type": "minecraft:uniform", + "min": 2, + "max": 3 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:kraken_tooth" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + }, + { + "rolls": { + "type": "minecraft:uniform", + "min": 2, + "max": 4 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:kraken_tentacle" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/lucid.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/lucid.json new file mode 100644 index 00000000..664ce949 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/lucid.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:lucid_eye" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/lurking_terror.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/lurking_terror.json new file mode 100644 index 00000000..fa23ca8f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/lurking_terror.json @@ -0,0 +1,72 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chitin", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:raw_bug_meat", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ], + "random_sequence": "antarchy:entities/lurking_terror" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/manticore.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/manticore.json new file mode 100644 index 00000000..3eb728b5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/manticore.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1.0, + "entries": [{ "type": "minecraft:item", "name": "antarchy:manticore_wing" }], + "conditions": [{ "condition": "minecraft:killed_by_player" }], + "functions": [ + { "function": "minecraft:set_count", "count": { "type": "minecraft:uniform", "min": 1.0, "max": 2.0 } }, + { "function": "minecraft:enchanted_count_increase", "enchantment": "minecraft:looting", "count": { "type": "minecraft:uniform", "min": 0.0, "max": 1.0 } } + ] + } + ], + "random_sequence": "antarchy:entities/manticore" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/mantis.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/mantis.json new file mode 100644 index 00000000..b24b2ee3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/mantis.json @@ -0,0 +1,71 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mantis_claw" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance", + "chance": 0.35 + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 1.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:raw_bug_meat" + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "random_sequence": "antarchy:entities/mantis" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/missile_squid.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/missile_squid.json new file mode 100644 index 00000000..c4f7ac96 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/missile_squid.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "pools": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/molevore.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/molevore.json new file mode 100644 index 00000000..6d8b3d99 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/molevore.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:molevore_nose" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/moleworm.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/moleworm.json new file mode 100644 index 00000000..abb99896 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/moleworm.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:moleworm", + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/nightmare.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/nightmare.json new file mode 100644 index 00000000..27bd59df --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/nightmare.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:nightmare_scale", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 5.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/octopus_bomb.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/octopus_bomb.json new file mode 100644 index 00000000..c66fab67 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/octopus_bomb.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": { + "type": "minecraft:uniform", + "min": 5, + "max": 10 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:ink_sac" + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/ouranwood_deer.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/ouranwood_deer.json new file mode 100644 index 00000000..5bd5aaec --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/ouranwood_deer.json @@ -0,0 +1,75 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:leather", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:raw_venison", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + }, + { + "function": "minecraft:furnace_smelt", + "conditions": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + } + ] + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/queen.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/queen.json new file mode 100644 index 00000000..39697c66 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/queen.json @@ -0,0 +1,109 @@ +{ + "type": "minecraft:entity", + "random_sequence": "antarchy:entities/queen", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:princess_egg", + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ] + } + ] + }, + { + "rolls": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 6.0 + }, + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:queen_scale", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 16.0 + } + } + ] + } + ] + }, + { + "rolls": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 12.0 + }, + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:blood_crystal_shard", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 12.0, + "max": 20.0 + } + } + ] + } + ] + }, + { + "rolls": { + "type": "minecraft:uniform", + "min": 3.0, + "max": 5.0 + }, + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:netherite_scrap", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 10.0, + "max": 16.0 + } + } + ] + } + ] + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/spit_bug.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/spit_bug.json new file mode 100644 index 00000000..15863bcc --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/spit_bug.json @@ -0,0 +1,72 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chitin", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:raw_bug_meat", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ], + "random_sequence": "antarchy:entities/spit_bug" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/stink_bug.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/stink_bug.json new file mode 100644 index 00000000..a392269a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/stink_bug.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:stink_bug" + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 1.0 + } + } + ] + } + ], + "random_sequence": "antarchy:entities/stink_bug" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/toreterror.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/toreterror.json new file mode 100644 index 00000000..8b8512f1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/toreterror.json @@ -0,0 +1,64 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 5.0, + "max": 10.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "antarchy:primordial_scute" + } + ], + "rolls": 1.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:constant", + "value": 1 + } + } + ], + "name": "antarchy:water_cannon" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:entities/toreterror" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/triffid.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/triffid.json new file mode 100644 index 00000000..703b4e66 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/triffid.json @@ -0,0 +1,39 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:triffid_goo" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 5.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "random_sequence": "antarchy:entities/triffid" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/vortex.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/vortex.json new file mode 100644 index 00000000..d8ed6c80 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/vortex.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:vortex_charge", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + } + ] + } + ], + "random_sequence": "antarchy:entities/vortex" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/worm.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/entities/worm.json new file mode 100644 index 00000000..c9cec376 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/loot_table/spawners/basilisk_lair/hard.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/basilisk_lair/hard.json new file mode 100644 index 00000000..310a2352 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/basilisk_lair/hard.json @@ -0,0 +1,214 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:basilisk_fang", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:basilisk_dagger", + "weight": 3, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 18.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 10, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 20.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_sword", + "weight": 8, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 20.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_pickaxe", + "weight": 7, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 18.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 16, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 24.0, + "max": 48.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:bluestone", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 20.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:redstone", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 20.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 10, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 20.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 5.0, + "max": 8.0 + } + }, + { + "entries": [ + { + "type": "minecraft:empty", + "weight": 64 + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:spawners/basilisk_lair/hard" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/basilisk_lair/medium.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/basilisk_lair/medium.json new file mode 100644 index 00000000..5fe07766 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/basilisk_lair/medium.json @@ -0,0 +1,187 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 18, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 14.0, + "max": 36.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:bow", + "weight": 12, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 10.0, + "max": 22.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_sword", + "weight": 10, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 10.0, + "max": 22.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_pickaxe", + "weight": 10, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:bluestone", + "weight": 16, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 5.0, + "max": 14.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:redstone", + "weight": 16, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 5.0, + "max": 14.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:dispenser", + "weight": 7 + }, + { + "type": "minecraft:item", + "name": "minecraft:tripwire_hook", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:ouranwood_acorn", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 5 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 7.0 + } + }, + { + "entries": [ + { + "type": "minecraft:empty", + "weight": 72 + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:spawners/basilisk_lair/medium" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/fallen_kingdom_castle/hard.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/fallen_kingdom_castle/hard.json new file mode 100644 index 00000000..d18616d0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/fallen_kingdom_castle/hard.json @@ -0,0 +1,231 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ingot", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:copper_ingot", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 8.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 8, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 15.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 10, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 15.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 12.0, + "max": 32.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:duct_tape", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:torch", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:bread", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:mud_pie", + "weight": 4 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 7.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:fallen_king_crown", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 1.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 9, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 9, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 9 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ], + "random_sequence": "antarchy:spawners/fallen_kingdom_castle/trail_chamber/hard" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/fallen_kingdom_castle/medium.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/fallen_kingdom_castle/medium.json new file mode 100644 index 00000000..69b9914a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/fallen_kingdom_castle/medium.json @@ -0,0 +1,260 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bread", + "weight": 18, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:copper_ingot", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 8.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ingot", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 24.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:torch", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:duct_tape", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "antarchy:shrinking" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "antarchy:growing" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:mud_pie", + "weight": 4 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 3.0, + "max": 6.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:fallen_king_crown", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 1.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 7 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 4, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 10.0, + "max": 25.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ], + "random_sequence": "antarchy:spawners/fallen_kingdom_castle/trail_chamber/medium" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/queen_castle/hard.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/queen_castle/hard.json new file mode 100644 index 00000000..b6d023b6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/queen_castle/hard.json @@ -0,0 +1,7 @@ +{"type":"minecraft:chest","pools":[{"rolls":{"type":"minecraft:uniform","min":6,"max":9},"entries":[ +{"type":"minecraft:item","name":"minecraft:diamond_sword","weight":8,"functions":[{"function":"minecraft:enchant_with_levels","levels":{"type":"minecraft:uniform","min":24,"max":35},"options":"#minecraft:on_random_loot"}]},{"type":"minecraft:item","name":"minecraft:diamond_pickaxe","weight":8,"functions":[{"function":"minecraft:enchant_with_levels","levels":{"type":"minecraft:uniform","min":24,"max":35},"options":"#minecraft:on_random_loot"}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_katana","weight":6},{"type":"minecraft:item","name":"antarchy:blood_crystal_helmet","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_chestplate","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_leggings","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_boots","weight":2},{"type":"minecraft:item","name":"antarchy:lucid_pearl","weight":5}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_shard","weight":14,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":3,"max":8}}]},{"type":"minecraft:item","name":"antarchy:blood_crystal_apple","weight":22,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":4}}]}, +{"type":"minecraft:item","name":"antarchy:bluestone","weight":14,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":10,"max":24}}]},{"type":"minecraft:item","name":"antarchy:nyxite","weight":10,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":4,"max":10}}]}, +{"type":"minecraft:item","name":"minecraft:enchanted_golden_apple","weight":2},{"type":"minecraft:item","name":"minecraft:potion","weight":9,"functions":[{"function":"minecraft:set_potion","id":"antarchy:inversion"}]},{"type":"minecraft:item","name":"minecraft:tipped_arrow","weight":9,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":6,"max":16}},{"function":"minecraft:set_potion","id":"antarchy:inversion"}]},{"type":"minecraft:item","name":"minecraft:book","weight":14,"functions":[{"function":"minecraft:enchant_randomly","options":["minecraft:mending","minecraft:unbreaking","minecraft:protection","minecraft:efficiency","minecraft:fortune"]}]},{"type":"minecraft:item","name":"antarchy:titanium_ingot","weight":1},{"type":"minecraft:item","name":"antarchy:uranium_ingot","weight":1} +]}],"random_sequence":"antarchy:spawners/queen_castle/hard"} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/queen_castle/medium.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/queen_castle/medium.json new file mode 100644 index 00000000..6119fe04 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/queen_castle/medium.json @@ -0,0 +1,7 @@ +{"type":"minecraft:chest","pools":[{"rolls":{"type":"minecraft:uniform","min":5,"max":8},"entries":[ +{"type":"minecraft:item","name":"minecraft:diamond_sword","weight":8,"functions":[{"function":"minecraft:enchant_with_levels","levels":{"type":"minecraft:uniform","min":18,"max":28},"options":"#minecraft:on_random_loot"}]},{"type":"minecraft:item","name":"minecraft:diamond_pickaxe","weight":7,"functions":[{"function":"minecraft:enchant_with_levels","levels":{"type":"minecraft:uniform","min":18,"max":28},"options":"#minecraft:on_random_loot"}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_katana","weight":4},{"type":"minecraft:item","name":"antarchy:blood_crystal_chestplate","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_leggings","weight":2}, +{"type":"minecraft:item","name":"antarchy:bluestone","weight":15,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":8,"max":18}}]},{"type":"minecraft:item","name":"antarchy:nyxite","weight":10,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":2,"max":6}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_shard","weight":12,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":2,"max":5}}]},{"type":"minecraft:item","name":"antarchy:blood_crystal_apple","weight":21,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":3}}]}, +{"type":"minecraft:item","name":"minecraft:potion","weight":9,"functions":[{"function":"minecraft:set_potion","id":"antarchy:inversion"}]},{"type":"minecraft:item","name":"minecraft:tipped_arrow","weight":9,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":4,"max":12}},{"function":"minecraft:set_potion","id":"antarchy:inversion"}]},{"type":"minecraft:item","name":"minecraft:book","weight":11,"functions":[{"function":"minecraft:enchant_randomly","options":["minecraft:mending","minecraft:unbreaking","minecraft:protection","minecraft:efficiency"]}]} +]}],"random_sequence":"antarchy:spawners/queen_castle/medium"} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/ruined_arena/hard.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/ruined_arena/hard.json new file mode 100644 index 00000000..bba31926 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/ruined_arena/hard.json @@ -0,0 +1,348 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:ultimate_sword", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "antarchy:ultimate_bow", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "antarchy:ultimate_crossbow", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_sword", + "weight": 10, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 24.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 10, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 24.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:bow", + "weight": 8, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 24.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:shield", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 18, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 24.0, + "max": 48.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:spectral_arrow", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 12.0, + "max": 24.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:experience_bottle", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 5.0, + "max": 10.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "minecraft:strength" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "minecraft:swiftness" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "minecraft:regeneration" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 10, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 24.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 56, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 9.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 56, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 9.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_ingot", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_ingot", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 5.0, + "max": 8.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diamond_sword", + "weight": 8, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 24.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 8, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 24.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 10, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 25.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:netherite_scrap", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ], + "random_sequence": "antarchy:spawners/ruined_arena/hard" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/ruined_arena/medium.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/ruined_arena/medium.json new file mode 100644 index 00000000..7f1876a4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/ruined_arena/medium.json @@ -0,0 +1,279 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_sword", + "weight": 18, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 16, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 10.0, + "max": 22.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:bow", + "weight": 14, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 10.0, + "max": 22.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:shield", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 20, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 16.0, + "max": 36.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:spectral_arrow", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 20.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:experience_bottle", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 3.0, + "max": 7.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "minecraft:swiftness" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "minecraft:strength" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "minecraft:healing" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ingot", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 7.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:lapis_lazuli", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 5.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 48, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 3.0, + "max": 7.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 48, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 3.0, + "max": 7.0 + } + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 7.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diamond_sword", + "weight": 4, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 20.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 6, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 20.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 6 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 1.0 + } + } + ], + "random_sequence": "antarchy:spawners/ruined_arena/medium" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/ruined_prison/hard.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/ruined_prison/hard.json new file mode 100644 index 00000000..827dccb2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/ruined_prison/hard.json @@ -0,0 +1,274 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diamond_sword", + "weight": 10, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 24.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 10, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 24.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:shield", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 18, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 24.0, + "max": 48.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:spectral_arrow", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 12.0, + "max": 24.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:experience_bottle", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 5.0, + "max": 10.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "minecraft:strength" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "minecraft:regeneration" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 10, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 24.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 40, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 8.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 40, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 8.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_ingot", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_ingot", + "weight": 2 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 5.0, + "max": 8.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 8, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 24.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 10, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 25.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:netherite_scrap", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ], + "random_sequence": "antarchy:spawners/ruined_prison/hard" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/ruined_prison/medium.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/ruined_prison/medium.json new file mode 100644 index 00000000..8ce546a3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/ruined_prison/medium.json @@ -0,0 +1,248 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_sword", + "weight": 18, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 16, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 10.0, + "max": 22.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:shield", + "weight": 12 + }, + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 20, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 16.0, + "max": 36.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:spectral_arrow", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 6.0, + "max": 14.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:experience_bottle", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 3.0, + "max": 7.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "minecraft:strength" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "minecraft:healing" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 5.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:chain", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 32, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 32, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 7.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diamond_sword", + "weight": 4, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 20.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 6, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 20.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 6 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 1.0 + } + } + ], + "random_sequence": "antarchy:spawners/ruined_prison/medium" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/scorpion_arena/hard.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/scorpion_arena/hard.json new file mode 100644 index 00000000..989d2620 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/scorpion_arena/hard.json @@ -0,0 +1,9 @@ +{"type":"minecraft:chest","pools":[{"rolls":{"type":"minecraft:uniform","min":5,"max":8},"entries":[ +{"type":"minecraft:item","name":"minecraft:diamond_sword","weight":8,"functions":[{"function":"minecraft:enchant_with_levels","levels":{"type":"minecraft:uniform","min":20,"max":30},"options":"#minecraft:on_random_loot"}]},{"type":"minecraft:item","name":"minecraft:diamond_pickaxe","weight":7,"functions":[{"function":"minecraft:enchant_with_levels","levels":{"type":"minecraft:uniform","min":20,"max":30},"options":"#minecraft:on_random_loot"}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_katana","weight":5},{"type":"minecraft:item","name":"antarchy:blood_crystal_chestplate","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_leggings","weight":2}, +{"type":"minecraft:item","name":"antarchy:bluestone","weight":14,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":8,"max":20}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_shard","weight":12,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":2,"max":6}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_apple","weight":20,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":3}}]}, +{"type":"minecraft:item","name":"minecraft:tipped_arrow","weight":8,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":4,"max":10}},{"function":"minecraft:set_potion","id":"antarchy:inversion"}]},{"type":"minecraft:item","name":"minecraft:potion","weight":8,"functions":[{"function":"minecraft:set_potion","id":"antarchy:inversion"}]}, +{"type":"minecraft:item","name":"minecraft:book","weight":10,"functions":[{"function":"minecraft:enchant_randomly","options":["minecraft:mending","minecraft:unbreaking","minecraft:sharpness","minecraft:protection"]}]},{"type":"minecraft:item","name":"antarchy:titanium_ingot","weight":1},{"type":"minecraft:item","name":"antarchy:uranium_ingot","weight":1} +]}],"random_sequence":"antarchy:spawners/scorpion_arena/hard"} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/scorpion_arena/medium.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/scorpion_arena/medium.json new file mode 100644 index 00000000..fd12e4fd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/scorpion_arena/medium.json @@ -0,0 +1,10 @@ +{"type":"minecraft:chest","pools":[{"rolls":{"type":"minecraft:uniform","min":4,"max":7},"entries":[ +{"type":"minecraft:item","name":"minecraft:arrow","weight":16,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":14,"max":36}}]}, +{"type":"minecraft:item","name":"minecraft:tipped_arrow","weight":8,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":2,"max":6}},{"function":"minecraft:set_potion","id":"antarchy:inversion"}]}, +{"type":"minecraft:item","name":"minecraft:iron_sword","weight":9},{"type":"minecraft:item","name":"antarchy:blood_crystal_katana","weight":2}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_helmet","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_boots","weight":2}, +{"type":"minecraft:item","name":"antarchy:bluestone","weight":14,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":5,"max":14}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_shard","weight":10,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":3}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_apple","weight":18,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":2}}]}, +{"type":"minecraft:item","name":"minecraft:potion","weight":8,"functions":[{"function":"minecraft:set_potion","id":"antarchy:inversion"}]},{"type":"minecraft:item","name":"minecraft:book","weight":6,"functions":[{"function":"minecraft:enchant_randomly","options":["minecraft:mending","minecraft:unbreaking","minecraft:sharpness"]}]} +]}],"random_sequence":"antarchy:spawners/scorpion_arena/medium"} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/stampys_house/hard.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/stampys_house/hard.json new file mode 100644 index 00000000..bc533a4b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/stampys_house/hard.json @@ -0,0 +1,231 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ingot", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:copper_ingot", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 8.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 8, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 15.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 10, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 15.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 12.0, + "max": 32.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:duct_tape", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:torch", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:bread", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:mud_pie", + "weight": 4 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 7.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:fallen_king_crown", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 1.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 9, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 9, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 9 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ], + "random_sequence": "antarchy:spawners/stampys_house/trail_chamber/hard" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/stampys_house/medium.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/stampys_house/medium.json new file mode 100644 index 00000000..f01c5d6e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/stampys_house/medium.json @@ -0,0 +1,260 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bread", + "weight": 18, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:copper_ingot", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 8.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ingot", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 8.0, + "max": 24.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:torch", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:duct_tape", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "antarchy:shrinking" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:potion", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:potion_contents": { + "potion": "antarchy:growing" + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:mud_pie", + "weight": 4 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 3.0, + "max": 6.0 + } + }, + { + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:fallen_king_crown", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 1.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 7 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 4, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 10.0, + "max": 25.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ], + "random_sequence": "antarchy:spawners/stampys_house/trail_chamber/medium" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/temple_of_technoblade/hard.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/temple_of_technoblade/hard.json new file mode 100644 index 00000000..3f56bc73 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/temple_of_technoblade/hard.json @@ -0,0 +1,185 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 7.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ingot", + "weight": 16, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:amethyst_shard", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 5.0, + "max": 14.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:blood_crystal_shard", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:tigers_eye", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 10, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 20.0, + "max": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:experience_bottle", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 10.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "antarchy:fallen_king_crown", + "weight": 3 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 5.0, + "max": 8.0 + } + }, + { + "entries": [ + { + "type": "minecraft:empty", + "weight": 62 + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:spawners/temple_of_technoblade/hard" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/temple_of_technoblade/medium.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/temple_of_technoblade/medium.json new file mode 100644 index 00000000..673d0075 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/temple_of_technoblade/medium.json @@ -0,0 +1,195 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:baked_potato", + "weight": 18, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 12.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:cooked_porkchop", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 8.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_carrot", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ingot", + "weight": 14, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 7.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 4.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:amethyst_shard", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 3.0, + "max": 9.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:tigers_eye", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:experience_bottle", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 6.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 8, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "min": 12.0, + "max": 24.0 + }, + "options": "#minecraft:on_random_loot" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 6 + } + ], + "rolls": { + "type": "minecraft:uniform", + "min": 4.0, + "max": 7.0 + } + }, + { + "entries": [ + { + "type": "minecraft:empty", + "weight": 70 + }, + { + "type": "minecraft:item", + "name": "antarchy:uranium_nugget", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:titanium_nugget", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:spawners/temple_of_technoblade/medium" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/underside_ruins/hard.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/underside_ruins/hard.json new file mode 100644 index 00000000..69807370 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/underside_ruins/hard.json @@ -0,0 +1,7 @@ +{"type":"minecraft:chest","pools":[{"rolls":{"type":"minecraft:uniform","min":5,"max":8},"entries":[ +{"type":"minecraft:item","name":"minecraft:diamond_pickaxe","weight":8,"functions":[{"function":"minecraft:enchant_with_levels","levels":{"type":"minecraft:uniform","min":20,"max":30},"options":"#minecraft:on_random_loot"}]},{"type":"minecraft:item","name":"minecraft:diamond_sword","weight":7,"functions":[{"function":"minecraft:enchant_with_levels","levels":{"type":"minecraft:uniform","min":20,"max":30},"options":"#minecraft:on_random_loot"}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_katana","weight":4},{"type":"minecraft:item","name":"antarchy:blood_crystal_chestplate","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_leggings","weight":2},{"type":"minecraft:item","name":"antarchy:lucid_pearl","weight":4}, +{"type":"minecraft:item","name":"antarchy:bluestone","weight":14,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":8,"max":20}}]},{"type":"minecraft:item","name":"antarchy:nyxite","weight":10,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":3,"max":8}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_apple","weight":20,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":3}}]}, +{"type":"minecraft:item","name":"minecraft:tipped_arrow","weight":8,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":4,"max":10}},{"function":"minecraft:set_potion","id":"antarchy:inversion"}]},{"type":"minecraft:item","name":"minecraft:potion","weight":8,"functions":[{"function":"minecraft:set_potion","id":"antarchy:inversion"}]},{"type":"minecraft:item","name":"minecraft:book","weight":10,"functions":[{"function":"minecraft:enchant_randomly","options":["minecraft:mending","minecraft:unbreaking","minecraft:efficiency","minecraft:fortune"]}]},{"type":"minecraft:item","name":"antarchy:titanium_ingot","weight":1},{"type":"minecraft:item","name":"antarchy:uranium_ingot","weight":1} +]}],"random_sequence":"antarchy:spawners/underside_ruins/hard"} diff --git a/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/underside_ruins/medium.json b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/underside_ruins/medium.json new file mode 100644 index 00000000..82a0792a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/loot_table/spawners/underside_ruins/medium.json @@ -0,0 +1,9 @@ +{"type":"minecraft:chest","pools":[{"rolls":{"type":"minecraft:uniform","min":4,"max":7},"entries":[ +{"type":"minecraft:item","name":"minecraft:iron_pickaxe","weight":10},{"type":"minecraft:item","name":"minecraft:arrow","weight":15,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":12,"max":32}}]}, +{"type":"minecraft:item","name":"minecraft:tipped_arrow","weight":9,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":2,"max":6}},{"function":"minecraft:set_potion","id":"antarchy:inversion"}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_katana","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_helmet","weight":2},{"type":"minecraft:item","name":"antarchy:blood_crystal_boots","weight":2}, +{"type":"minecraft:item","name":"antarchy:bluestone","weight":15,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":5,"max":14}}]}, +{"type":"minecraft:item","name":"antarchy:nyxite","weight":10,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":4}}]}, +{"type":"minecraft:item","name":"antarchy:blood_crystal_apple","weight":18,"functions":[{"function":"minecraft:set_count","count":{"type":"minecraft:uniform","min":1,"max":2}}]}, +{"type":"minecraft:item","name":"minecraft:potion","weight":9,"functions":[{"function":"minecraft:set_potion","id":"antarchy:inversion"}]},{"type":"minecraft:item","name":"minecraft:book","weight":7,"functions":[{"function":"minecraft:enchant_randomly","options":["minecraft:mending","minecraft:unbreaking","minecraft:efficiency"]}]} +]}],"random_sequence":"antarchy:spawners/underside_ruins/medium"} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/americanize.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/americanize.json new file mode 100644 index 00000000..ebddb8ef --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/americanize.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:americanize", + "category": "misc" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/antigravel.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/antigravel.json new file mode 100644 index 00000000..47b5517f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/antigravel.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "GGG", + "GLG", + "GGG" + ], + "key": { + "G": { + "item": "minecraft:gravel" + }, + "L": { + "item": "antarchy:lucid_eye" + } + }, + "result": { + "id": "antarchy:antigravel", + "count": 8 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_activator_rail.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_activator_rail.json new file mode 100644 index 00000000..cfd750dc --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_activator_rail.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "X": { "item": "antarchy:polished_antimetal" }, + "Y": { "item": "minecraft:stick" }, + "Z": { "item": "antarchy:bluestone_torch" } + }, + "pattern": [ + "XYX", + "XZX", + "XYX" + ], + "result": { + "id": "antarchy:antimetal_activator_rail", + "count": 6 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_detector_rail.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_detector_rail.json new file mode 100644 index 00000000..04343abe --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_detector_rail.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "X": { "item": "antarchy:polished_antimetal" }, + "Y": { "item": "minecraft:stone_pressure_plate" }, + "Z": { "item": "antarchy:bluestone" } + }, + "pattern": [ + "X X", + "XYX", + "XZX" + ], + "result": { + "id": "antarchy:antimetal_detector_rail", + "count": 6 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_powered_rail.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_powered_rail.json new file mode 100644 index 00000000..c852fd1a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_powered_rail.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "X": { "item": "antarchy:blood_crystal_shard" }, + "Y": { "item": "minecraft:stick" }, + "Z": { "item": "antarchy:bluestone" } + }, + "pattern": [ + "X X", + "XYX", + "XZX" + ], + "result": { + "id": "antarchy:antimetal_powered_rail", + "count": 6 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_rail.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_rail.json new file mode 100644 index 00000000..86b90d7e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_rail.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "X": { "item": "antarchy:polished_antimetal" }, + "Y": { "item": "minecraft:stick" } + }, + "pattern": [ + "X X", + "XYX", + "X X" + ], + "result": { + "id": "antarchy:antimetal_rail", + "count": 16 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_scaffolding.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_scaffolding.json new file mode 100644 index 00000000..17b935de --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_scaffolding.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "PCP", + "P P", + "P P" + ], + "key": { + "P": { + "item": "antarchy:polished_antimetal" + }, + "C": { + "item": "minecraft:chain" + } + }, + "result": { + "id": "antarchy:antimetal_scaffolding", + "count": 16 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_slab.json new file mode 100644 index 00000000..8df63a72 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:antimetal" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:antimetal_slab" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_slab_from_antimetal_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_slab_from_antimetal_stonecutting.json new file mode 100644 index 00000000..0a97eb77 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_slab_from_antimetal_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:antimetal" + }, + "result": { + "id": "antarchy:antimetal_slab" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_stairs.json new file mode 100644 index 00000000..081db5ac --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:antimetal" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:antimetal_stairs" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_stairs_from_antimetal_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_stairs_from_antimetal_stonecutting.json new file mode 100644 index 00000000..67998784 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/antimetal_stairs_from_antimetal_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:antimetal" + }, + "result": { + "id": "antarchy:antimetal_stairs" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/antiwater_bucket.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/antiwater_bucket.json new file mode 100644 index 00000000..14d0c986 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/antiwater_bucket.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { "item": "minecraft:water_bucket" }, + { "item": "antarchy:lucid_eye" } + ], + "result": { + "id": "antarchy:antiwater_bucket", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/attitude_adjuster.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/attitude_adjuster.json new file mode 100644 index 00000000..c2781187 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/attitude_adjuster.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "HUH", + " S ", + " S " + ], + "key": { + "H": { + "item": "antarchy:hercules_horn" + }, + "U": { + "item": "antarchy:uranium_block" + }, + "S": { + "item": "minecraft:netherite_ingot" + } + }, + "result": { + "id": "antarchy:attitude_adjuster", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/basilisk_dagger.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/basilisk_dagger.json new file mode 100644 index 00000000..745329c2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/basilisk_dagger.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "combat", + "key": { + "F": { + "item": "antarchy:basilisk_fang" + }, + "S": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "F", + "S" + ], + "result": { + "id": "antarchy:basilisk_dagger", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/battle_axe.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/battle_axe.json new file mode 100644 index 00000000..86a54290 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/battle_axe.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "AAN", + "ASN", + " N " + ], + "key": { + "A": { + "item": "antarchy:ultimate_axe" + }, + "S": { + "item": "antarchy:ultimate_sword" + }, + "N": { + "item": "minecraft:netherite_ingot" + } + }, + "result": { + "id": "antarchy:battle_axe", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/big_bertha.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/big_bertha.json new file mode 100644 index 00000000..05e50564 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/big_bertha.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + " B", + " H ", + "A " + ], + "key": { + "B": { + "item": "antarchy:big_bertha_blade" + }, + "H": { + "item": "antarchy:big_bertha_hilt" + }, + "A": { + "item": "antarchy:big_bertha_handle" + } + }, + "result": { + "id": "antarchy:big_bertha", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/big_bertha_blade.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/big_bertha_blade.json new file mode 100644 index 00000000..a571bd07 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/big_bertha_blade.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + " FG", + "CDE", + "AB " + ], + "key": { + "A": { + "item": "antarchy:lucid_eye" + }, + "B": { + "item": "antarchy:basilisk_fang" + }, + "C": { + "item": "antarchy:emperor_scorpion_stinger" + }, + "D": { + "item": "antarchy:ultimate_sword" + }, + "E": { + "item": "antarchy:cloud_shark_fin" + }, + "F": { + "item": "antarchy:vortex_charge" + }, + "G": { + "item": "antarchy:kraken_tooth" + } + }, + "result": { + "id": "antarchy:big_bertha_blade", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/big_bertha_handle.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/big_bertha_handle.json new file mode 100644 index 00000000..aded4e9b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/big_bertha_handle.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + " G", + "CD ", + "AB " + ], + "key": { + "A": { + "item": "antarchy:mantis_claw" + }, + "B": { + "item": "antarchy:brutalfly_wing" + }, + "C": { + "item": "antarchy:manticore_wing" + }, + "D": { + "item": "antarchy:cooked_corndog" + }, + "G": { + "item": "antarchy:gravity_gun" + } + }, + "result": { + "id": "antarchy:big_bertha_handle", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/big_bertha_hilt.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/big_bertha_hilt.json new file mode 100644 index 00000000..244414ed --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/big_bertha_hilt.json @@ -0,0 +1,39 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + "AC ", + "DBG", + "HEF" + ], + "key": { + "A": { + "item": "antarchy:nightmare_scale" + }, + "B": { + "item": "antarchy:molevore_nose" + }, + "C": { + "item": "antarchy:jumpy_bug_leg" + }, + "D": { + "item": "antarchy:jerry_nucleus" + }, + "E": { + "item": "antarchy:primordial_scute" + }, + "F": { + "item": "antarchy:worm_tooth" + }, + "G": { + "item": "antarchy:hercules_horn" + }, + "H": { + "item": "antarchy:triffid_goo" + } + }, + "result": { + "id": "antarchy:big_bertha_hilt", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/black_banner_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/black_banner_from_truffalo_tuft.json new file mode 100644 index 00000000..a235d532 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/black_banner_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "###", + " S " + ], + "key": { + "#": { + "item": "antarchy:black_truffalo_tuft" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "id": "minecraft:black_banner" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/black_bed_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/black_bed_from_truffalo_tuft.json new file mode 100644 index 00000000..7b8dfa26 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/black_bed_from_truffalo_tuft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "PPP" + ], + "key": { + "#": { + "item": "antarchy:black_truffalo_tuft" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "result": { + "id": "minecraft:black_bed" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_apple.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_apple.json new file mode 100644 index 00000000..32366787 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_apple.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "food", + "pattern": [ + "###", + "#A#", + "###" + ], + "key": { + "#": { + "item": "antarchy:blood_crystal_shard" + }, + "A": { + "item": "minecraft:apple" + } + }, + "result": { + "id": "antarchy:blood_crystal_apple", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_block.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_block.json new file mode 100644 index 00000000..38845aa2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:blood_crystal_shard" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "id": "antarchy:blood_crystal_block", + "count": 1 + } +} + diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_boots.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_boots.json new file mode 100644 index 00000000..da944f9b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_boots.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "S S", + "S S" + ], + "key": { + "S": { + "item": "antarchy:blood_crystal_shard" + } + }, + "result": { + "id": "antarchy:blood_crystal_boots", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_chestplate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_chestplate.json new file mode 100644 index 00000000..3d9eecac --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_chestplate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "S S", + "SSS", + "SSS" + ], + "key": { + "S": { + "item": "antarchy:blood_crystal_shard" + } + }, + "result": { + "id": "antarchy:blood_crystal_chestplate", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_helmet.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_helmet.json new file mode 100644 index 00000000..434d93f3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_helmet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "S S" + ], + "key": { + "S": { + "item": "antarchy:blood_crystal_shard" + } + }, + "result": { + "id": "antarchy:blood_crystal_helmet", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_katana.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_katana.json new file mode 100644 index 00000000..8b8047f2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_katana.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "combat", + "pattern": [ + " B", + " B ", + "N " + ], + "key": { + "N": { + "item": "minecraft:netherite_ingot" + }, + "B": { + "item": "antarchy:blood_crystal_shard" + } + }, + "result": { + "id": "antarchy:blood_crystal_katana", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_leggings.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_leggings.json new file mode 100644 index 00000000..f187ca03 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/blood_crystal_leggings.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.20.1/src/main/resources/data/antarchy/recipe/bloodstone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/bloodstone.json new file mode 100644 index 00000000..f187ca03 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/blue_banner_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/blue_banner_from_truffalo_tuft.json new file mode 100644 index 00000000..772353ff --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/blue_banner_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "###", + " S " + ], + "key": { + "#": { + "item": "antarchy:blue_truffalo_tuft" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "id": "minecraft:blue_banner" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/blue_bed_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/blue_bed_from_truffalo_tuft.json new file mode 100644 index 00000000..c5de43f6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/blue_bed_from_truffalo_tuft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "PPP" + ], + "key": { + "#": { + "item": "antarchy:blue_truffalo_tuft" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "result": { + "id": "minecraft:blue_bed" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_block.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_block.json new file mode 100644 index 00000000..ca039ad4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_block.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { "item": "antarchy:bluestone" } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "id": "antarchy:bluestone_block" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_comparator.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_comparator.json new file mode 100644 index 00000000..09897c4d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_comparator.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { "item": "antarchy:bluestone_torch" }, + "I": { "item": "minecraft:stone" }, + "X": { "item": "minecraft:quartz" } + }, + "pattern": [ + " # ", + "#X#", + "III" + ], + "result": { + "id": "antarchy:bluestone_comparator" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_from_blasting_bluestone_ore.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_from_blasting_bluestone_ore.json new file mode 100644 index 00000000..f5ef39f4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_from_blasting_bluestone_ore.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:blasting", + "category": "blocks", + "experience": 0.7, + "group": "bluestone", + "ingredient": { "item": "antarchy:bluestone_ore" }, + "result": { + "id": "antarchy:bluestone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_from_smelting_bluestone_ore.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_from_smelting_bluestone_ore.json new file mode 100644 index 00000000..4e84edf1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_from_smelting_bluestone_ore.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "experience": 0.7, + "group": "bluestone", + "ingredient": { "item": "antarchy:bluestone_ore" }, + "result": { + "id": "antarchy:bluestone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_lamp.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_lamp.json new file mode 100644 index 00000000..06769bbb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_lamp.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "G": { "item": "minecraft:glowstone" }, + "R": { "item": "antarchy:bluestone" } + }, + "pattern": [ + " R ", + "RGR", + " R " + ], + "result": { + "id": "antarchy:bluestone_lamp", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_repeater.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_repeater.json new file mode 100644 index 00000000..50422df3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_repeater.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { "item": "antarchy:bluestone_torch" }, + "I": { "item": "minecraft:stone" }, + "X": { "item": "antarchy:bluestone" } + }, + "pattern": [ + "#X#", + "III" + ], + "result": { + "id": "antarchy:bluestone_repeater" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_torch.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_torch.json new file mode 100644 index 00000000..fdde92fb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/bluestone_torch.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { "item": "minecraft:stick" }, + "X": { "item": "antarchy:bluestone" } + }, + "pattern": [ + "X", + "#" + ], + "result": { + "id": "antarchy:bluestone_torch" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/blush_moss_carpet.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/blush_moss_carpet.json new file mode 100644 index 00000000..0a73f660 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/blush_moss_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:blush_moss_block" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 3, + "id": "antarchy:blush_moss_carpet" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/bone_meal_from_chitin.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/bone_meal_from_chitin.json new file mode 100644 index 00000000..f8e96c09 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/bone_meal_from_chitin.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "antarchy:chitin" + } + ], + "result": { + "id": "minecraft:bone_meal", + "count": 3 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodfruit_cobbler.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodfruit_cobbler.json new file mode 100644 index 00000000..f3799aee --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodfruit_cobbler.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "food", + "pattern": ["BSB", "WEW", "WWW"], + "key": { + "B": { "item": "antarchy:broodfruit" }, + "S": { "item": "minecraft:sugar" }, + "W": { "item": "minecraft:wheat" }, + "E": { "item": "minecraft:egg" } + }, + "result": { "id": "antarchy:broodfruit_cobbler", "count": 1 } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone.json new file mode 100644 index 00000000..727f95c9 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_slab.json new file mode 100644 index 00000000..daeac16f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:broodstone_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:broodstone_brick_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_slab_from_broodstone_bricks_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_slab_from_broodstone_bricks_stonecutting.json new file mode 100644 index 00000000..48371bba --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_slab_from_broodstone_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:broodstone_bricks" + }, + "result": { + "count": 2, + "id": "antarchy:broodstone_brick_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_stairs.json new file mode 100644 index 00000000..fa36a258 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:broodstone_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:broodstone_brick_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_stairs_from_broodstone_bricks_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_stairs_from_broodstone_bricks_stonecutting.json new file mode 100644 index 00000000..481801a5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_stairs_from_broodstone_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:broodstone_bricks" + }, + "result": { + "id": "antarchy:broodstone_brick_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_wall.json new file mode 100644 index 00000000..d8f7a9c7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:broodstone_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:broodstone_brick_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_wall_from_broodstone_bricks_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_wall_from_broodstone_bricks_stonecutting.json new file mode 100644 index 00000000..5df8a9b7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_brick_wall_from_broodstone_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:broodstone_bricks" + }, + "result": { + "id": "antarchy:broodstone_brick_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_bricks.json new file mode 100644 index 00000000..08290683 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_broodstone" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "antarchy:broodstone_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_bricks_from_polished_broodstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_bricks_from_polished_broodstone_stonecutting.json new file mode 100644 index 00000000..064aee73 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_bricks_from_polished_broodstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_broodstone" + }, + "result": { + "id": "antarchy:broodstone_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_pillar.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_pillar.json new file mode 100644 index 00000000..70308c32 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_pillar.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_broodstone" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "id": "antarchy:broodstone_pillar", + "count": 2 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_pillar_from_broodstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_pillar_from_broodstone_stonecutting.json new file mode 100644 index 00000000..e128426b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_pillar_from_broodstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:broodstone" + }, + "result": { + "id": "antarchy:broodstone_pillar" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_slab.json new file mode 100644 index 00000000..7aa1ba74 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:broodstone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:broodstone_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_slab_from_broodstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_slab_from_broodstone_stonecutting.json new file mode 100644 index 00000000..f701c62a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_slab_from_broodstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:broodstone" + }, + "result": { + "count": 2, + "id": "antarchy:broodstone_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_stairs.json new file mode 100644 index 00000000..bea9e4ba --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:broodstone" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:broodstone_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_stairs_from_broodstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_stairs_from_broodstone_stonecutting.json new file mode 100644 index 00000000..1ac55f41 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_stairs_from_broodstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:broodstone" + }, + "result": { + "id": "antarchy:broodstone_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_wall.json new file mode 100644 index 00000000..e779da0c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:broodstone" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:broodstone_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_wall_from_broodstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_wall_from_broodstone_stonecutting.json new file mode 100644 index 00000000..5a4834f0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/broodstone_wall_from_broodstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:broodstone" + }, + "result": { + "id": "antarchy:broodstone_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/brown_banner_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/brown_banner_from_truffalo_tuft.json new file mode 100644 index 00000000..77f856a8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/brown_banner_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "###", + " S " + ], + "key": { + "#": { + "item": "antarchy:brown_truffalo_tuft" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "id": "minecraft:brown_banner" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/brown_bed_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/brown_bed_from_truffalo_tuft.json new file mode 100644 index 00000000..1eb85457 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/brown_bed_from_truffalo_tuft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "PPP" + ], + "key": { + "#": { + "item": "antarchy:brown_truffalo_tuft" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "result": { + "id": "minecraft:brown_bed" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/brutalfly_elytra.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/brutalfly_elytra.json new file mode 100644 index 00000000..60af494f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/brutalfly_elytra.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "BMB", + "BEB" + ], + "key": { + "B": { + "item": "antarchy:brutalfly_wing" + }, + "M": { + "item": "antarchy:duct_tape" + }, + "E": { + "item": "minecraft:elytra" + } + }, + "result": { + "id": "antarchy:brutalfly_elytra", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_broodstone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_broodstone.json new file mode 100644 index 00000000..3f830b8f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_broodstone.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_broodstone_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "id": "antarchy:chiseled_broodstone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_broodstone_from_polished_broodstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_broodstone_from_polished_broodstone_stonecutting.json new file mode 100644 index 00000000..98b428d4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_broodstone_from_polished_broodstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_broodstone" + }, + "result": { + "id": "antarchy:chiseled_broodstone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_dream_sandstone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_dream_sandstone.json new file mode 100644 index 00000000..d69cc351 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_dream_sandstone.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:dream_sandstone_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "id": "antarchy:chiseled_dream_sandstone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_dream_sandstone_from_dream_sandstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_dream_sandstone_from_dream_sandstone_stonecutting.json new file mode 100644 index 00000000..6487724a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_dream_sandstone_from_dream_sandstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:dream_sandstone" + }, + "result": { + "id": "antarchy:chiseled_dream_sandstone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_loam_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_loam_bricks.json new file mode 100644 index 00000000..574ab2a8 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/chiseled_myrmite.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_myrmite.json new file mode 100644 index 00000000..79bd6fb8 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/chiseled_myrmite_from_polished_myrmite_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/chiseled_nyxite.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_nyxite.json new file mode 100644 index 00000000..ae707eb0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_nyxite.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_nyxite_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "id": "antarchy:chiseled_nyxite" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_nyxite_from_polished_nyxite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_nyxite_from_polished_nyxite_stonecutting.json new file mode 100644 index 00000000..7498fa06 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_nyxite_from_polished_nyxite_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_nyxite" + }, + "result": { + "id": "antarchy:chiseled_nyxite" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_shellstone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_shellstone.json new file mode 100644 index 00000000..b59d352d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_shellstone.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_shellstone_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "id": "antarchy:chiseled_shellstone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_shellstone_from_polished_shellstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_shellstone_from_polished_shellstone_stonecutting.json new file mode 100644 index 00000000..24215edb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/chiseled_shellstone_from_polished_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_shellstone" + }, + "result": { + "id": "antarchy:chiseled_shellstone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/chitin_block.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/chitin_block.json new file mode 100644 index 00000000..9a22bc0b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/chitin_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:chitin" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "id": "antarchy:chitin_block", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/chitin_from_chitin_block.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/chitin_from_chitin_block.json new file mode 100644 index 00000000..8ac1b4d7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/chitin_from_chitin_block.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "antarchy:chitin_block" + } + ], + "result": { + "id": "antarchy:chitin", + "count": 9 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cloud_shark_fin_soup.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cloud_shark_fin_soup.json new file mode 100644 index 00000000..a222940a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cloud_shark_fin_soup.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "food", + "ingredients": [ + { + "item": "antarchy:cloud_shark_fin" + }, + { + "item": "minecraft:bowl" + } + ], + "result": { + "id": "antarchy:cloud_shark_fin_soup", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_bug_meat_from_smelting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_bug_meat_from_smelting.json new file mode 100644 index 00000000..56a09fae --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_bug_meat_from_smelting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "food", + "cookingtime": 200, + "experience": 0.35, + "ingredient": { + "item": "antarchy:raw_bug_meat" + }, + "result": { + "id": "antarchy:cooked_bug_meat" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_bug_meat_from_smoking.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_bug_meat_from_smoking.json new file mode 100644 index 00000000..6a4798e6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_bug_meat_from_smoking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smoking", + "category": "food", + "cookingtime": 100, + "experience": 0.35, + "ingredient": { + "item": "antarchy:raw_bug_meat" + }, + "result": { + "id": "antarchy:cooked_bug_meat" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_cheep_from_smelting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_cheep_from_smelting.json new file mode 100644 index 00000000..e47ef9a8 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/cooked_cheep_from_smoking.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_cheep_from_smoking.json new file mode 100644 index 00000000..5dd679c6 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/cooked_corndog_from_smelting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_corndog_from_smelting.json new file mode 100644 index 00000000..8e6950c1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_corndog_from_smelting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "food", + "cookingtime": 200, + "experience": 0.35, + "ingredient": { + "item": "antarchy:raw_corndog" + }, + "result": { + "id": "antarchy:cooked_corndog" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_corndog_from_smoking.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_corndog_from_smoking.json new file mode 100644 index 00000000..b34b2896 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_corndog_from_smoking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smoking", + "category": "food", + "cookingtime": 100, + "experience": 0.35, + "ingredient": { + "item": "antarchy:raw_corndog" + }, + "result": { + "id": "antarchy:cooked_corndog" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_venison_from_smelting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_venison_from_smelting.json new file mode 100644 index 00000000..bd3b2c3a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_venison_from_smelting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "food", + "cookingtime": 200, + "experience": 0.35, + "ingredient": { + "item": "antarchy:raw_venison" + }, + "result": { + "id": "antarchy:cooked_venison" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_venison_from_smoking.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_venison_from_smoking.json new file mode 100644 index 00000000..00e79a05 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cooked_venison_from_smoking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smoking", + "category": "food", + "cookingtime": 100, + "experience": 0.35, + "ingredient": { + "item": "antarchy:raw_venison" + }, + "result": { + "id": "antarchy:cooked_venison" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/corn_seeds.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/corn_seeds.json new file mode 100644 index 00000000..2afe7c63 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/corn_seeds.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "antarchy:corn" + } + ], + "result": { + "count": 3, + "id": "antarchy:corn_seeds" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cornbread.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cornbread.json new file mode 100644 index 00000000..3a6e3fbb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cornbread.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "food", + "key": { + "C": { + "item": "antarchy:corn" + }, + "G": { + "item": "minecraft:egg" + }, + "H": { + "item": "minecraft:honey_bottle" + }, + "W": { + "item": "minecraft:wheat" + } + }, + "pattern": [ + " H ", + "CGC", + "WWW" + ], + "result": { + "count": 1, + "id": "antarchy:cornbread" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cracked_shellstone_bricks_from_shellstone_bricks_blasting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cracked_shellstone_bricks_from_shellstone_bricks_blasting.json new file mode 100644 index 00000000..3892c53f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cracked_shellstone_bricks_from_shellstone_bricks_blasting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:blasting", + "category": "blocks", + "experience": 0.1, + "ingredient": { + "item": "antarchy:shellstone_bricks" + }, + "result": { + "id": "antarchy:cracked_shellstone_bricks" + }, + "cookingtime": 100 +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cracked_shellstone_bricks_from_shellstone_bricks_smelting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cracked_shellstone_bricks_from_shellstone_bricks_smelting.json new file mode 100644 index 00000000..7c76f625 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cracked_shellstone_bricks_from_shellstone_bricks_smelting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "experience": 0.1, + "ingredient": { + "item": "antarchy:shellstone_bricks" + }, + "result": { + "id": "antarchy:cracked_shellstone_bricks" + }, + "cookingtime": 200 +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/crafter_from_bluestone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/crafter_from_bluestone.json new file mode 100644 index 00000000..48869144 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/crafter_from_bluestone.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:iron_ingot" + }, + "C": { + "item": "minecraft:crafting_table" + }, + "D": { + "item": "minecraft:dropper" + }, + "R": { + "item": "antarchy:bluestone" + } + }, + "pattern": [ + "###", + "#C#", + "RDR" + ], + "result": { + "count": 1, + "id": "minecraft:crafter" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/critter_cage.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/critter_cage.json new file mode 100644 index 00000000..033a8526 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/critter_cage.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + "ISI", + "SLS", + "ISI" + ], + "key": { + "I": { + "item": "minecraft:iron_nugget" + }, + "S": { + "item": "minecraft:stick" + }, + "L": { + "item": "minecraft:leather" + } + }, + "result": { + "id": "antarchy:critter_cage", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cut_dream_sandstone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cut_dream_sandstone.json new file mode 100644 index 00000000..a121e408 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cut_dream_sandstone.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:dream_sandstone" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "antarchy:cut_dream_sandstone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cut_dream_sandstone_from_dream_sandstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cut_dream_sandstone_from_dream_sandstone_stonecutting.json new file mode 100644 index 00000000..1a43db43 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cut_dream_sandstone_from_dream_sandstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:dream_sandstone" + }, + "result": { + "id": "antarchy:cut_dream_sandstone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cut_dream_sandstone_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cut_dream_sandstone_slab.json new file mode 100644 index 00000000..511672c6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cut_dream_sandstone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:cut_dream_sandstone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:cut_dream_sandstone_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cut_dream_sandstone_slab_from_cut_dream_sandstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cut_dream_sandstone_slab_from_cut_dream_sandstone_stonecutting.json new file mode 100644 index 00000000..9cc95cf7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cut_dream_sandstone_slab_from_cut_dream_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:cut_dream_sandstone" + }, + "result": { + "count": 2, + "id": "antarchy:cut_dream_sandstone_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cut_dream_sandstone_slab_from_dream_sandstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cut_dream_sandstone_slab_from_dream_sandstone_stonecutting.json new file mode 100644 index 00000000..dd555ba5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cut_dream_sandstone_slab_from_dream_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:dream_sandstone" + }, + "result": { + "count": 2, + "id": "antarchy:cut_dream_sandstone_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cyan_banner_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cyan_banner_from_truffalo_tuft.json new file mode 100644 index 00000000..a8e67871 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cyan_banner_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "###", + " S " + ], + "key": { + "#": { + "item": "antarchy:cyan_truffalo_tuft" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "id": "minecraft:cyan_banner" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/cyan_bed_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/cyan_bed_from_truffalo_tuft.json new file mode 100644 index 00000000..c411eff7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/cyan_bed_from_truffalo_tuft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "PPP" + ], + "key": { + "#": { + "item": "antarchy:cyan_truffalo_tuft" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "result": { + "id": "minecraft:cyan_bed" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/dispenser_from_bluestone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/dispenser_from_bluestone.json new file mode 100644 index 00000000..ba2f4b91 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/dispenser_from_bluestone.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:cobblestone" + }, + "R": { + "item": "antarchy:bluestone" + }, + "X": { + "item": "minecraft:bow" + } + }, + "pattern": [ + "###", + "#X#", + "#R#" + ], + "result": { + "count": 1, + "id": "minecraft:dispenser" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_campfire.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_campfire.json new file mode 100644 index 00000000..710fbe0c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_campfire.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "antarchy:dream_sand" + }, + "L": { + "tag": "minecraft:logs" + }, + "S": { + "tag": "c:rods/wooden" + } + }, + "pattern": [ + " S ", + "S#S", + "LLL" + ], + "result": { + "count": 1, + "id": "antarchy:dream_campfire" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_lantern.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_lantern.json new file mode 100644 index 00000000..66dd6083 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_lantern.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "antarchy:dream_torch" + }, + "X": { + "tag": "c:nuggets/iron" + } + }, + "pattern": [ + "XXX", + "X#X", + "XXX" + ], + "result": { + "count": 1, + "id": "antarchy:dream_lantern" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone.json new file mode 100644 index 00000000..eb7c82d7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:dream_sand" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "id": "antarchy:dream_sandstone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_slab.json new file mode 100644 index 00000000..423e5f07 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_slab.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": [ + { + "item": "antarchy:dream_sandstone" + }, + { + "item": "antarchy:chiseled_dream_sandstone" + } + ] + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:dream_sandstone_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_slab_from_dream_sandstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_slab_from_dream_sandstone_stonecutting.json new file mode 100644 index 00000000..fe0451f8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_slab_from_dream_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:dream_sandstone" + }, + "result": { + "count": 2, + "id": "antarchy:dream_sandstone_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_stairs.json new file mode 100644 index 00000000..bc2aebc7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_stairs.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": [ + { + "item": "antarchy:dream_sandstone" + }, + { + "item": "antarchy:chiseled_dream_sandstone" + }, + { + "item": "antarchy:cut_dream_sandstone" + } + ] + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:dream_sandstone_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_stairs_from_dream_sandstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_stairs_from_dream_sandstone_stonecutting.json new file mode 100644 index 00000000..86114028 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_stairs_from_dream_sandstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:dream_sandstone" + }, + "result": { + "id": "antarchy:dream_sandstone_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_wall.json new file mode 100644 index 00000000..b83811b9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:dream_sandstone" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:dream_sandstone_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_wall_from_dream_sandstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_wall_from_dream_sandstone_stonecutting.json new file mode 100644 index 00000000..772e1a26 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_sandstone_wall_from_dream_sandstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:dream_sandstone" + }, + "result": { + "id": "antarchy:dream_sandstone_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_torch.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_torch.json new file mode 100644 index 00000000..83931411 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/dream_torch.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "#": { + "item": "minecraft:stick" + }, + "S": { + "item": "antarchy:dream_sand" + }, + "X": [ + { + "item": "minecraft:coal" + }, + { + "item": "minecraft:charcoal" + } + ] + }, + "pattern": [ + "X", + "#", + "S" + ], + "result": { + "count": 4, + "id": "antarchy:dream_torch" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/dropper_from_bluestone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/dropper_from_bluestone.json new file mode 100644 index 00000000..88807ccc --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/dropper_from_bluestone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:cobblestone" + }, + "R": { + "item": "antarchy:bluestone" + } + }, + "pattern": [ + "###", + "# #", + "#R#" + ], + "result": { + "count": 1, + "id": "minecraft:dropper" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/duct_tape.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/duct_tape.json new file mode 100644 index 00000000..a03e94ba --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/duct_tape.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + "SSS", + "PPP" + ], + "key": { + "S": { + "tag": "c:slime_balls" + }, + "P": { + "item": "minecraft:paper" + } + }, + "result": { + "id": "antarchy:duct_tape", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/eye_of_the_storm.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/eye_of_the_storm.json new file mode 100644 index 00000000..620c2f7b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/eye_of_the_storm.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "combat", + "pattern": [ + " V", + " T ", + "T " + ], + "key": { + "V": { + "item": "antarchy:vortex_charge" + }, + "T": { + "item": "antarchy:titanium_ingot" + } + }, + "result": { + "id": "antarchy:eye_of_the_storm", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/gravity_gun.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/gravity_gun.json new file mode 100644 index 00000000..283170a5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/gravity_gun.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "UGN", + "UCT", + " BT" + ], + "key": { + "U": { + "item": "antarchy:uranium_ingot" + }, + "T": { + "item": "antarchy:titanium_ingot" + }, + "G": { + "item": "antarchy:lucid_eye" + }, + "N": { + "tag": "c:ingots/netherite" + }, + "C": { + "item": "minecraft:comparator" + }, + "B": { + "item": "antarchy:bluestone_comparator" + } + }, + "result": { + "id": "antarchy:gravity_gun", + "count": 1 + } +} + diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/gray_banner_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/gray_banner_from_truffalo_tuft.json new file mode 100644 index 00000000..393e841f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/gray_banner_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "###", + " S " + ], + "key": { + "#": { + "item": "antarchy:gray_truffalo_tuft" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "id": "minecraft:gray_banner" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/gray_bed_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/gray_bed_from_truffalo_tuft.json new file mode 100644 index 00000000..4815c97e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/gray_bed_from_truffalo_tuft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "PPP" + ], + "key": { + "#": { + "item": "antarchy:gray_truffalo_tuft" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "result": { + "id": "minecraft:gray_bed" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/green_banner_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/green_banner_from_truffalo_tuft.json new file mode 100644 index 00000000..a4696e0a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/green_banner_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "###", + " S " + ], + "key": { + "#": { + "item": "antarchy:green_truffalo_tuft" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "id": "minecraft:green_banner" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/green_bed_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/green_bed_from_truffalo_tuft.json new file mode 100644 index 00000000..dbdbfb6a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/green_bed_from_truffalo_tuft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "PPP" + ], + "key": { + "#": { + "item": "antarchy:green_truffalo_tuft" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "result": { + "id": "minecraft:green_bed" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/growth_ray.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/growth_ray.json new file mode 100644 index 00000000..7c7ad5c1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/growth_ray.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "TTT", + "TCT", + " N" + ], + "key": { + "T": { + "item": "antarchy:titanium_ingot" + }, + "N": { + "tag": "c:ingots/netherite" + }, + "C": { + "item": "antarchy:bluestone_comparator" + } + }, + "result": { + "id": "antarchy:growth_ray", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard.json new file mode 100644 index 00000000..40da4613 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + "NUN", + "BLB", + "C C" + ], + "key": { + "N": { + "item": "minecraft:netherite_ingot" + }, + "U": { + "item": "antarchy:uranium_ingot" + }, + "B": { + "item": "antarchy:bluestone" + }, + "L": { + "item": "antarchy:lucid_eye" + }, + "C": { + "item": "antarchy:blood_crystal_shard" + } + }, + "result": { + "id": "antarchy:hoverboard", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_black.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_black.json new file mode 100644 index 00000000..b1d03f5f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_black.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "hoverboard", + "ingredients": [ + { + "tag": "antarchy:hoverboards" + }, + { + "item": "minecraft:black_dye" + } + ], + "result": { + "id": "antarchy:hoverboard_black", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_blue.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_blue.json new file mode 100644 index 00000000..eda2639d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_blue.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "hoverboard", + "ingredients": [ + { + "tag": "antarchy:hoverboards" + }, + { + "item": "minecraft:blue_dye" + } + ], + "result": { + "id": "antarchy:hoverboard_blue", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_brown.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_brown.json new file mode 100644 index 00000000..b836c7d8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_brown.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "hoverboard", + "ingredients": [ + { + "tag": "antarchy:hoverboards" + }, + { + "item": "minecraft:brown_dye" + } + ], + "result": { + "id": "antarchy:hoverboard_brown", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_cyan.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_cyan.json new file mode 100644 index 00000000..cbecf15c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_cyan.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "hoverboard", + "ingredients": [ + { + "tag": "antarchy:hoverboards" + }, + { + "item": "minecraft:cyan_dye" + } + ], + "result": { + "id": "antarchy:hoverboard_cyan", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_gray.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_gray.json new file mode 100644 index 00000000..e9da3e2a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_gray.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "hoverboard", + "ingredients": [ + { + "tag": "antarchy:hoverboards" + }, + { + "item": "minecraft:gray_dye" + } + ], + "result": { + "id": "antarchy:hoverboard_gray", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_green.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_green.json new file mode 100644 index 00000000..bb4ee9ba --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_green.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "hoverboard", + "ingredients": [ + { + "tag": "antarchy:hoverboards" + }, + { + "item": "minecraft:green_dye" + } + ], + "result": { + "id": "antarchy:hoverboard_green", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_light_blue.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_light_blue.json new file mode 100644 index 00000000..e7a6b331 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_light_blue.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "hoverboard", + "ingredients": [ + { + "tag": "antarchy:hoverboards" + }, + { + "item": "minecraft:light_blue_dye" + } + ], + "result": { + "id": "antarchy:hoverboard_light_blue", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_light_gray.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_light_gray.json new file mode 100644 index 00000000..d8abce9d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_light_gray.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "hoverboard", + "ingredients": [ + { + "tag": "antarchy:hoverboards" + }, + { + "item": "minecraft:light_gray_dye" + } + ], + "result": { + "id": "antarchy:hoverboard_light_gray", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_lime.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_lime.json new file mode 100644 index 00000000..177f74b8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_lime.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "hoverboard", + "ingredients": [ + { + "tag": "antarchy:hoverboards" + }, + { + "item": "minecraft:lime_dye" + } + ], + "result": { + "id": "antarchy:hoverboard_lime", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_magenta.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_magenta.json new file mode 100644 index 00000000..3a6a28a6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_magenta.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "hoverboard", + "ingredients": [ + { + "tag": "antarchy:hoverboards" + }, + { + "item": "minecraft:magenta_dye" + } + ], + "result": { + "id": "antarchy:hoverboard_magenta", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_orange.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_orange.json new file mode 100644 index 00000000..1464d78b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_orange.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "hoverboard", + "ingredients": [ + { + "tag": "antarchy:hoverboards" + }, + { + "item": "minecraft:orange_dye" + } + ], + "result": { + "id": "antarchy:hoverboard_orange", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_pink.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_pink.json new file mode 100644 index 00000000..d3ec8ca0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_pink.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "hoverboard", + "ingredients": [ + { + "tag": "antarchy:hoverboards" + }, + { + "item": "minecraft:pink_dye" + } + ], + "result": { + "id": "antarchy:hoverboard_pink", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_purple.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_purple.json new file mode 100644 index 00000000..bc95ba49 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_purple.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "hoverboard", + "ingredients": [ + { + "tag": "antarchy:hoverboards" + }, + { + "item": "minecraft:purple_dye" + } + ], + "result": { + "id": "antarchy:hoverboard_purple", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_red.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_red.json new file mode 100644 index 00000000..802fb08a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_red.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "hoverboard", + "ingredients": [ + { + "tag": "antarchy:hoverboards" + }, + { + "item": "minecraft:red_dye" + } + ], + "result": { + "id": "antarchy:hoverboard_red", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_white.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_white.json new file mode 100644 index 00000000..46a48fbd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_white.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "hoverboard", + "ingredients": [ + { + "tag": "antarchy:hoverboards" + }, + { + "item": "minecraft:white_dye" + } + ], + "result": { + "id": "antarchy:hoverboard_white", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_yellow.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_yellow.json new file mode 100644 index 00000000..90ef8d3f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/hoverboard_yellow.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "hoverboard", + "ingredients": [ + { + "tag": "antarchy:hoverboards" + }, + { + "item": "minecraft:yellow_dye" + } + ], + "result": { + "id": "antarchy:hoverboard_yellow", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/infested_coarse_dirt.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/infested_coarse_dirt.json new file mode 100644 index 00000000..c553ae0c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/infested_coarse_dirt.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "minecraft:coarse_dirt" + }, + { + "item": "antarchy:moleworm" + } + ], + "result": { + "count": 1, + "id": "antarchy:infested_coarse_dirt" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/infested_rooted_dirt.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/infested_rooted_dirt.json new file mode 100644 index 00000000..fc85bcb0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/infested_rooted_dirt.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "minecraft:rooted_dirt" + }, + { + "item": "antarchy:moleworm" + } + ], + "result": { + "count": 1, + "id": "antarchy:infested_rooted_dirt" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/jumpy_boots.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/jumpy_boots.json new file mode 100644 index 00000000..ab820d6c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/jumpy_boots.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "JBJ", + "J J" + ], + "key": { + "J": { + "item": "antarchy:jumpy_bug_leg" + }, + "B": { + "item": "minecraft:netherite_boots" + } + }, + "result": { + "id": "antarchy:jumpy_boots", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/kraken_kalamari_from_smelting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/kraken_kalamari_from_smelting.json new file mode 100644 index 00000000..1b0c153b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/kraken_kalamari_from_smelting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "food", + "cookingtime": 200, + "experience": 0.5, + "ingredient": { + "item": "antarchy:kraken_tentacle" + }, + "result": { + "id": "antarchy:kraken_kalamari" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/kraken_kalamari_from_smoking.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/kraken_kalamari_from_smoking.json new file mode 100644 index 00000000..2dd56eee --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/kraken_kalamari_from_smoking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smoking", + "category": "food", + "cookingtime": 100, + "experience": 0.5, + "ingredient": { + "item": "antarchy:kraken_tentacle" + }, + "result": { + "id": "antarchy:kraken_kalamari" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/krakens_grasp.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/krakens_grasp.json new file mode 100644 index 00000000..45d4c2d6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/krakens_grasp.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "EEE", + " T ", + " T " + ], + "key": { + "E": { "item": "antarchy:kraken_tooth" }, + "T": { "item": "antarchy:kraken_tentacle" } + }, + "result": { "id": "antarchy:krakens_grasp", "count": 1 } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/light_blue_banner_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/light_blue_banner_from_truffalo_tuft.json new file mode 100644 index 00000000..d2fbf92c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/light_blue_banner_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "###", + " S " + ], + "key": { + "#": { + "item": "antarchy:light_blue_truffalo_tuft" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "id": "minecraft:light_blue_banner" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/light_blue_bed_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/light_blue_bed_from_truffalo_tuft.json new file mode 100644 index 00000000..31282c30 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/light_blue_bed_from_truffalo_tuft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "PPP" + ], + "key": { + "#": { + "item": "antarchy:light_blue_truffalo_tuft" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "result": { + "id": "minecraft:light_blue_bed" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/light_gray_banner_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/light_gray_banner_from_truffalo_tuft.json new file mode 100644 index 00000000..0938d974 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/light_gray_banner_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "###", + " S " + ], + "key": { + "#": { + "item": "antarchy:light_gray_truffalo_tuft" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "id": "minecraft:light_gray_banner" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/light_gray_bed_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/light_gray_bed_from_truffalo_tuft.json new file mode 100644 index 00000000..bf1e9769 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/light_gray_bed_from_truffalo_tuft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "PPP" + ], + "key": { + "#": { + "item": "antarchy:light_gray_truffalo_tuft" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "result": { + "id": "minecraft:light_gray_bed" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/lime_banner_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/lime_banner_from_truffalo_tuft.json new file mode 100644 index 00000000..0afdf542 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/lime_banner_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "###", + " S " + ], + "key": { + "#": { + "item": "antarchy:lime_truffalo_tuft" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "id": "minecraft:lime_banner" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/lime_bed_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/lime_bed_from_truffalo_tuft.json new file mode 100644 index 00000000..b8deb8a7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/lime_bed_from_truffalo_tuft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "PPP" + ], + "key": { + "#": { + "item": "antarchy:lime_truffalo_tuft" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "result": { + "id": "minecraft:lime_bed" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/loam.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/loam.json new file mode 100644 index 00000000..cfd69d99 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/loam.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "MD", + "DM" + ], + "key": { + "M": { + "item": "minecraft:mud" + }, + "D": { + "item": "antarchy:myrmite" + } + }, + "result": { + "count": 1, + "id": "antarchy:loam" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/loam_brick_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/loam_brick_slab.json new file mode 100644 index 00000000..a0efbd12 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/loam_brick_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/loam_brick_stairs.json new file mode 100644 index 00000000..ed75a904 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/loam_brick_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/loam_brick_wall.json new file mode 100644 index 00000000..d3af987d --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/loam_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/loam_bricks.json new file mode 100644 index 00000000..d31a26bf --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/lucid_anchor.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/lucid_anchor.json new file mode 100644 index 00000000..1fcd5ea6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/lucid_anchor.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + "AAA", + "BNB", + "BLB" + ], + "key": { + "A": { + "item": "antarchy:polished_antimetal" + }, + "B": { + "item": "antarchy:blood_crystal_shard" + }, + "N": { + "item": "minecraft:nether_star" + }, + "L": { + "item": "antarchy:lucid_eye" + } + }, + "result": { + "id": "antarchy:lucid_anchor", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/lucid_pearl.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/lucid_pearl.json new file mode 100644 index 00000000..ec950302 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/lucid_pearl.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { "item": "antarchy:lucid_eye" }, + { "item": "minecraft:ender_pearl" } + ], + "result": { + "id": "antarchy:lucid_pearl", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/magenta_banner_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/magenta_banner_from_truffalo_tuft.json new file mode 100644 index 00000000..b306b917 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/magenta_banner_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "###", + " S " + ], + "key": { + "#": { + "item": "antarchy:magenta_truffalo_tuft" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "id": "minecraft:magenta_banner" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/magenta_bed_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/magenta_bed_from_truffalo_tuft.json new file mode 100644 index 00000000..880bc08d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/magenta_bed_from_truffalo_tuft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "PPP" + ], + "key": { + "#": { + "item": "antarchy:magenta_truffalo_tuft" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "result": { + "id": "minecraft:magenta_bed" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/manticore_wings.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/manticore_wings.json new file mode 100644 index 00000000..50c0926d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/manticore_wings.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": ["BMB", "BEB"], + "key": { + "B": { "item": "antarchy:manticore_wing" }, + "M": { "item": "antarchy:duct_tape" }, + "E": { "item": "minecraft:elytra" } + }, + "result": { "id": "antarchy:manticore_wings", "count": 1 } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/miners_dream.json.disabled b/common-1.20.1/src/main/resources/data/antarchy/recipe/miners_dream.json.disabled new file mode 100644 index 00000000..b35b1c80 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/miners_dream.json.disabled @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + "GGG", + "RDR", + "TTT" + ], + "key": { + "G": { "item": "antarchy:triffid_goo" }, + "R": { "item": "minecraft:redstone_block" }, + "D": { "item": "minecraft:diamond_pickaxe" }, + "T": { "item": "minecraft:tnt" } + }, + "result": { + "id": "antarchy:miners_dream", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/moggles.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/moggles.json new file mode 100644 index 00000000..4f7bd24a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/moggles.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "BMB" + ], + "key": { + "B": { + "item": "antarchy:titanium_nugget" + }, + "M": { + "item": "antarchy:molevore_nose" + } + }, + "result": { + "id": "antarchy:moggles", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_slab.json new file mode 100644 index 00000000..7c6134cc --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_slab_from_mossy_broodstone_bricks_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_stairs.json new file mode 100644 index 00000000..ad51acc1 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_stairs_from_mossy_broodstone_bricks_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_wall.json new file mode 100644 index 00000000..a091695c --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_brick_wall_from_mossy_broodstone_bricks_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_broodstone_bricks.json new file mode 100644 index 00000000..080e1b00 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_slab.json new file mode 100644 index 00000000..3898cd91 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_slab_from_mossy_myrmite_bricks_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_stairs.json new file mode 100644 index 00000000..f11066f5 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_stairs_from_mossy_myrmite_bricks_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_wall.json new file mode 100644 index 00000000..e7fd8046 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_brick_wall_from_mossy_myrmite_bricks_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_myrmite_bricks.json new file mode 100644 index 00000000..0318a6d8 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_slab.json new file mode 100644 index 00000000..d7dae129 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_slab_from_mossy_nyxite_bricks_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_stairs.json new file mode 100644 index 00000000..9d57de59 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_stairs_from_mossy_nyxite_bricks_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_wall.json new file mode 100644 index 00000000..b1b2c905 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_brick_wall_from_mossy_nyxite_bricks_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_nyxite_bricks.json new file mode 100644 index 00000000..da1d0543 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_slab.json new file mode 100644 index 00000000..322153c4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:mossy_shellstone_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:mossy_shellstone_brick_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_slab_from_mossy_shellstone_bricks_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_slab_from_mossy_shellstone_bricks_stonecutting.json new file mode 100644 index 00000000..79fac6b2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_slab_from_mossy_shellstone_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:mossy_shellstone_bricks" + }, + "result": { + "id": "antarchy:mossy_shellstone_brick_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_stairs.json new file mode 100644 index 00000000..506f6756 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:mossy_shellstone_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:mossy_shellstone_brick_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_stairs_from_mossy_shellstone_bricks_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_stairs_from_mossy_shellstone_bricks_stonecutting.json new file mode 100644 index 00000000..01cbc7ab --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_stairs_from_mossy_shellstone_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:mossy_shellstone_bricks" + }, + "result": { + "id": "antarchy:mossy_shellstone_brick_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_wall.json new file mode 100644 index 00000000..e5a83e72 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:mossy_shellstone_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:mossy_shellstone_brick_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_wall_from_mossy_shellstone_bricks_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_wall_from_mossy_shellstone_bricks_stonecutting.json new file mode 100644 index 00000000..f93c7359 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_brick_wall_from_mossy_shellstone_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:mossy_shellstone_bricks" + }, + "result": { + "id": "antarchy:mossy_shellstone_brick_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_bricks.json new file mode 100644 index 00000000..8f99e101 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/mossy_shellstone_bricks.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "antarchy:shellstone_bricks" + }, + { + "item": "minecraft:moss_block" + } + ], + "result": { + "count": 1, + "id": "antarchy:mossy_shellstone_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/mud_pie.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/mud_pie.json new file mode 100644 index 00000000..94e1b982 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/mud_pie.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "food", + "ingredients": [ + { + "item": "minecraft:mud" + }, + { + "item": "antarchy:moleworm" + } + ], + "result": { + "count": 1, + "id": "antarchy:mud_pie" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/myrmite.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/myrmite.json new file mode 100644 index 00000000..9ce32863 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/myrmite_brick_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/myrmite_brick_slab.json new file mode 100644 index 00000000..72acde9e --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/myrmite_brick_slab_from_myrmite_bricks_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/myrmite_brick_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/myrmite_brick_stairs.json new file mode 100644 index 00000000..55966bad --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/myrmite_brick_stairs_from_myrmite_bricks_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/myrmite_brick_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/myrmite_brick_wall.json new file mode 100644 index 00000000..9685d72f --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/myrmite_brick_wall_from_myrmite_bricks_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/myrmite_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/myrmite_bricks.json new file mode 100644 index 00000000..9a39fea8 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/myrmite_bricks_from_polished_myrmite_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/myrmite_pillar.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/myrmite_pillar.json new file mode 100644 index 00000000..065aa667 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/myrmite_pillar_from_polished_myrmite_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/myrmite_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/myrmite_slab.json new file mode 100644 index 00000000..aee0dd39 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/myrmite_slab_from_myrmite_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/myrmite_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/myrmite_stairs.json new file mode 100644 index 00000000..6c10fe52 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/myrmite_stairs_from_myrmite_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/myrmite_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/myrmite_wall.json new file mode 100644 index 00000000..283b1821 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/myrmite_wall_from_myrmite_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_boat.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_boat.json new file mode 100644 index 00000000..c18b5ebd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_boat.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "antarchy:nadir_planks" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "count": 1, + "id": "antarchy:nadir_boat" + } +} + diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_button.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_button.json new file mode 100644 index 00000000..7a67d94c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "wooden_button", + "ingredients": [ + { + "item": "antarchy:nadir_planks" + } + ], + "result": { + "count": 1, + "id": "antarchy:nadir_button" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_chest_boat.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_chest_boat.json new file mode 100644 index 00000000..e86215d4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_chest_boat.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "equipment", + "ingredients": [ + { + "item": "antarchy:nadir_boat" + }, + { + "item": "minecraft:chest" + } + ], + "result": { + "count": 1, + "id": "antarchy:nadir_chest_boat" + } +} + diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_door.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_door.json new file mode 100644 index 00000000..332d6cad --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_door.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_door", + "key": { + "#": { + "item": "antarchy:nadir_planks" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "antarchy:nadir_door" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_fence.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_fence.json new file mode 100644 index 00000000..3ef5d1d4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_fence", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "antarchy:nadir_planks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 3, + "id": "antarchy:nadir_fence" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_fence_gate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_fence_gate.json new file mode 100644 index 00000000..22069690 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "antarchy:nadir_planks" + } + }, + "pattern": [ + "#W#", + "#W#" + ], + "result": { + "count": 1, + "id": "antarchy:nadir_fence_gate" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_hanging_sign.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_hanging_sign.json new file mode 100644 index 00000000..b057918e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_hanging_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "hanging_sign", + "key": { + "#": { + "item": "antarchy:stripped_nadir_log" + }, + "X": { + "item": "minecraft:chain" + } + }, + "pattern": [ + "X X", + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:nadir_hanging_sign" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_planks.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_planks.json new file mode 100644 index 00000000..1fd4195f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "tag": "antarchy:nadir_logs" + } + ], + "result": { + "count": 4, + "id": "antarchy:nadir_planks" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_pressure_plate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_pressure_plate.json new file mode 100644 index 00000000..5286fecd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_pressure_plate", + "key": { + "#": { + "item": "antarchy:nadir_planks" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "antarchy:nadir_pressure_plate" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_sign.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_sign.json new file mode 100644 index 00000000..6bd91309 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_sign", + "key": { + "#": { + "item": "antarchy:nadir_planks" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " X " + ], + "result": { + "count": 3, + "id": "antarchy:nadir_sign" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_slab.json new file mode 100644 index 00000000..bdb63f65 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_slab", + "key": { + "#": { + "item": "antarchy:nadir_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:nadir_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_stairs.json new file mode 100644 index 00000000..fbcda572 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": { + "item": "antarchy:nadir_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:nadir_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_trapdoor.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_trapdoor.json new file mode 100644 index 00000000..920c954d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_trapdoor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": { + "item": "antarchy:nadir_planks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "antarchy:nadir_trapdoor" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_wood.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_wood.json new file mode 100644 index 00000000..ba48c303 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/nadir_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "antarchy:nadir_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "antarchy:nadir_wood" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/stripped_nadir_wood.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/stripped_nadir_wood.json new file mode 100644 index 00000000..b9b3c293 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nadir/stripped_nadir_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "antarchy:stripped_nadir_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "antarchy:stripped_nadir_wood" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nightmare/nightmare_boots.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nightmare/nightmare_boots.json new file mode 100644 index 00000000..ae8a00ef --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nightmare/nightmare_boots.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "S S", + "S S" + ], + "key": { + "S": { + "item": "antarchy:nightmare_scale" + } + }, + "result": { + "id": "antarchy:nightmare_boots", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nightmare/nightmare_chestplate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nightmare/nightmare_chestplate.json new file mode 100644 index 00000000..51e8043f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nightmare/nightmare_chestplate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "S S", + "SSS", + "SSS" + ], + "key": { + "S": { + "item": "antarchy:nightmare_scale" + } + }, + "result": { + "id": "antarchy:nightmare_chestplate", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nightmare/nightmare_helmet.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nightmare/nightmare_helmet.json new file mode 100644 index 00000000..ba635177 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nightmare/nightmare_helmet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "S S" + ], + "key": { + "S": { + "item": "antarchy:nightmare_scale" + } + }, + "result": { + "id": "antarchy:nightmare_helmet", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nightmare/nightmare_leggings.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nightmare/nightmare_leggings.json new file mode 100644 index 00000000..880e5211 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nightmare/nightmare_leggings.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "S S", + "S S" + ], + "key": { + "S": { + "item": "antarchy:nightmare_scale" + } + }, + "result": { + "id": "antarchy:nightmare_leggings", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nightmare/nightmare_sword.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nightmare/nightmare_sword.json new file mode 100644 index 00000000..b20efd2b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nightmare/nightmare_sword.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + " S ", + " S ", + " N " + ], + "key": { + "N": { + "item": "minecraft:netherite_ingot" + }, + "S": { + "item": "antarchy:nightmare_scale" + } + }, + "result": { + "id": "antarchy:nightmare_sword", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite.json new file mode 100644 index 00000000..3a75935c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "SS", + "SS" + ], + "key": { + "S": { + "item": "antarchy:nyxite_spike" + } + }, + "result": { + "id": "antarchy:nyxite", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_slab.json new file mode 100644 index 00000000..cb6532ed --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:nyxite_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:nyxite_brick_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_slab_from_nyxite_bricks_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_slab_from_nyxite_bricks_stonecutting.json new file mode 100644 index 00000000..42a7e0f1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_slab_from_nyxite_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:nyxite_bricks" + }, + "result": { + "count": 2, + "id": "antarchy:nyxite_brick_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_stairs.json new file mode 100644 index 00000000..cc847260 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:nyxite_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:nyxite_brick_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_stairs_from_nyxite_bricks_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_stairs_from_nyxite_bricks_stonecutting.json new file mode 100644 index 00000000..5e13f3cb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_stairs_from_nyxite_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:nyxite_bricks" + }, + "result": { + "id": "antarchy:nyxite_brick_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_wall.json new file mode 100644 index 00000000..75a0619e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:nyxite_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:nyxite_brick_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_wall_from_nyxite_bricks_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_wall_from_nyxite_bricks_stonecutting.json new file mode 100644 index 00000000..2f407f96 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_brick_wall_from_nyxite_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:nyxite_bricks" + }, + "result": { + "id": "antarchy:nyxite_brick_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_bricks.json new file mode 100644 index 00000000..5e8bf30f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_nyxite" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "antarchy:nyxite_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_bricks_from_polished_nyxite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_bricks_from_polished_nyxite_stonecutting.json new file mode 100644 index 00000000..93e278e5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_bricks_from_polished_nyxite_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_nyxite" + }, + "result": { + "id": "antarchy:nyxite_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_pillar.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_pillar.json new file mode 100644 index 00000000..b391cff7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_pillar.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_nyxite" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "id": "antarchy:nyxite_pillar", + "count": 2 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_pillar_from_nyxite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_pillar_from_nyxite_stonecutting.json new file mode 100644 index 00000000..4aa56abc --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_pillar_from_nyxite_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:nyxite" + }, + "result": { + "id": "antarchy:nyxite_pillar" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_slab.json new file mode 100644 index 00000000..d7b2d143 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:nyxite" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:nyxite_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_slab_from_nyxite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_slab_from_nyxite_stonecutting.json new file mode 100644 index 00000000..c84f39a8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_slab_from_nyxite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:nyxite" + }, + "result": { + "count": 2, + "id": "antarchy:nyxite_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_spikes.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_spikes.json new file mode 100644 index 00000000..f246fc92 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_spikes.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "N" + ], + "key": { + "N": { + "item": "antarchy:nyxite" + } + }, + "result": { + "id": "antarchy:nyxite_spike", + "count": 4 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_stairs.json new file mode 100644 index 00000000..033667ea --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:nyxite" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:nyxite_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_stairs_from_nyxite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_stairs_from_nyxite_stonecutting.json new file mode 100644 index 00000000..ea21f5ef --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_stairs_from_nyxite_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:nyxite" + }, + "result": { + "id": "antarchy:nyxite_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_wall.json new file mode 100644 index 00000000..88ebdb77 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:nyxite" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:nyxite_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_wall_from_nyxite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_wall_from_nyxite_stonecutting.json new file mode 100644 index 00000000..5b521034 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/nyxite_wall_from_nyxite_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:nyxite" + }, + "result": { + "id": "antarchy:nyxite_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/observer_from_bluestone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/observer_from_bluestone.json new file mode 100644 index 00000000..13c1d7e3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/observer_from_bluestone.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:cobblestone" + }, + "Q": { + "item": "minecraft:quartz" + }, + "R": { + "item": "antarchy:bluestone" + } + }, + "pattern": [ + "###", + "RRQ", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:observer" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/orange_banner_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/orange_banner_from_truffalo_tuft.json new file mode 100644 index 00000000..fc141f2a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/orange_banner_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "###", + " S " + ], + "key": { + "#": { + "item": "antarchy:orange_truffalo_tuft" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "id": "minecraft:orange_banner" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/orange_bed_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/orange_bed_from_truffalo_tuft.json new file mode 100644 index 00000000..3de51a1f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/orange_bed_from_truffalo_tuft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "PPP" + ], + "key": { + "#": { + "item": "antarchy:orange_truffalo_tuft" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "result": { + "id": "minecraft:orange_bed" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/orange_dye_from_orange_milkweed.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/orange_dye_from_orange_milkweed.json new file mode 100644 index 00000000..309b1ca3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/orange_dye_from_orange_milkweed.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "antarchy:orange_milkweed" + } + ], + "result": { + "count": 2, + "id": "minecraft:orange_dye" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/mossy_ouranwood_log.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/mossy_ouranwood_log.json new file mode 100644 index 00000000..5833935c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/mossy_ouranwood_log.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "antarchy:ouranwood_log" + }, + { + "item": "minecraft:moss_block" + } + ], + "result": { + "count": 1, + "id": "antarchy:mossy_ouranwood_log" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/mossy_ouranwood_wood.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/mossy_ouranwood_wood.json new file mode 100644 index 00000000..a4b4ad87 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/mossy_ouranwood_wood.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "antarchy:ouranwood_wood" + }, + { + "item": "minecraft:moss_block" + } + ], + "result": { + "count": 1, + "id": "antarchy:mossy_ouranwood_wood" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/mossy_ouranwood_wood_from_mossy_ouranwood_log.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/mossy_ouranwood_wood_from_mossy_ouranwood_log.json new file mode 100644 index 00000000..91b9bfa5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/mossy_ouranwood_wood_from_mossy_ouranwood_log.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "antarchy:mossy_ouranwood_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "antarchy:mossy_ouranwood_wood" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_boat.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_boat.json new file mode 100644 index 00000000..8cb70b0f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_boat.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "antarchy:ouranwood_planks" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "count": 1, + "id": "antarchy:ouranwood_boat" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_button.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_button.json new file mode 100644 index 00000000..d3f8a1f7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "wooden_button", + "ingredients": [ + { + "item": "antarchy:ouranwood_planks" + } + ], + "result": { + "count": 1, + "id": "antarchy:ouranwood_button" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_chest_boat.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_chest_boat.json new file mode 100644 index 00000000..b25f30dc --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_chest_boat.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "equipment", + "ingredients": [ + { + "item": "antarchy:ouranwood_boat" + }, + { + "item": "minecraft:chest" + } + ], + "result": { + "count": 1, + "id": "antarchy:ouranwood_chest_boat" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_door.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_door.json new file mode 100644 index 00000000..43dcf499 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_door.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_door", + "key": { + "#": { + "item": "antarchy:ouranwood_planks" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "antarchy:ouranwood_door" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_fence.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_fence.json new file mode 100644 index 00000000..f299a517 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_fence", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "antarchy:ouranwood_planks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 3, + "id": "antarchy:ouranwood_fence" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_fence_gate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_fence_gate.json new file mode 100644 index 00000000..073a844e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "antarchy:ouranwood_planks" + } + }, + "pattern": [ + "#W#", + "#W#" + ], + "result": { + "count": 1, + "id": "antarchy:ouranwood_fence_gate" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_hanging_sign.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_hanging_sign.json new file mode 100644 index 00000000..657609c0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_hanging_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "hanging_sign", + "key": { + "#": { + "item": "antarchy:stripped_ouranwood_log" + }, + "X": { + "item": "minecraft:chain" + } + }, + "pattern": [ + "X X", + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:ouranwood_hanging_sign" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_planks.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_planks.json new file mode 100644 index 00000000..22a47950 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "tag": "antarchy:ouranwood_logs" + } + ], + "result": { + "count": 4, + "id": "antarchy:ouranwood_planks" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_pressure_plate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_pressure_plate.json new file mode 100644 index 00000000..ed263c9a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_pressure_plate", + "key": { + "#": { + "item": "antarchy:ouranwood_planks" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "antarchy:ouranwood_pressure_plate" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_sign.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_sign.json new file mode 100644 index 00000000..682c866e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_sign", + "key": { + "#": { + "item": "antarchy:ouranwood_planks" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " X " + ], + "result": { + "count": 3, + "id": "antarchy:ouranwood_sign" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_slab.json new file mode 100644 index 00000000..3a531f30 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_slab", + "key": { + "#": { + "item": "antarchy:ouranwood_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:ouranwood_slab" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_stairs.json new file mode 100644 index 00000000..9d2c0ab1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": { + "item": "antarchy:ouranwood_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:ouranwood_stairs" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_trapdoor.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_trapdoor.json new file mode 100644 index 00000000..bd3e0127 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_trapdoor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": { + "item": "antarchy:ouranwood_planks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "antarchy:ouranwood_trapdoor" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_wood.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_wood.json new file mode 100644 index 00000000..5fb3f4b7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/ouranwood_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "antarchy:ouranwood_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "antarchy:ouranwood_wood" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/stripped_ouranwood_wood.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/stripped_ouranwood_wood.json new file mode 100644 index 00000000..20833116 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ouranwood/stripped_ouranwood_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "antarchy:stripped_ouranwood_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "antarchy:stripped_ouranwood_wood" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/packed_loam.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/packed_loam.json new file mode 100644 index 00000000..7c647c99 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/painting_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/painting_from_truffalo_tuft.json new file mode 100644 index 00000000..386e2acb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/painting_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + "###", + "#X#", + "###" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "antarchy:truffalo_tufts" + } + }, + "result": { + "id": "minecraft:painting" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/pale_nyxite.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/pale_nyxite.json new file mode 100644 index 00000000..10db777a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/pale_nyxite.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "NQ", + "QN" + ], + "key": { + "N": { + "item": "antarchy:nyxite" + }, + "Q": { + "item": "minecraft:quartz" + } + }, + "result": { + "id": "antarchy:pale_nyxite", + "count": 2 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_boat.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_boat.json new file mode 100644 index 00000000..9007e56b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_boat.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "antarchy:peach_planks" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "count": 1, + "id": "antarchy:peach_boat" + } +} + diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_button.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_button.json new file mode 100644 index 00000000..385fea05 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "wooden_button", + "ingredients": [ + { + "item": "antarchy:peach_planks" + } + ], + "result": { + "count": 1, + "id": "antarchy:peach_button" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_chest_boat.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_chest_boat.json new file mode 100644 index 00000000..c865282a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_chest_boat.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "equipment", + "ingredients": [ + { + "item": "antarchy:peach_boat" + }, + { + "item": "minecraft:chest" + } + ], + "result": { + "count": 1, + "id": "antarchy:peach_chest_boat" + } +} + diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_door.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_door.json new file mode 100644 index 00000000..d912173b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_door.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_door", + "key": { + "#": { + "item": "antarchy:peach_planks" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "antarchy:peach_door" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_fence.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_fence.json new file mode 100644 index 00000000..f86ace23 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_fence", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "antarchy:peach_planks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 3, + "id": "antarchy:peach_fence" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_fence_gate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_fence_gate.json new file mode 100644 index 00000000..7954228f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "antarchy:peach_planks" + } + }, + "pattern": [ + "#W#", + "#W#" + ], + "result": { + "count": 1, + "id": "antarchy:peach_fence_gate" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_hanging_sign.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_hanging_sign.json new file mode 100644 index 00000000..8fcc4847 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_hanging_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "hanging_sign", + "key": { + "#": { + "item": "antarchy:stripped_peach_log" + }, + "X": { + "item": "minecraft:chain" + } + }, + "pattern": [ + "X X", + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:peach_hanging_sign" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_planks.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_planks.json new file mode 100644 index 00000000..d0892886 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "tag": "antarchy:peach_logs" + } + ], + "result": { + "count": 4, + "id": "antarchy:peach_planks" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_pressure_plate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_pressure_plate.json new file mode 100644 index 00000000..09fb8352 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_pressure_plate", + "key": { + "#": { + "item": "antarchy:peach_planks" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "antarchy:peach_pressure_plate" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_sign.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_sign.json new file mode 100644 index 00000000..cc36aa0d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_sign", + "key": { + "#": { + "item": "antarchy:peach_planks" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " X " + ], + "result": { + "count": 3, + "id": "antarchy:peach_sign" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_slab.json new file mode 100644 index 00000000..7cfe2b41 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_slab", + "key": { + "#": { + "item": "antarchy:peach_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:peach_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_stairs.json new file mode 100644 index 00000000..84cad977 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": { + "item": "antarchy:peach_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:peach_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_trapdoor.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_trapdoor.json new file mode 100644 index 00000000..3332467d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_trapdoor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": { + "item": "antarchy:peach_planks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "antarchy:peach_trapdoor" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_wood.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_wood.json new file mode 100644 index 00000000..5fd213ea --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/peach_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "antarchy:peach_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "antarchy:peach_wood" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/stripped_peach_wood.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/stripped_peach_wood.json new file mode 100644 index 00000000..6c28a618 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach/stripped_peach_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "antarchy:stripped_peach_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "antarchy:stripped_peach_wood" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/peach_pie.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach_pie.json new file mode 100644 index 00000000..9a226ee7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/peach_pie.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "food", + "ingredients": [ + { + "item": "antarchy:peach" + }, + { + "item": "minecraft:sugar" + }, + { + "item": "minecraft:egg" + } + ], + "result": { + "count": 1, + "id": "antarchy:peach_pie" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/pink_banner_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/pink_banner_from_truffalo_tuft.json new file mode 100644 index 00000000..59fb70cd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/pink_banner_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "###", + " S " + ], + "key": { + "#": { + "item": "antarchy:pink_truffalo_tuft" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "id": "minecraft:pink_banner" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/pink_bed_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/pink_bed_from_truffalo_tuft.json new file mode 100644 index 00000000..95dce035 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/pink_bed_from_truffalo_tuft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "PPP" + ], + "key": { + "#": { + "item": "antarchy:pink_truffalo_tuft" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "result": { + "id": "minecraft:pink_bed" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/pink_dye_from_camellia.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/pink_dye_from_camellia.json new file mode 100644 index 00000000..2567622d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/pink_dye_from_camellia.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "antarchy:camellia" + } + ], + "result": { + "count": 2, + "id": "minecraft:pink_dye" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/pink_dye_from_lotus.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/pink_dye_from_lotus.json new file mode 100644 index 00000000..e3a7b1a3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/pink_dye_from_lotus.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { "item": "antarchy:lotus" } + ], + "result": { + "count": 2, + "id": "minecraft:pink_dye" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/pink_dye_from_pink_milkweed.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/pink_dye_from_pink_milkweed.json new file mode 100644 index 00000000..067771c4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/pink_dye_from_pink_milkweed.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "antarchy:pink_milkweed" + } + ], + "result": { + "count": 2, + "id": "minecraft:pink_dye" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/piston_from_bluestone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/piston_from_bluestone.json new file mode 100644 index 00000000..def55212 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/piston_from_bluestone.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:cobblestone" + }, + "R": { + "item": "antarchy:bluestone" + }, + "T": { + "tag": "minecraft:planks" + }, + "X": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "TTT", + "#X#", + "#R#" + ], + "result": { + "count": 1, + "id": "minecraft:piston" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_antimetal.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_antimetal.json new file mode 100644 index 00000000..cacdf649 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_antimetal.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "##", + "##" + ], + "key": { + "#": { + "item": "antarchy:antimetal" + } + }, + "result": { + "id": "antarchy:polished_antimetal", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_antimetal_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_antimetal_slab.json new file mode 100644 index 00000000..9e22ced8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_antimetal_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_antimetal" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:polished_antimetal_slab" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_antimetal_slab_from_polished_antimetal_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_antimetal_slab_from_polished_antimetal_stonecutting.json new file mode 100644 index 00000000..679f2db3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_antimetal_slab_from_polished_antimetal_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_antimetal" + }, + "result": { + "id": "antarchy:polished_antimetal_slab" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_antimetal_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_antimetal_stairs.json new file mode 100644 index 00000000..00a089bc --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_antimetal_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_antimetal" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:polished_antimetal_stairs" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_antimetal_stairs_from_polished_antimetal_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_antimetal_stairs_from_polished_antimetal_stonecutting.json new file mode 100644 index 00000000..c4c371aa --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_antimetal_stairs_from_polished_antimetal_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_antimetal" + }, + "result": { + "id": "antarchy:polished_antimetal_stairs" + } +} \ No newline at end of file diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone.json new file mode 100644 index 00000000..22d25709 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:broodstone" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "antarchy:polished_broodstone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_from_broodstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_from_broodstone_stonecutting.json new file mode 100644 index 00000000..755f5085 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_from_broodstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:broodstone" + }, + "result": { + "id": "antarchy:polished_broodstone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_slab.json new file mode 100644 index 00000000..885a0efa --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_broodstone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:polished_broodstone_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_slab_from_polished_broodstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_slab_from_polished_broodstone_stonecutting.json new file mode 100644 index 00000000..47dc204a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_slab_from_polished_broodstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_broodstone" + }, + "result": { + "count": 2, + "id": "antarchy:polished_broodstone_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_stairs.json new file mode 100644 index 00000000..aa1a9609 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_broodstone" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:polished_broodstone_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_stairs_from_polished_broodstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_stairs_from_polished_broodstone_stonecutting.json new file mode 100644 index 00000000..6f366781 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_stairs_from_polished_broodstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_broodstone" + }, + "result": { + "id": "antarchy:polished_broodstone_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_wall.json new file mode 100644 index 00000000..40bac9a7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_broodstone" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:polished_broodstone_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_wall_from_polished_broodstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_wall_from_polished_broodstone_stonecutting.json new file mode 100644 index 00000000..5563a05f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_broodstone_wall_from_polished_broodstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_broodstone" + }, + "result": { + "id": "antarchy:polished_broodstone_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_myrmite.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_myrmite.json new file mode 100644 index 00000000..fc663164 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/polished_myrmite_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_myrmite_slab.json new file mode 100644 index 00000000..98ef0993 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/polished_myrmite_slab_from_polished_myrmite_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/polished_myrmite_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_myrmite_stairs.json new file mode 100644 index 00000000..a743810c --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/polished_myrmite_stairs_from_polished_myrmite_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/polished_myrmite_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_myrmite_wall.json new file mode 100644 index 00000000..5817ba80 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/polished_myrmite_wall_from_polished_myrmite_stonecutting.json b/common-1.20.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.20.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.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite.json new file mode 100644 index 00000000..6d05e925 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:nyxite" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "antarchy:polished_nyxite" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_button.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_button.json new file mode 100644 index 00000000..d2761822 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "stone_button", + "ingredients": [ + { + "item": "antarchy:polished_nyxite" + } + ], + "result": { + "count": 1, + "id": "antarchy:polished_nyxite_button" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_from_nyxite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_from_nyxite_stonecutting.json new file mode 100644 index 00000000..c119aa4d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_from_nyxite_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:nyxite" + }, + "result": { + "id": "antarchy:polished_nyxite" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_pressure_plate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_pressure_plate.json new file mode 100644 index 00000000..9795a57f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "stone_pressure_plate", + "key": { + "#": { + "item": "antarchy:polished_nyxite" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "antarchy:polished_nyxite_pressure_plate" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_slab.json new file mode 100644 index 00000000..819b981d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_nyxite" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:polished_nyxite_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_slab_from_polished_nyxite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_slab_from_polished_nyxite_stonecutting.json new file mode 100644 index 00000000..edf583e1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_slab_from_polished_nyxite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_nyxite" + }, + "result": { + "count": 2, + "id": "antarchy:polished_nyxite_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_stairs.json new file mode 100644 index 00000000..d73f6cc8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_nyxite" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:polished_nyxite_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_stairs_from_polished_nyxite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_stairs_from_polished_nyxite_stonecutting.json new file mode 100644 index 00000000..d07069fd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_stairs_from_polished_nyxite_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_nyxite" + }, + "result": { + "id": "antarchy:polished_nyxite_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_wall.json new file mode 100644 index 00000000..3bf99321 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_nyxite" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:polished_nyxite_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_wall_from_polished_nyxite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_wall_from_polished_nyxite_stonecutting.json new file mode 100644 index 00000000..d162d37a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_nyxite_wall_from_polished_nyxite_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_nyxite" + }, + "result": { + "id": "antarchy:polished_nyxite_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone.json new file mode 100644 index 00000000..4acf3d56 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:shellstone" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "antarchy:polished_shellstone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_from_shellstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_from_shellstone_stonecutting.json new file mode 100644 index 00000000..4ed6dfed --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_from_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:shellstone" + }, + "result": { + "id": "antarchy:polished_shellstone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_slab.json new file mode 100644 index 00000000..6d91fe8d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_shellstone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:polished_shellstone_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_slab_from_polished_shellstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_slab_from_polished_shellstone_stonecutting.json new file mode 100644 index 00000000..766aabb5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_slab_from_polished_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_shellstone" + }, + "result": { + "id": "antarchy:polished_shellstone_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_stairs.json new file mode 100644 index 00000000..8baf0e8c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_shellstone" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:polished_shellstone_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_stairs_from_polished_shellstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_stairs_from_polished_shellstone_stonecutting.json new file mode 100644 index 00000000..d2b7d1d0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_stairs_from_polished_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_shellstone" + }, + "result": { + "id": "antarchy:polished_shellstone_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_wall.json new file mode 100644 index 00000000..b9e77a08 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_shellstone" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:polished_shellstone_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_wall_from_polished_shellstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_wall_from_polished_shellstone_stonecutting.json new file mode 100644 index 00000000..6ca39ad3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_shellstone_wall_from_polished_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_shellstone" + }, + "result": { + "id": "antarchy:polished_shellstone_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_slab.json new file mode 100644 index 00000000..c40abf56 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_typhonite" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:polished_typhonite_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_slab_from_polished_typhonite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_slab_from_polished_typhonite_stonecutting.json new file mode 100644 index 00000000..83831579 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_slab_from_polished_typhonite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_typhonite" + }, + "result": { + "count": 2, + "id": "antarchy:polished_typhonite_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_stairs.json new file mode 100644 index 00000000..09698879 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_typhonite" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:polished_typhonite_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_stairs_from_polished_typhonite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_stairs_from_polished_typhonite_stonecutting.json new file mode 100644 index 00000000..deba5762 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_stairs_from_polished_typhonite_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_typhonite" + }, + "result": { + "id": "antarchy:polished_typhonite_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_wall.json new file mode 100644 index 00000000..812a1124 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_typhonite" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:polished_typhonite_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_wall_from_polished_typhonite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_wall_from_polished_typhonite_stonecutting.json new file mode 100644 index 00000000..950f484e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/polished_typhonite_wall_from_polished_typhonite_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_typhonite" + }, + "result": { + "id": "antarchy:polished_typhonite_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/popcorn_from_smelting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/popcorn_from_smelting.json new file mode 100644 index 00000000..145d1a82 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/popcorn_from_smelting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "food", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "antarchy:corn_seeds" + }, + "result": { + "id": "antarchy:popcorn" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/popcorn_from_smoking.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/popcorn_from_smoking.json new file mode 100644 index 00000000..529783bb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/popcorn_from_smoking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smoking", + "category": "food", + "cookingtime": 100, + "experience": 0.1, + "ingredient": { + "item": "antarchy:corn_seeds" + }, + "result": { + "id": "antarchy:popcorn" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/portal_gun.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/portal_gun.json new file mode 100644 index 00000000..fff9858d --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/primordial_boots.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/primordial_boots.json new file mode 100644 index 00000000..df018913 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/primordial_boots.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "S S", + "S S" + ], + "key": { + "S": { + "item": "antarchy:primordial_scute" + } + }, + "result": { + "id": "antarchy:primordial_boots", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/primordial_chestplate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/primordial_chestplate.json new file mode 100644 index 00000000..70224df6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/primordial_chestplate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "S S", + "SSS", + "SSS" + ], + "key": { + "S": { + "item": "antarchy:primordial_scute" + } + }, + "result": { + "id": "antarchy:primordial_chestplate", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/primordial_helmet.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/primordial_helmet.json new file mode 100644 index 00000000..50c0087f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/primordial_helmet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "S S" + ], + "key": { + "S": { + "item": "antarchy:primordial_scute" + } + }, + "result": { + "id": "antarchy:primordial_helmet", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/primordial_leggings.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/primordial_leggings.json new file mode 100644 index 00000000..aa6fa050 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/primordial_leggings.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "S S", + "S S" + ], + "key": { + "S": { + "item": "antarchy:primordial_scute" + } + }, + "result": { + "id": "antarchy:primordial_leggings", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/purple_banner_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/purple_banner_from_truffalo_tuft.json new file mode 100644 index 00000000..a9bd5e33 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/purple_banner_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "###", + " S " + ], + "key": { + "#": { + "item": "antarchy:purple_truffalo_tuft" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "id": "minecraft:purple_banner" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/purple_bed_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/purple_bed_from_truffalo_tuft.json new file mode 100644 index 00000000..9b622bc2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/purple_bed_from_truffalo_tuft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "PPP" + ], + "key": { + "#": { + "item": "antarchy:purple_truffalo_tuft" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "result": { + "id": "minecraft:purple_bed" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/rainbow_sugar.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/rainbow_sugar.json new file mode 100644 index 00000000..a91e2a53 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/rainbow_sugar.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { "item": "minecraft:sugar" }, + { "item": "antarchy:uranium_nugget" }, + { "item": "antarchy:high_fructose_corn_syrup" } + ], + "result": { + "id": "antarchy:rainbow_sugar", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/raw_corndog.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/raw_corndog.json new file mode 100644 index 00000000..e569ba5c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/raw_corndog.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "food", + "key": { + "#": { + "tag": "antarchy:corndog_meats" + }, + "C": { + "item": "antarchy:corn" + }, + "S": { + "item": "minecraft:stick" + } + }, + "pattern": [ + " C ", + "C#C", + " S " + ], + "result": { + "count": 1, + "id": "antarchy:raw_corndog" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/red_banner_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/red_banner_from_truffalo_tuft.json new file mode 100644 index 00000000..364b05a3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/red_banner_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "###", + " S " + ], + "key": { + "#": { + "item": "antarchy:red_truffalo_tuft" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "id": "minecraft:red_banner" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/red_bed_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/red_bed_from_truffalo_tuft.json new file mode 100644 index 00000000..a9ae2183 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/red_bed_from_truffalo_tuft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "PPP" + ], + "key": { + "#": { + "item": "antarchy:red_truffalo_tuft" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "result": { + "id": "minecraft:red_bed" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/red_dye_from_spider_lily.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/red_dye_from_spider_lily.json new file mode 100644 index 00000000..b2c55b48 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/red_dye_from_spider_lily.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "antarchy:spider_lily" + } + ], + "result": { + "count": 1, + "id": "minecraft:red_dye" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_boat.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_boat.json new file mode 100644 index 00000000..c649a06d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_boat.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "antarchy:royal_planks" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "count": 1, + "id": "antarchy:royal_boat" + } +} + diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_button.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_button.json new file mode 100644 index 00000000..ac325620 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "wooden_button", + "ingredients": [ + { + "item": "antarchy:royal_planks" + } + ], + "result": { + "count": 1, + "id": "antarchy:royal_button" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_chest_boat.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_chest_boat.json new file mode 100644 index 00000000..02145e8f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_chest_boat.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "equipment", + "ingredients": [ + { + "item": "antarchy:royal_boat" + }, + { + "item": "minecraft:chest" + } + ], + "result": { + "count": 1, + "id": "antarchy:royal_chest_boat" + } +} + diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_door.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_door.json new file mode 100644 index 00000000..b03fd86d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_door.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_door", + "key": { + "#": { + "item": "antarchy:royal_planks" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "antarchy:royal_door" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_fence.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_fence.json new file mode 100644 index 00000000..970a1d9d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_fence", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "antarchy:royal_planks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 3, + "id": "antarchy:royal_fence" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_fence_gate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_fence_gate.json new file mode 100644 index 00000000..3960930a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "antarchy:royal_planks" + } + }, + "pattern": [ + "#W#", + "#W#" + ], + "result": { + "count": 1, + "id": "antarchy:royal_fence_gate" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_hanging_sign.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_hanging_sign.json new file mode 100644 index 00000000..b24e1454 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_hanging_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "hanging_sign", + "key": { + "#": { + "item": "antarchy:stripped_royal_log" + }, + "X": { + "item": "minecraft:chain" + } + }, + "pattern": [ + "X X", + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:royal_hanging_sign" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_planks.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_planks.json new file mode 100644 index 00000000..2f5cb9cd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "tag": "antarchy:royal_logs" + } + ], + "result": { + "count": 4, + "id": "antarchy:royal_planks" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_pressure_plate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_pressure_plate.json new file mode 100644 index 00000000..e1d43821 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_pressure_plate", + "key": { + "#": { + "item": "antarchy:royal_planks" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "antarchy:royal_pressure_plate" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_sign.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_sign.json new file mode 100644 index 00000000..c6258e03 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_sign", + "key": { + "#": { + "item": "antarchy:royal_planks" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " X " + ], + "result": { + "count": 3, + "id": "antarchy:royal_sign" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_slab.json new file mode 100644 index 00000000..882e3654 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_slab", + "key": { + "#": { + "item": "antarchy:royal_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:royal_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_stairs.json new file mode 100644 index 00000000..4486b092 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": { + "item": "antarchy:royal_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:royal_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_trapdoor.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_trapdoor.json new file mode 100644 index 00000000..b192af5a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_trapdoor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": { + "item": "antarchy:royal_planks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "antarchy:royal_trapdoor" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_wood.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_wood.json new file mode 100644 index 00000000..e0e84ab0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/royal_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "antarchy:royal_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "antarchy:royal_wood" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/stripped_royal_wood.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/stripped_royal_wood.json new file mode 100644 index 00000000..694639d8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal/stripped_royal_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "antarchy:stripped_royal_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "antarchy:stripped_royal_wood" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_battleaxe.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_battleaxe.json new file mode 100644 index 00000000..99443b9e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_battleaxe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "SBS", + "SSS" + ], + "key": { + "S": { + "item": "antarchy:queen_scale" + }, + "B": { + "item": "antarchy:big_bertha" + } + }, + "result": { + "id": "antarchy:royal_assailant_battleaxe", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_boots.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_boots.json new file mode 100644 index 00000000..4f55f725 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_boots.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "SUS", + "SSS" + ], + "key": { + "S": { "item": "antarchy:queen_scale" }, + "U": { "item": "antarchy:ultimate_boots" } + }, + "result": { + "id": "antarchy:royal_assailant_boots", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_chestplate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_chestplate.json new file mode 100644 index 00000000..0a9b0ae2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_chestplate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "SUS", + "SSS" + ], + "key": { + "S": { "item": "antarchy:queen_scale" }, + "U": { "item": "antarchy:ultimate_chestplate" } + }, + "result": { + "id": "antarchy:royal_assailant_chestplate", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_helmet.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_helmet.json new file mode 100644 index 00000000..a3a4319e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_helmet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "SUS", + "SSS" + ], + "key": { + "S": { "item": "antarchy:queen_scale" }, + "U": { "item": "antarchy:ultimate_helmet" } + }, + "result": { + "id": "antarchy:royal_assailant_helmet", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_leggings.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_leggings.json new file mode 100644 index 00000000..8c510bf4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_leggings.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "SUS", + "SSS" + ], + "key": { + "S": { "item": "antarchy:queen_scale" }, + "U": { "item": "antarchy:ultimate_leggings" } + }, + "result": { + "id": "antarchy:royal_assailant_leggings", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_staff.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_staff.json new file mode 100644 index 00000000..21d32d94 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_assailant_staff.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": ["MLM", " Q ", " Q "], + "key": { + "M": { "item": "antarchy:manticore_wing" }, + "L": { "item": "antarchy:lucid_eye" }, + "Q": { "item": "antarchy:queen_scale" } + }, + "result": { "id": "antarchy:royal_assailant_staff", "count": 1 } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_boots.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_boots.json new file mode 100644 index 00000000..d84265f8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_boots.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "SUS", + "SSS" + ], + "key": { + "S": { "item": "antarchy:king_scale" }, + "U": { "item": "antarchy:ultimate_boots" } + }, + "result": { + "id": "antarchy:royal_guardian_boots", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_chestplate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_chestplate.json new file mode 100644 index 00000000..5d77f5a3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_chestplate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "SUS", + "SSS" + ], + "key": { + "S": { "item": "antarchy:king_scale" }, + "U": { "item": "antarchy:ultimate_chestplate" } + }, + "result": { + "id": "antarchy:royal_guardian_chestplate", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_helmet.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_helmet.json new file mode 100644 index 00000000..37736878 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_helmet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "SUS", + "SSS" + ], + "key": { + "S": { "item": "antarchy:king_scale" }, + "U": { "item": "antarchy:ultimate_helmet" } + }, + "result": { + "id": "antarchy:royal_guardian_helmet", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_leggings.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_leggings.json new file mode 100644 index 00000000..e404dc5d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_leggings.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "SUS", + "SSS" + ], + "key": { + "S": { "item": "antarchy:king_scale" }, + "U": { "item": "antarchy:ultimate_leggings" } + }, + "result": { + "id": "antarchy:royal_guardian_leggings", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_shield.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_shield.json new file mode 100644 index 00000000..a9b884b8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_shield.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "SBS", + "SSS" + ], + "key": { + "S": { + "item": "antarchy:king_scale" + }, + "B": { + "item": "minecraft:shield" + } + }, + "result": { + "id": "antarchy:royal_guardian_shield", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_sword.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_sword.json new file mode 100644 index 00000000..5e9cc4b4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/royal_guardian_sword.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "SBS", + "SSS" + ], + "key": { + "S": { + "item": "antarchy:king_scale" + }, + "B": { + "item": "antarchy:big_bertha" + } + }, + "result": { + "id": "antarchy:royal_guardian_sword", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/rpo_launcher.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/rpo_launcher.json new file mode 100644 index 00000000..02ea37b5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/rpo_launcher.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "TTT", + "III", + "TTT" + ], + "key": { + "T": { + "item": "antarchy:titanium_block" + }, + "I": { + "item": "minecraft:ink_sac" + } + }, + "result": { + "id": "antarchy:rpo_launcher", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/scorpion_whip.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/scorpion_whip.json new file mode 100644 index 00000000..b88292ef --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/scorpion_whip.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " S", + " L ", + "L " + ], + "key": { + "L": { + "item": "minecraft:lead" + }, + "S": { + "item": "antarchy:emperor_scorpion_stinger" + } + }, + "result": { + "id": "antarchy:scorpion_whip", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone.json new file mode 100644 index 00000000..2d6dc380 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:stone" + }, + "P": { + "item": "antarchy:primordial_scute" + } + }, + "pattern": [ + "SSS", + "SPS", + "SSS" + ], + "result": { + "count": 8, + "id": "antarchy:shellstone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_slab.json new file mode 100644 index 00000000..96a68d4f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:shellstone_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:shellstone_brick_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_slab_from_shellstone_bricks_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_slab_from_shellstone_bricks_stonecutting.json new file mode 100644 index 00000000..7ac88bab --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_slab_from_shellstone_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:shellstone_bricks" + }, + "result": { + "id": "antarchy:shellstone_brick_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_stairs.json new file mode 100644 index 00000000..a16aae7c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:shellstone_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:shellstone_brick_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_stairs_from_shellstone_bricks_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_stairs_from_shellstone_bricks_stonecutting.json new file mode 100644 index 00000000..71245885 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_stairs_from_shellstone_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:shellstone_bricks" + }, + "result": { + "id": "antarchy:shellstone_brick_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_wall.json new file mode 100644 index 00000000..d5389cc6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:shellstone_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:shellstone_brick_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_wall_from_shellstone_bricks_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_wall_from_shellstone_bricks_stonecutting.json new file mode 100644 index 00000000..fb6bade5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_brick_wall_from_shellstone_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:shellstone_bricks" + }, + "result": { + "id": "antarchy:shellstone_brick_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_bricks.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_bricks.json new file mode 100644 index 00000000..456f20a6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_shellstone" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "antarchy:shellstone_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_bricks_from_polished_shellstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_bricks_from_polished_shellstone_stonecutting.json new file mode 100644 index 00000000..2658a28c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_bricks_from_polished_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_shellstone" + }, + "result": { + "id": "antarchy:shellstone_bricks" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_pillar.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_pillar.json new file mode 100644 index 00000000..b44593c8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_pillar.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_shellstone" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "id": "antarchy:shellstone_pillar", + "count": 2 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_pillar_from_shellstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_pillar_from_shellstone_stonecutting.json new file mode 100644 index 00000000..8f2b2ad6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_pillar_from_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:shellstone" + }, + "result": { + "id": "antarchy:shellstone_pillar" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_slab.json new file mode 100644 index 00000000..3950b782 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:shellstone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:shellstone_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_slab_from_shellstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_slab_from_shellstone_stonecutting.json new file mode 100644 index 00000000..3f437c99 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_slab_from_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:shellstone" + }, + "result": { + "id": "antarchy:shellstone_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_stairs.json new file mode 100644 index 00000000..431bab68 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:shellstone" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:shellstone_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_stairs_from_shellstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_stairs_from_shellstone_stonecutting.json new file mode 100644 index 00000000..d77ae87f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_stairs_from_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:shellstone" + }, + "result": { + "id": "antarchy:shellstone_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_wall.json new file mode 100644 index 00000000..ace5ddef --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:shellstone" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:shellstone_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_wall_from_shellstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_wall_from_shellstone_stonecutting.json new file mode 100644 index 00000000..9ea99f5f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shellstone_wall_from_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:shellstone" + }, + "result": { + "id": "antarchy:shellstone_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/shrink_ray.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/shrink_ray.json new file mode 100644 index 00000000..66e3d4c6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/shrink_ray.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "UUU", + "UCU", + " N" + ], + "key": { + "U": { + "item": "antarchy:uranium_ingot" + }, + "N": { + "tag": "c:ingots/netherite" + }, + "C": { + "item": "minecraft:comparator" + } + }, + "result": { + "id": "antarchy:shrink_ray", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/smooth_dream_sandstone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/smooth_dream_sandstone.json new file mode 100644 index 00000000..781c3982 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/smooth_dream_sandstone.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "experience": 0.1, + "ingredient": { + "item": "antarchy:dream_sandstone" + }, + "result": { + "id": "antarchy:smooth_dream_sandstone" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/smooth_dream_sandstone_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/smooth_dream_sandstone_slab.json new file mode 100644 index 00000000..ba25e8eb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/smooth_dream_sandstone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:smooth_dream_sandstone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:smooth_dream_sandstone_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/smooth_dream_sandstone_slab_from_smooth_dream_sandstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/smooth_dream_sandstone_slab_from_smooth_dream_sandstone_stonecutting.json new file mode 100644 index 00000000..5ed26e56 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/smooth_dream_sandstone_slab_from_smooth_dream_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:smooth_dream_sandstone" + }, + "result": { + "count": 2, + "id": "antarchy:smooth_dream_sandstone_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/smooth_dream_sandstone_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/smooth_dream_sandstone_stairs.json new file mode 100644 index 00000000..1fc1ca0f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/smooth_dream_sandstone_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:smooth_dream_sandstone" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:smooth_dream_sandstone_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/smooth_dream_sandstone_stairs_from_smooth_dream_sandstone_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/smooth_dream_sandstone_stairs_from_smooth_dream_sandstone_stonecutting.json new file mode 100644 index 00000000..92545111 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/smooth_dream_sandstone_stairs_from_smooth_dream_sandstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:smooth_dream_sandstone" + }, + "result": { + "id": "antarchy:smooth_dream_sandstone_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/squidzooka.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/squidzooka.json new file mode 100644 index 00000000..f461dbaf --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/squidzooka.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "TTT", + "III", + "TTT" + ], + "key": { + "T": { + "item": "antarchy:titanium_ingot" + }, + "I": { + "item": "minecraft:ink_sac" + } + }, + "result": { + "id": "antarchy:squidzooka", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/target_from_bluestone.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/target_from_bluestone.json new file mode 100644 index 00000000..f3e8c33f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/target_from_bluestone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "H": { + "item": "minecraft:hay_block" + }, + "R": { + "item": "antarchy:bluestone" + } + }, + "pattern": [ + " R ", + "RHR", + " R " + ], + "result": { + "count": 1, + "id": "minecraft:target" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/tigers_eye_block.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/tigers_eye_block.json new file mode 100644 index 00000000..807aa892 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/tigers_eye_boots.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/tigers_eye_boots.json new file mode 100644 index 00000000..dc67d407 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/tigers_eye_boots.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "S S", + "S S" + ], + "key": { + "S": { + "item": "antarchy:tigers_eye" + } + }, + "result": { + "id": "antarchy:tigers_eye_boots", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/tigers_eye_chestplate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/tigers_eye_chestplate.json new file mode 100644 index 00000000..659ce168 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/tigers_eye_chestplate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "S S", + "SSS", + "SSS" + ], + "key": { + "S": { + "item": "antarchy:tigers_eye" + } + }, + "result": { + "id": "antarchy:tigers_eye_chestplate", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/tigers_eye_from_block.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/tigers_eye_from_block.json new file mode 100644 index 00000000..17fac43c --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/tigers_eye_helmet.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/tigers_eye_helmet.json new file mode 100644 index 00000000..9a6cceef --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/tigers_eye_helmet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "S S" + ], + "key": { + "S": { + "item": "antarchy:tigers_eye" + } + }, + "result": { + "id": "antarchy:tigers_eye_helmet", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/tigers_eye_leggings.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/tigers_eye_leggings.json new file mode 100644 index 00000000..b43d1e71 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/tigers_eye_leggings.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "S S", + "S S" + ], + "key": { + "S": { + "item": "antarchy:tigers_eye" + } + }, + "result": { + "id": "antarchy:tigers_eye_leggings", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/chiseled_titanium.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/chiseled_titanium.json new file mode 100644 index 00000000..7826f5dd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/chiseled_titanium.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:cut_titanium_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "id": "antarchy:chiseled_titanium" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/chiseled_titanium_from_cut_titanium_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/chiseled_titanium_from_cut_titanium_stonecutting.json new file mode 100644 index 00000000..de7293b9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/chiseled_titanium_from_cut_titanium_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:cut_titanium" + }, + "result": { + "id": "antarchy:chiseled_titanium" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/chiseled_titanium_from_titanium_block_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/chiseled_titanium_from_titanium_block_stonecutting.json new file mode 100644 index 00000000..6e587373 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/chiseled_titanium_from_titanium_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:titanium_block" + }, + "result": { + "count": 4, + "id": "antarchy:chiseled_titanium" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium.json new file mode 100644 index 00000000..27b31a8a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:titanium_block" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "antarchy:cut_titanium" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_from_titanium_block_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_from_titanium_block_stonecutting.json new file mode 100644 index 00000000..d9dab374 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_from_titanium_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:titanium_block" + }, + "result": { + "count": 4, + "id": "antarchy:cut_titanium" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_slab.json new file mode 100644 index 00000000..db60b7ad --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:cut_titanium" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:cut_titanium_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_slab_from_cut_titanium_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_slab_from_cut_titanium_stonecutting.json new file mode 100644 index 00000000..25db603a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_slab_from_cut_titanium_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:cut_titanium" + }, + "result": { + "count": 2, + "id": "antarchy:cut_titanium_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_slab_from_titanium_block_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_slab_from_titanium_block_stonecutting.json new file mode 100644 index 00000000..fc5663ba --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_slab_from_titanium_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:titanium_block" + }, + "result": { + "count": 8, + "id": "antarchy:cut_titanium_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_stairs.json new file mode 100644 index 00000000..29a88cbd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:cut_titanium" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:cut_titanium_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_stairs_from_cut_titanium_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_stairs_from_cut_titanium_stonecutting.json new file mode 100644 index 00000000..98dc0d43 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_stairs_from_cut_titanium_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:cut_titanium" + }, + "result": { + "id": "antarchy:cut_titanium_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_stairs_from_titanium_block_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_stairs_from_titanium_block_stonecutting.json new file mode 100644 index 00000000..cec54ed4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/cut_titanium_stairs_from_titanium_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:titanium_block" + }, + "result": { + "count": 4, + "id": "antarchy:cut_titanium_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/raw_titanium_block.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/raw_titanium_block.json new file mode 100644 index 00000000..bb28dd32 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/raw_titanium_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "III", + "III", + "III" + ], + "key": { + "I": { + "item": "antarchy:raw_titanium" + } + }, + "result": { + "id": "antarchy:raw_titanium_block", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/raw_titanium_from_block.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/raw_titanium_from_block.json new file mode 100644 index 00000000..1d2de3ba --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/raw_titanium_from_block.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "antarchy:raw_titanium_block" + } + ], + "result": { + "id": "antarchy:raw_titanium", + "count": 9 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/raw_titanium_from_scrap.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/raw_titanium_from_scrap.json new file mode 100644 index 00000000..53af6e83 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/raw_titanium_from_scrap.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + "SSS", + "SSS", + "SSS" + ], + "key": { + "S": { + "item": "antarchy:raw_titanium_scrap" + } + }, + "result": { + "id": "antarchy:raw_titanium", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_bars.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_bars.json new file mode 100644 index 00000000..45c5d112 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_bars.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "#": { + "item": "antarchy:titanium_ingot" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "antarchy:titanium_bars" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_block.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_block.json new file mode 100644 index 00000000..e1b796e1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "III", + "III", + "III" + ], + "key": { + "I": { + "item": "antarchy:titanium_ingot" + } + }, + "result": { + "id": "antarchy:titanium_block", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_bulb.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_bulb.json new file mode 100644 index 00000000..d69d24e1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_bulb.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "B": { + "item": "minecraft:blaze_rod" + }, + "C": { + "item": "antarchy:titanium_block" + }, + "R": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + " C ", + "CBC", + " R " + ], + "result": { + "count": 4, + "id": "antarchy:titanium_bulb" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_door.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_door.json new file mode 100644 index 00000000..07269636 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_door.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "antarchy:titanium_ingot" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "antarchy:titanium_door" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_ingot_from_nuggets.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_ingot_from_nuggets.json new file mode 100644 index 00000000..fdc229a0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_ingot_from_nuggets.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + "NNN", + "NNN", + "NNN" + ], + "key": { + "N": { + "item": "antarchy:titanium_nugget" + } + }, + "result": { + "id": "antarchy:titanium_ingot", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_ingot_from_raw_titanium_blasting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_ingot_from_raw_titanium_blasting.json new file mode 100644 index 00000000..18262aea --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_ingot_from_raw_titanium_blasting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "ingredient": { + "item": "antarchy:raw_titanium" + }, + "result": { + "id": "antarchy:titanium_ingot" + }, + "experience": 2.0, + "cookingtime": 100 +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_ingot_from_raw_titanium_smelting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_ingot_from_raw_titanium_smelting.json new file mode 100644 index 00000000..47855561 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_ingot_from_raw_titanium_smelting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "ingredient": { + "item": "antarchy:raw_titanium" + }, + "result": { + "id": "antarchy:titanium_ingot" + }, + "experience": 2.0, + "cookingtime": 200 +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_ingots_from_block.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_ingots_from_block.json new file mode 100644 index 00000000..20b49872 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_ingots_from_block.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "antarchy:titanium_block" + } + ], + "result": { + "id": "antarchy:titanium_ingot", + "count": 9 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_nugget_from_raw_titanium_scrap_blasting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_nugget_from_raw_titanium_scrap_blasting.json new file mode 100644 index 00000000..03136581 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_nugget_from_raw_titanium_scrap_blasting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "ingredient": { + "item": "antarchy:raw_titanium_scrap" + }, + "result": { + "id": "antarchy:titanium_nugget" + }, + "experience": 2.0, + "cookingtime": 100 +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_nugget_from_raw_titanium_scrap_smelting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_nugget_from_raw_titanium_scrap_smelting.json new file mode 100644 index 00000000..5761c6aa --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_nugget_from_raw_titanium_scrap_smelting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "ingredient": { + "item": "antarchy:raw_titanium_scrap" + }, + "result": { + "id": "antarchy:titanium_nugget" + }, + "experience": 2.0, + "cookingtime": 200 +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_nuggets_from_ingot.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_nuggets_from_ingot.json new file mode 100644 index 00000000..b739a5b2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_nuggets_from_ingot.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "antarchy:titanium_ingot" + } + ], + "result": { + "id": "antarchy:titanium_nugget", + "count": 9 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_trapdoor.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_trapdoor.json new file mode 100644 index 00000000..66732d3d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/titanium/titanium_trapdoor.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "antarchy:titanium_ingot" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "id": "antarchy:titanium_trapdoor" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/triffid_goo_block.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/triffid_goo_block.json new file mode 100644 index 00000000..77656042 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/triffid_goo_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:triffid_goo" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "id": "antarchy:triffid_goo_block" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/black_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/black_truffalo_tuft.json new file mode 100644 index 00000000..7f8b3432 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/black_truffalo_tuft.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "truffalo_tuft", + "ingredients": [ + { "tag": "antarchy:truffalo_tuft" }, + { "item": "minecraft:black_dye" } + ], + "result": { + "count": 1, + "id": "antarchy:black_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/blue_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/blue_truffalo_tuft.json new file mode 100644 index 00000000..faacf711 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/blue_truffalo_tuft.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "truffalo_tuft", + "ingredients": [ + { "tag": "antarchy:truffalo_tuft" }, + { "item": "minecraft:blue_dye" } + ], + "result": { + "count": 1, + "id": "antarchy:blue_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/brown_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/brown_truffalo_tuft.json new file mode 100644 index 00000000..6b7ae827 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/brown_truffalo_tuft.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "truffalo_tuft", + "ingredients": [ + { "tag": "antarchy:truffalo_tuft" }, + { "item": "minecraft:brown_dye" } + ], + "result": { + "count": 1, + "id": "antarchy:brown_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/cyan_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/cyan_truffalo_tuft.json new file mode 100644 index 00000000..a14e5601 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/cyan_truffalo_tuft.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "truffalo_tuft", + "ingredients": [ + { "tag": "antarchy:truffalo_tuft" }, + { "item": "minecraft:cyan_dye" } + ], + "result": { + "count": 1, + "id": "antarchy:cyan_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/gray_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/gray_truffalo_tuft.json new file mode 100644 index 00000000..1301d795 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/gray_truffalo_tuft.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "truffalo_tuft", + "ingredients": [ + { "tag": "antarchy:truffalo_tuft" }, + { "item": "minecraft:gray_dye" } + ], + "result": { + "count": 1, + "id": "antarchy:gray_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/green_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/green_truffalo_tuft.json new file mode 100644 index 00000000..54916c9f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/green_truffalo_tuft.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "truffalo_tuft", + "ingredients": [ + { "tag": "antarchy:truffalo_tuft" }, + { "item": "minecraft:green_dye" } + ], + "result": { + "count": 1, + "id": "antarchy:green_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/light_blue_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/light_blue_truffalo_tuft.json new file mode 100644 index 00000000..7132709a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/light_blue_truffalo_tuft.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "truffalo_tuft", + "ingredients": [ + { "tag": "antarchy:truffalo_tuft" }, + { "item": "minecraft:light_blue_dye" } + ], + "result": { + "count": 1, + "id": "antarchy:light_blue_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/light_gray_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/light_gray_truffalo_tuft.json new file mode 100644 index 00000000..7dad2243 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/light_gray_truffalo_tuft.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "truffalo_tuft", + "ingredients": [ + { "tag": "antarchy:truffalo_tuft" }, + { "item": "minecraft:light_gray_dye" } + ], + "result": { + "count": 1, + "id": "antarchy:light_gray_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/lime_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/lime_truffalo_tuft.json new file mode 100644 index 00000000..4a5f24a1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/lime_truffalo_tuft.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "truffalo_tuft", + "ingredients": [ + { "tag": "antarchy:truffalo_tuft" }, + { "item": "minecraft:lime_dye" } + ], + "result": { + "count": 1, + "id": "antarchy:lime_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/magenta_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/magenta_truffalo_tuft.json new file mode 100644 index 00000000..1495f705 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/magenta_truffalo_tuft.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "truffalo_tuft", + "ingredients": [ + { "tag": "antarchy:truffalo_tuft" }, + { "item": "minecraft:magenta_dye" } + ], + "result": { + "count": 1, + "id": "antarchy:magenta_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/orange_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/orange_truffalo_tuft.json new file mode 100644 index 00000000..c77f2368 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/orange_truffalo_tuft.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "truffalo_tuft", + "ingredients": [ + { "tag": "antarchy:truffalo_tuft" }, + { "item": "minecraft:orange_dye" } + ], + "result": { + "count": 1, + "id": "antarchy:orange_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/pink_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/pink_truffalo_tuft.json new file mode 100644 index 00000000..b048aac6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/pink_truffalo_tuft.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "truffalo_tuft", + "ingredients": [ + { "tag": "antarchy:truffalo_tuft" }, + { "item": "minecraft:pink_dye" } + ], + "result": { + "count": 1, + "id": "antarchy:pink_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/purple_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/purple_truffalo_tuft.json new file mode 100644 index 00000000..983a3da2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/purple_truffalo_tuft.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "truffalo_tuft", + "ingredients": [ + { "tag": "antarchy:truffalo_tuft" }, + { "item": "minecraft:purple_dye" } + ], + "result": { + "count": 1, + "id": "antarchy:purple_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/red_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/red_truffalo_tuft.json new file mode 100644 index 00000000..d57f5d5d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/red_truffalo_tuft.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "truffalo_tuft", + "ingredients": [ + { "tag": "antarchy:truffalo_tuft" }, + { "item": "minecraft:red_dye" } + ], + "result": { + "count": 1, + "id": "antarchy:red_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/stripped_truffalo_wood.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/stripped_truffalo_wood.json new file mode 100644 index 00000000..bd90cb72 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/stripped_truffalo_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "antarchy:stripped_truffalo_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 2, + "id": "antarchy:stripped_truffalo_wood" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_boat.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_boat.json new file mode 100644 index 00000000..d623529b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_boat.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "antarchy:truffalo_planks" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "count": 1, + "id": "antarchy:truffalo_boat" + } +} + diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_button.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_button.json new file mode 100644 index 00000000..08245cee --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "wooden_button", + "ingredients": [ + { + "item": "antarchy:truffalo_planks" + } + ], + "result": { + "count": 1, + "id": "antarchy:truffalo_button" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_chest_boat.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_chest_boat.json new file mode 100644 index 00000000..36953dae --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_chest_boat.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "equipment", + "ingredients": [ + { + "item": "antarchy:truffalo_boat" + }, + { + "item": "minecraft:chest" + } + ], + "result": { + "count": 1, + "id": "antarchy:truffalo_chest_boat" + } +} + diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_door.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_door.json new file mode 100644 index 00000000..431ebfb8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_door.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_door", + "key": { + "#": { + "item": "antarchy:truffalo_planks" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "antarchy:truffalo_door" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_fence.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_fence.json new file mode 100644 index 00000000..6a6f4f07 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_fence", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "antarchy:truffalo_planks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 3, + "id": "antarchy:truffalo_fence" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_fence_gate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_fence_gate.json new file mode 100644 index 00000000..f721e2d9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "antarchy:truffalo_planks" + } + }, + "pattern": [ + "#W#", + "#W#" + ], + "result": { + "count": 1, + "id": "antarchy:truffalo_fence_gate" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_hanging_sign.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_hanging_sign.json new file mode 100644 index 00000000..69f59086 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_hanging_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "hanging_sign", + "key": { + "#": { + "item": "antarchy:stripped_truffalo_log" + }, + "X": { + "item": "minecraft:chain" + } + }, + "pattern": [ + "X X", + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:truffalo_hanging_sign" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_planks.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_planks.json new file mode 100644 index 00000000..d967690e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "item": "antarchy:truffalo_log" + } + ], + "result": { + "count": 2, + "id": "antarchy:truffalo_planks" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_planks_from_stripped_truffalo_log.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_planks_from_stripped_truffalo_log.json new file mode 100644 index 00000000..89126f8b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_planks_from_stripped_truffalo_log.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "item": "antarchy:stripped_truffalo_log" + } + ], + "result": { + "count": 2, + "id": "antarchy:truffalo_planks" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_planks_from_stripped_truffalo_wood.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_planks_from_stripped_truffalo_wood.json new file mode 100644 index 00000000..c747de56 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_planks_from_stripped_truffalo_wood.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "item": "antarchy:stripped_truffalo_wood" + } + ], + "result": { + "count": 4, + "id": "antarchy:truffalo_planks" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_planks_from_truffalo_wood.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_planks_from_truffalo_wood.json new file mode 100644 index 00000000..9ef58dff --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_planks_from_truffalo_wood.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "item": "antarchy:truffalo_wood" + } + ], + "result": { + "count": 4, + "id": "antarchy:truffalo_planks" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_pressure_plate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_pressure_plate.json new file mode 100644 index 00000000..5ca36c21 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_pressure_plate", + "key": { + "#": { + "item": "antarchy:truffalo_planks" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "antarchy:truffalo_pressure_plate" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_sign.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_sign.json new file mode 100644 index 00000000..9922cee8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_sign", + "key": { + "#": { + "item": "antarchy:truffalo_planks" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " X " + ], + "result": { + "count": 3, + "id": "antarchy:truffalo_sign" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_slab.json new file mode 100644 index 00000000..f6da964b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_slab", + "key": { + "#": { + "item": "antarchy:truffalo_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:truffalo_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_stairs.json new file mode 100644 index 00000000..9c4a0650 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": { + "item": "antarchy:truffalo_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:truffalo_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_trapdoor.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_trapdoor.json new file mode 100644 index 00000000..2c8ae9e7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_trapdoor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": { + "item": "antarchy:truffalo_planks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "antarchy:truffalo_trapdoor" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_wood.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_wood.json new file mode 100644 index 00000000..e29c3d5c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/truffalo_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "antarchy:truffalo_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 2, + "id": "antarchy:truffalo_wood" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/white_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/white_truffalo_tuft.json new file mode 100644 index 00000000..6754020c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/white_truffalo_tuft.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "truffalo_tuft", + "ingredients": [ + { "tag": "antarchy:truffalo_tuft" }, + { "item": "minecraft:white_dye" } + ], + "result": { + "count": 1, + "id": "antarchy:white_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/yellow_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/yellow_truffalo_tuft.json new file mode 100644 index 00000000..e062bc0f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/truffalo/yellow_truffalo_tuft.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "truffalo_tuft", + "ingredients": [ + { "tag": "antarchy:truffalo_tuft" }, + { "item": "minecraft:yellow_dye" } + ], + "result": { + "count": 1, + "id": "antarchy:yellow_truffalo_tuft" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_slab.json new file mode 100644 index 00000000..16e31b5a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:typhonite_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:typhonite_brick_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_slab_from_typhonite_bricks_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_slab_from_typhonite_bricks_stonecutting.json new file mode 100644 index 00000000..250dfce6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_slab_from_typhonite_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:typhonite_bricks" + }, + "result": { + "count": 2, + "id": "antarchy:typhonite_brick_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_stairs.json new file mode 100644 index 00000000..455a67fa --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:typhonite_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:typhonite_brick_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_stairs_from_typhonite_bricks_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_stairs_from_typhonite_bricks_stonecutting.json new file mode 100644 index 00000000..87dece95 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_stairs_from_typhonite_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:typhonite_bricks" + }, + "result": { + "id": "antarchy:typhonite_brick_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_wall.json new file mode 100644 index 00000000..18840b6b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:typhonite_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:typhonite_brick_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_wall_from_typhonite_bricks_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_wall_from_typhonite_bricks_stonecutting.json new file mode 100644 index 00000000..cb3a1c22 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_brick_wall_from_typhonite_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:typhonite_bricks" + }, + "result": { + "id": "antarchy:typhonite_brick_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_pillar.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_pillar.json new file mode 100644 index 00000000..fd8f2b40 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_pillar.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_typhonite" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "id": "antarchy:typhonite_pillar", + "count": 2 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_pillar_from_typhonite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_pillar_from_typhonite_stonecutting.json new file mode 100644 index 00000000..d35283f0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_pillar_from_typhonite_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:typhonite" + }, + "result": { + "id": "antarchy:typhonite_pillar" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_slab.json new file mode 100644 index 00000000..2f8f91d7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:typhonite" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:typhonite_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_slab_from_typhonite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_slab_from_typhonite_stonecutting.json new file mode 100644 index 00000000..caae48ce --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_slab_from_typhonite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:typhonite" + }, + "result": { + "count": 2, + "id": "antarchy:typhonite_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_stairs.json new file mode 100644 index 00000000..a9f7eac8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:typhonite" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:typhonite_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_stairs_from_typhonite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_stairs_from_typhonite_stonecutting.json new file mode 100644 index 00000000..3e82a518 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_stairs_from_typhonite_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:typhonite" + }, + "result": { + "id": "antarchy:typhonite_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_wall.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_wall.json new file mode 100644 index 00000000..d2457e88 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:typhonite" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:typhonite_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_wall_from_typhonite_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_wall_from_typhonite_stonecutting.json new file mode 100644 index 00000000..f9db9aa6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/typhonite_wall_from_typhonite_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:typhonite" + }, + "result": { + "id": "antarchy:typhonite_wall" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_axe.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_axe.json new file mode 100644 index 00000000..9a141b6c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_axe.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "UT ", + "UN ", + " N " + ], + "key": { + "U": { + "item": "antarchy:uranium_ingot" + }, + "T": { + "item": "antarchy:titanium_ingot" + }, + "N": { + "item": "minecraft:netherite_ingot" + } + }, + "result": { + "id": "antarchy:ultimate_axe", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_boots.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_boots.json new file mode 100644 index 00000000..182b8fc2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_boots.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "U U", + "T T" + ], + "key": { + "U": { + "item": "antarchy:uranium_ingot" + }, + "T": { + "item": "antarchy:titanium_ingot" + } + }, + "result": { + "id": "antarchy:ultimate_boots", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_bow.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_bow.json new file mode 100644 index 00000000..7a887d40 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_bow.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "UTS", + "U S", + "UTS" + ], + "key": { + "U": { + "item": "antarchy:uranium_ingot" + }, + "T": { + "item": "antarchy:titanium_ingot" + }, + "S": { + "item": "minecraft:string" + } + }, + "result": { + "id": "antarchy:ultimate_bow", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_chestplate.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_chestplate.json new file mode 100644 index 00000000..024c9f0b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_chestplate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "U U", + "UTU", + "TTT" + ], + "key": { + "U": { + "item": "antarchy:uranium_ingot" + }, + "T": { + "item": "antarchy:titanium_ingot" + } + }, + "result": { + "id": "antarchy:ultimate_chestplate", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_crossbow.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_crossbow.json new file mode 100644 index 00000000..947a12ea --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_crossbow.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "TUT", + "UCU", + "TUT" + ], + "key": { + "U": { + "item": "antarchy:uranium_ingot" + }, + "T": { + "item": "antarchy:titanium_ingot" + }, + "C": { + "item": "minecraft:crossbow" + } + }, + "result": { + "id": "antarchy:ultimate_crossbow", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_helmet.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_helmet.json new file mode 100644 index 00000000..0d87b860 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_helmet.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "TUT", + "T T" + ], + "key": { + "U": { + "item": "antarchy:uranium_ingot" + }, + "T": { + "item": "antarchy:titanium_ingot" + } + }, + "result": { + "id": "antarchy:ultimate_helmet", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_hoe.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_hoe.json new file mode 100644 index 00000000..5ff3eb26 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_hoe.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "UT ", + " N ", + " N " + ], + "key": { + "U": { + "item": "antarchy:uranium_ingot" + }, + "T": { + "item": "antarchy:titanium_ingot" + }, + "N": { + "item": "minecraft:netherite_ingot" + } + }, + "result": { + "id": "antarchy:ultimate_hoe", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_leggings.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_leggings.json new file mode 100644 index 00000000..fc141585 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_leggings.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "UTU", + "T T", + "U U" + ], + "key": { + "U": { + "item": "antarchy:uranium_ingot" + }, + "T": { + "item": "antarchy:titanium_ingot" + } + }, + "result": { + "id": "antarchy:ultimate_leggings", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_pickaxe.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_pickaxe.json new file mode 100644 index 00000000..2be56e04 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_pickaxe.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "UTU", + " N ", + " N " + ], + "key": { + "U": { + "item": "antarchy:uranium_ingot" + }, + "T": { + "item": "antarchy:titanium_ingot" + }, + "N": { + "item": "minecraft:netherite_ingot" + } + }, + "result": { + "id": "antarchy:ultimate_pickaxe", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_shovel.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_shovel.json new file mode 100644 index 00000000..ebfa5f30 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_shovel.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + " T ", + " U ", + " N " + ], + "key": { + "U": { + "item": "antarchy:uranium_ingot" + }, + "T": { + "item": "antarchy:titanium_ingot" + }, + "N": { + "item": "minecraft:netherite_ingot" + } + }, + "result": { + "id": "antarchy:ultimate_shovel", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_sword.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_sword.json new file mode 100644 index 00000000..90e4ebdb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/ultimate_sword.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + " U ", + " T ", + " N " + ], + "key": { + "U": { + "item": "antarchy:uranium_ingot" + }, + "T": { + "item": "antarchy:titanium_ingot" + }, + "N": { + "item": "minecraft:netherite_ingot" + } + }, + "result": { + "id": "antarchy:ultimate_sword", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/uranium_block.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/uranium_block.json new file mode 100644 index 00000000..e9e990ab --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/ultimate/uranium_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "III", + "III", + "III" + ], + "key": { + "I": { + "item": "antarchy:uranium_ingot" + } + }, + "result": { + "id": "antarchy:uranium_block", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/umbral_moss_carpet.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/umbral_moss_carpet.json new file mode 100644 index 00000000..59ee027d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/umbral_moss_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:umbral_moss_block" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 3, + "id": "antarchy:umbral_moss_carpet" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/upper.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/upper.json new file mode 100644 index 00000000..5163a8cd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/upper.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "I": { "item": "antarchy:polished_antimetal" }, + "C": { "item": "minecraft:chest" } + }, + "pattern": [ + " I ", + "ICI", + "I I" + ], + "result": { + "id": "antarchy:upper", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/chiseled_uranium.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/chiseled_uranium.json new file mode 100644 index 00000000..1a7c364c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/chiseled_uranium.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:cut_uranium_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "id": "antarchy:chiseled_uranium" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/chiseled_uranium_from_cut_uranium_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/chiseled_uranium_from_cut_uranium_stonecutting.json new file mode 100644 index 00000000..0d5f43bb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/chiseled_uranium_from_cut_uranium_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:cut_uranium" + }, + "result": { + "id": "antarchy:chiseled_uranium" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/chiseled_uranium_from_uranium_block_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/chiseled_uranium_from_uranium_block_stonecutting.json new file mode 100644 index 00000000..7550ec01 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/chiseled_uranium_from_uranium_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:uranium_block" + }, + "result": { + "count": 4, + "id": "antarchy:chiseled_uranium" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium.json new file mode 100644 index 00000000..ea4c3962 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:uranium_block" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "antarchy:cut_uranium" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_from_uranium_block_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_from_uranium_block_stonecutting.json new file mode 100644 index 00000000..1cd6ee71 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_from_uranium_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:uranium_block" + }, + "result": { + "count": 4, + "id": "antarchy:cut_uranium" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_slab.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_slab.json new file mode 100644 index 00000000..c8ef6043 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:cut_uranium" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:cut_uranium_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_slab_from_cut_uranium_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_slab_from_cut_uranium_stonecutting.json new file mode 100644 index 00000000..517a39eb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_slab_from_cut_uranium_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:cut_uranium" + }, + "result": { + "count": 2, + "id": "antarchy:cut_uranium_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_slab_from_uranium_block_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_slab_from_uranium_block_stonecutting.json new file mode 100644 index 00000000..5749c815 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_slab_from_uranium_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:uranium_block" + }, + "result": { + "count": 8, + "id": "antarchy:cut_uranium_slab" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_stairs.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_stairs.json new file mode 100644 index 00000000..e0af3de0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:cut_uranium" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:cut_uranium_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_stairs_from_cut_uranium_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_stairs_from_cut_uranium_stonecutting.json new file mode 100644 index 00000000..750437f1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_stairs_from_cut_uranium_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:cut_uranium" + }, + "result": { + "id": "antarchy:cut_uranium_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_stairs_from_uranium_block_stonecutting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_stairs_from_uranium_block_stonecutting.json new file mode 100644 index 00000000..f0e060f2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/cut_uranium_stairs_from_uranium_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:uranium_block" + }, + "result": { + "count": 4, + "id": "antarchy:cut_uranium_stairs" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/raw_uranium_block.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/raw_uranium_block.json new file mode 100644 index 00000000..0befce31 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/raw_uranium_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "III", + "III", + "III" + ], + "key": { + "I": { + "item": "antarchy:raw_uranium" + } + }, + "result": { + "id": "antarchy:raw_uranium_block", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/raw_uranium_from_block.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/raw_uranium_from_block.json new file mode 100644 index 00000000..15f27640 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/raw_uranium_from_block.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "antarchy:raw_uranium_block" + } + ], + "result": { + "id": "antarchy:raw_uranium", + "count": 9 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/raw_uranium_from_scrap.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/raw_uranium_from_scrap.json new file mode 100644 index 00000000..33fdd110 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/raw_uranium_from_scrap.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + "SSS", + "SSS", + "SSS" + ], + "key": { + "S": { + "item": "antarchy:raw_uranium_scrap" + } + }, + "result": { + "id": "antarchy:raw_uranium", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_bars.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_bars.json new file mode 100644 index 00000000..3c7d73b1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_bars.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "#": { + "item": "antarchy:uranium_ingot" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "antarchy:uranium_bars" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_bulb.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_bulb.json new file mode 100644 index 00000000..f4c99895 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_bulb.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "B": { + "item": "minecraft:blaze_rod" + }, + "C": { + "item": "antarchy:uranium_block" + }, + "R": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + " C ", + "CBC", + " R " + ], + "result": { + "count": 4, + "id": "antarchy:uranium_bulb" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_door.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_door.json new file mode 100644 index 00000000..ba6440a8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_door.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "antarchy:uranium_ingot" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "antarchy:uranium_door" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_ingot_from_nuggets.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_ingot_from_nuggets.json new file mode 100644 index 00000000..60f51c0e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_ingot_from_nuggets.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + "NNN", + "NNN", + "NNN" + ], + "key": { + "N": { + "item": "antarchy:uranium_nugget" + } + }, + "result": { + "id": "antarchy:uranium_ingot", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_ingot_from_raw_uranium_blasting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_ingot_from_raw_uranium_blasting.json new file mode 100644 index 00000000..a95c9764 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_ingot_from_raw_uranium_blasting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "ingredient": { + "item": "antarchy:raw_uranium" + }, + "result": { + "id": "antarchy:uranium_ingot" + }, + "experience": 2.0, + "cookingtime": 100 +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_ingot_from_raw_uranium_smelting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_ingot_from_raw_uranium_smelting.json new file mode 100644 index 00000000..dcf0d1da --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_ingot_from_raw_uranium_smelting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "ingredient": { + "item": "antarchy:raw_uranium" + }, + "result": { + "id": "antarchy:uranium_ingot" + }, + "experience": 2.0, + "cookingtime": 200 +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_ingots_from_block.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_ingots_from_block.json new file mode 100644 index 00000000..3b89b3c5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_ingots_from_block.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "antarchy:uranium_block" + } + ], + "result": { + "id": "antarchy:uranium_ingot", + "count": 9 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_nugget_from_raw_uranium_scrap_blasting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_nugget_from_raw_uranium_scrap_blasting.json new file mode 100644 index 00000000..a277c7a8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_nugget_from_raw_uranium_scrap_blasting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "ingredient": { + "item": "antarchy:raw_uranium_scrap" + }, + "result": { + "id": "antarchy:uranium_nugget" + }, + "experience": 2.0, + "cookingtime": 100 +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_nugget_from_raw_uranium_scrap_smelting.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_nugget_from_raw_uranium_scrap_smelting.json new file mode 100644 index 00000000..5f8d9a95 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_nugget_from_raw_uranium_scrap_smelting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "ingredient": { + "item": "antarchy:raw_uranium_scrap" + }, + "result": { + "id": "antarchy:uranium_nugget" + }, + "experience": 2.0, + "cookingtime": 200 +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_nuggets_from_ingot.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_nuggets_from_ingot.json new file mode 100644 index 00000000..b79bfb14 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_nuggets_from_ingot.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "antarchy:uranium_ingot" + } + ], + "result": { + "id": "antarchy:uranium_nugget", + "count": 9 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_trapdoor.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_trapdoor.json new file mode 100644 index 00000000..87f4a5e9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/uranium/uranium_trapdoor.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "antarchy:uranium_ingot" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "id": "antarchy:uranium_trapdoor" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/vortex_lens.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/vortex_lens.json new file mode 100644 index 00000000..dcc8bd5f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/vortex_lens.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "pattern": [ + "TTT", + "TVT", + "SRS" + ], + "key": { + "T": { + "item": "minecraft:tinted_glass" + }, + "V": { + "item": "antarchy:vortex_charge" + }, + "S": { + "item": "minecraft:stone" + }, + "R": { + "item": "minecraft:redstone" + } + }, + "result": { + "id": "antarchy:vortex_lens", + "count": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/white_banner_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/white_banner_from_truffalo_tuft.json new file mode 100644 index 00000000..63aa0d04 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/white_banner_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "###", + " S " + ], + "key": { + "#": { + "item": "antarchy:white_truffalo_tuft" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "id": "minecraft:white_banner" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/white_bed_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/white_bed_from_truffalo_tuft.json new file mode 100644 index 00000000..2fbd1d4c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/white_bed_from_truffalo_tuft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "PPP" + ], + "key": { + "#": { + "item": "antarchy:white_truffalo_tuft" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "result": { + "id": "minecraft:white_bed" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/worm_hook.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/worm_hook.json new file mode 100644 index 00000000..37814015 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/recipe/yellow_banner_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/yellow_banner_from_truffalo_tuft.json new file mode 100644 index 00000000..d312ab66 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/yellow_banner_from_truffalo_tuft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "###", + " S " + ], + "key": { + "#": { + "item": "antarchy:yellow_truffalo_tuft" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "id": "minecraft:yellow_banner" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/recipe/yellow_bed_from_truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/recipe/yellow_bed_from_truffalo_tuft.json new file mode 100644 index 00000000..6a8783ce --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/recipe/yellow_bed_from_truffalo_tuft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "decorations", + "pattern": [ + "###", + "PPP" + ], + "key": { + "#": { + "item": "antarchy:yellow_truffalo_tuft" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "result": { + "id": "minecraft:yellow_bed" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/basilisk_lair/basilisk_lair.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/basilisk_lair/basilisk_lair.nbt new file mode 100644 index 00000000..b0c247a3 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/basilisk_lair/basilisk_lair.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/fallen_kingdom_castle/fallen_kingdom_castle1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/fallen_kingdom_castle/fallen_kingdom_castle1.nbt new file mode 100644 index 00000000..1670c567 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/fallen_kingdom_castle/fallen_kingdom_castle1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/fallen_kingdom_castle/fallen_kingdom_castle2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/fallen_kingdom_castle/fallen_kingdom_castle2.nbt new file mode 100644 index 00000000..868098a9 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/fallen_kingdom_castle/fallen_kingdom_castle2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/fallen_kingdom_castle/fallen_kingdom_castle3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/fallen_kingdom_castle/fallen_kingdom_castle3.nbt new file mode 100644 index 00000000..b40629ac Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/fallen_kingdom_castle/fallen_kingdom_castle3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree1.nbt similarity index 100% rename from common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree1.nbt rename to common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree1.nbt diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree2.nbt similarity index 100% rename from common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree2.nbt rename to common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree2.nbt diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree3.nbt similarity index 100% rename from common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree3.nbt rename to common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree3.nbt diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree4.nbt similarity index 100% rename from common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree4.nbt rename to common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree4.nbt diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree_bottom.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree_bottom.nbt similarity index 100% rename from common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree_bottom.nbt rename to common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree/kings_tree_bottom.nbt diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m1.nbt new file mode 100644 index 00000000..a8b9fc2d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m2.nbt new file mode 100644 index 00000000..7fdcf804 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m3.nbt new file mode 100644 index 00000000..8f78e875 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m4.nbt new file mode 100644 index 00000000..be838b89 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m5.nbt new file mode 100644 index 00000000..d6270df3 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p0.nbt new file mode 100644 index 00000000..f6f16685 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p1.nbt new file mode 100644 index 00000000..73c32e69 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m2.nbt new file mode 100644 index 00000000..0e57eb8e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m3.nbt new file mode 100644 index 00000000..738686db Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m4.nbt new file mode 100644 index 00000000..72a55ef0 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_m2.nbt new file mode 100644 index 00000000..9b150b18 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_m3.nbt new file mode 100644 index 00000000..3dd1a084 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_p14.nbt new file mode 100644 index 00000000..2ef1bb7a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m1.nbt new file mode 100644 index 00000000..4c825d04 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m10.nbt new file mode 100644 index 00000000..05921807 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m11.nbt new file mode 100644 index 00000000..aadcab8a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m12.nbt new file mode 100644 index 00000000..d2d80f7f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m13.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m13.nbt new file mode 100644 index 00000000..61887500 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m13.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m14.nbt new file mode 100644 index 00000000..59b21a1f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m2.nbt new file mode 100644 index 00000000..9cd896cd Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m3.nbt new file mode 100644 index 00000000..8bce10b2 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m4.nbt new file mode 100644 index 00000000..af97de2d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m5.nbt new file mode 100644 index 00000000..f0a75732 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m6.nbt new file mode 100644 index 00000000..83e7a294 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m7.nbt new file mode 100644 index 00000000..82da7f0c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m8.nbt new file mode 100644 index 00000000..a5cc093d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m9.nbt new file mode 100644 index 00000000..99cd7d0c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p0.nbt new file mode 100644 index 00000000..30f56d22 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p1.nbt new file mode 100644 index 00000000..1814a9e2 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p10.nbt new file mode 100644 index 00000000..a482993d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p11.nbt new file mode 100644 index 00000000..783244e7 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p2.nbt new file mode 100644 index 00000000..5c1a6ebd Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p3.nbt new file mode 100644 index 00000000..e7f298d5 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p4.nbt new file mode 100644 index 00000000..dd00785d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p5.nbt new file mode 100644 index 00000000..76c498e7 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p6.nbt new file mode 100644 index 00000000..7e21bca0 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p7.nbt new file mode 100644 index 00000000..04fed1d1 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p8.nbt new file mode 100644 index 00000000..f30a50ef Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p9.nbt new file mode 100644 index 00000000..d54b22c1 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m1.nbt new file mode 100644 index 00000000..8d2c933a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m10.nbt new file mode 100644 index 00000000..4b144acd Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m11.nbt new file mode 100644 index 00000000..81a19917 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m12.nbt new file mode 100644 index 00000000..58597c85 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m13.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m13.nbt new file mode 100644 index 00000000..2b05bceb Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m13.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m2.nbt new file mode 100644 index 00000000..4cd16d1f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m3.nbt new file mode 100644 index 00000000..aa83392b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m4.nbt new file mode 100644 index 00000000..e0853aba Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m5.nbt new file mode 100644 index 00000000..d3dbb78a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m6.nbt new file mode 100644 index 00000000..72be1008 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m7.nbt new file mode 100644 index 00000000..1e9def73 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m8.nbt new file mode 100644 index 00000000..90c6783d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m9.nbt new file mode 100644 index 00000000..937b8d04 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p0.nbt new file mode 100644 index 00000000..989f85c8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p1.nbt new file mode 100644 index 00000000..6cbeb913 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p10.nbt new file mode 100644 index 00000000..91331990 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p11.nbt new file mode 100644 index 00000000..e0632b03 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p2.nbt new file mode 100644 index 00000000..9303cdc9 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p3.nbt new file mode 100644 index 00000000..544b0a00 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p4.nbt new file mode 100644 index 00000000..d60da68a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p5.nbt new file mode 100644 index 00000000..f7b72a68 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p6.nbt new file mode 100644 index 00000000..1f139e4d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p7.nbt new file mode 100644 index 00000000..e0cd1ab8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p8.nbt new file mode 100644 index 00000000..bb59af25 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p9.nbt new file mode 100644 index 00000000..7f2a8684 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m1.nbt new file mode 100644 index 00000000..c81bfc9f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m10.nbt new file mode 100644 index 00000000..5b810c3e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m11.nbt new file mode 100644 index 00000000..e694b78c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m12.nbt new file mode 100644 index 00000000..2accb997 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m13.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m13.nbt new file mode 100644 index 00000000..4a36c549 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m13.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m2.nbt new file mode 100644 index 00000000..a86e6f5e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m3.nbt new file mode 100644 index 00000000..e1e840c8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m4.nbt new file mode 100644 index 00000000..2f2caddc Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m5.nbt new file mode 100644 index 00000000..a183604e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m6.nbt new file mode 100644 index 00000000..350ee217 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m7.nbt new file mode 100644 index 00000000..ea129e59 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m8.nbt new file mode 100644 index 00000000..d6b8b717 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m9.nbt new file mode 100644 index 00000000..35ddf28a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p0.nbt new file mode 100644 index 00000000..04348da6 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p1.nbt new file mode 100644 index 00000000..caa16db0 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p10.nbt new file mode 100644 index 00000000..1fef5e67 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p11.nbt new file mode 100644 index 00000000..90579b17 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p12.nbt new file mode 100644 index 00000000..15a3c9d9 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p2.nbt new file mode 100644 index 00000000..730e80da Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p3.nbt new file mode 100644 index 00000000..cc642193 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p4.nbt new file mode 100644 index 00000000..2307e392 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p5.nbt new file mode 100644 index 00000000..577a895a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p6.nbt new file mode 100644 index 00000000..bb1e2df9 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p7.nbt new file mode 100644 index 00000000..0c9e4f43 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p8.nbt new file mode 100644 index 00000000..c7647352 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p9.nbt new file mode 100644 index 00000000..1fa2ffa2 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m1.nbt new file mode 100644 index 00000000..8086403c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m10.nbt new file mode 100644 index 00000000..321a76c2 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m11.nbt new file mode 100644 index 00000000..66b4396c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m12.nbt new file mode 100644 index 00000000..361d2055 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m13.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m13.nbt new file mode 100644 index 00000000..db6aaec5 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m13.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m2.nbt new file mode 100644 index 00000000..a23ea5a0 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m3.nbt new file mode 100644 index 00000000..c6ee76fd Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m4.nbt new file mode 100644 index 00000000..d1d27cc5 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m5.nbt new file mode 100644 index 00000000..30d22aa3 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m6.nbt new file mode 100644 index 00000000..0ccb4a1a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m7.nbt new file mode 100644 index 00000000..acdad21a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m8.nbt new file mode 100644 index 00000000..d6728149 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m9.nbt new file mode 100644 index 00000000..1248ee35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p0.nbt new file mode 100644 index 00000000..c98f06ec Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p1.nbt new file mode 100644 index 00000000..34b8ff85 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p10.nbt new file mode 100644 index 00000000..a543de10 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p11.nbt new file mode 100644 index 00000000..4e66ed0b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p12.nbt new file mode 100644 index 00000000..bf164301 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p2.nbt new file mode 100644 index 00000000..c6630e73 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p3.nbt new file mode 100644 index 00000000..7cc906e6 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p4.nbt new file mode 100644 index 00000000..79e3a876 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p5.nbt new file mode 100644 index 00000000..82fbcb7e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p6.nbt new file mode 100644 index 00000000..fef72688 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p7.nbt new file mode 100644 index 00000000..f2f9f691 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p8.nbt new file mode 100644 index 00000000..9532565c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p9.nbt new file mode 100644 index 00000000..94a31d26 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m1.nbt new file mode 100644 index 00000000..9d5d3d53 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m10.nbt new file mode 100644 index 00000000..41d5ee33 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m11.nbt new file mode 100644 index 00000000..077b2710 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m12.nbt new file mode 100644 index 00000000..d90fbf84 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m13.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m13.nbt new file mode 100644 index 00000000..875de447 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m13.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m2.nbt new file mode 100644 index 00000000..08866ac1 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m3.nbt new file mode 100644 index 00000000..19cd78c1 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m4.nbt new file mode 100644 index 00000000..448a281d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m5.nbt new file mode 100644 index 00000000..27882086 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m6.nbt new file mode 100644 index 00000000..31b5c69e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m7.nbt new file mode 100644 index 00000000..692b6ad8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m8.nbt new file mode 100644 index 00000000..efb0b3b6 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m9.nbt new file mode 100644 index 00000000..d0aab4c5 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p0.nbt new file mode 100644 index 00000000..5b9a333e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p1.nbt new file mode 100644 index 00000000..c0da43b4 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p10.nbt new file mode 100644 index 00000000..f74857ab Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p11.nbt new file mode 100644 index 00000000..cab9e0f5 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p2.nbt new file mode 100644 index 00000000..53392088 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p3.nbt new file mode 100644 index 00000000..320abd66 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p4.nbt new file mode 100644 index 00000000..653fd149 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p5.nbt new file mode 100644 index 00000000..4fc85ed9 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p6.nbt new file mode 100644 index 00000000..0212420a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p7.nbt new file mode 100644 index 00000000..5a3dd9bc Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p8.nbt new file mode 100644 index 00000000..e0c8267d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p9.nbt new file mode 100644 index 00000000..72943351 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m1.nbt new file mode 100644 index 00000000..5f92da5b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m10.nbt new file mode 100644 index 00000000..115a0ed4 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m11.nbt new file mode 100644 index 00000000..b816c66a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m12.nbt new file mode 100644 index 00000000..8da549cc Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m2.nbt new file mode 100644 index 00000000..3d9265fd Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m3.nbt new file mode 100644 index 00000000..c1c79e99 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m4.nbt new file mode 100644 index 00000000..b30fbfa0 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m5.nbt new file mode 100644 index 00000000..755fec02 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m6.nbt new file mode 100644 index 00000000..8eed1fb2 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m7.nbt new file mode 100644 index 00000000..e3f1f85d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m8.nbt new file mode 100644 index 00000000..900848f6 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m9.nbt new file mode 100644 index 00000000..024381a1 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p0.nbt new file mode 100644 index 00000000..522d6b2a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p1.nbt new file mode 100644 index 00000000..36b1410b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p10.nbt new file mode 100644 index 00000000..8b115024 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p11.nbt new file mode 100644 index 00000000..4ec19990 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p2.nbt new file mode 100644 index 00000000..a86969f5 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p3.nbt new file mode 100644 index 00000000..d3a4ccab Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p4.nbt new file mode 100644 index 00000000..af3b4160 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p5.nbt new file mode 100644 index 00000000..c0dc01cc Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p6.nbt new file mode 100644 index 00000000..b85c3bb2 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p7.nbt new file mode 100644 index 00000000..7f45119d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p8.nbt new file mode 100644 index 00000000..460b09ca Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p9.nbt new file mode 100644 index 00000000..35182d31 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m1.nbt new file mode 100644 index 00000000..ad57d66a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m10.nbt new file mode 100644 index 00000000..3e546770 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m11.nbt new file mode 100644 index 00000000..03de2473 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m12.nbt new file mode 100644 index 00000000..050c90ff Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m2.nbt new file mode 100644 index 00000000..3db90175 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m3.nbt new file mode 100644 index 00000000..1262db96 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m4.nbt new file mode 100644 index 00000000..b8c4f6dc Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m5.nbt new file mode 100644 index 00000000..3cf16abb Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m6.nbt new file mode 100644 index 00000000..87ca97b9 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m7.nbt new file mode 100644 index 00000000..f218c5f4 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m8.nbt new file mode 100644 index 00000000..24b229a7 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m9.nbt new file mode 100644 index 00000000..fb062037 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p0.nbt new file mode 100644 index 00000000..2dab9e8f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p1.nbt new file mode 100644 index 00000000..85b9d6f7 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p10.nbt new file mode 100644 index 00000000..5d89f84c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p11.nbt new file mode 100644 index 00000000..d85a5aab Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p2.nbt new file mode 100644 index 00000000..2d41fc5f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p3.nbt new file mode 100644 index 00000000..d408edb0 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p4.nbt new file mode 100644 index 00000000..415b629a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p5.nbt new file mode 100644 index 00000000..9895e3ae Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p6.nbt new file mode 100644 index 00000000..14337856 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p7.nbt new file mode 100644 index 00000000..389bac01 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p8.nbt new file mode 100644 index 00000000..cbc3a06c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p9.nbt new file mode 100644 index 00000000..e775a115 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m1.nbt new file mode 100644 index 00000000..9b2ab7a0 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m10.nbt new file mode 100644 index 00000000..94a507ae Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m11.nbt new file mode 100644 index 00000000..dd7363d0 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m2.nbt new file mode 100644 index 00000000..c9bcb9f8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m3.nbt new file mode 100644 index 00000000..71e67918 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m4.nbt new file mode 100644 index 00000000..ad084f41 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m5.nbt new file mode 100644 index 00000000..755b1bc8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m6.nbt new file mode 100644 index 00000000..a0400c29 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m7.nbt new file mode 100644 index 00000000..f3d41d77 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m8.nbt new file mode 100644 index 00000000..fde60ed5 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m9.nbt new file mode 100644 index 00000000..681febdf Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p0.nbt new file mode 100644 index 00000000..a784d036 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p1.nbt new file mode 100644 index 00000000..edef91f2 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p10.nbt new file mode 100644 index 00000000..23334ce2 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p11.nbt new file mode 100644 index 00000000..02c4db07 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p2.nbt new file mode 100644 index 00000000..7754f29f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p3.nbt new file mode 100644 index 00000000..1d6e3144 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p4.nbt new file mode 100644 index 00000000..b1220eb1 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p5.nbt new file mode 100644 index 00000000..968ee63e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p6.nbt new file mode 100644 index 00000000..455606f9 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p7.nbt new file mode 100644 index 00000000..51880fa4 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p8.nbt new file mode 100644 index 00000000..b13da1e5 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p9.nbt new file mode 100644 index 00000000..2f72c022 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m1.nbt new file mode 100644 index 00000000..f5f98380 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m10.nbt new file mode 100644 index 00000000..b985e94f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m11.nbt new file mode 100644 index 00000000..8e160c15 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m2.nbt new file mode 100644 index 00000000..e6f6d132 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m3.nbt new file mode 100644 index 00000000..7e718ad2 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m4.nbt new file mode 100644 index 00000000..8d8dcde5 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m5.nbt new file mode 100644 index 00000000..363a6421 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m6.nbt new file mode 100644 index 00000000..17bcb944 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m7.nbt new file mode 100644 index 00000000..d1244bbf Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m8.nbt new file mode 100644 index 00000000..285e9cb8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m9.nbt new file mode 100644 index 00000000..891fb8f1 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p0.nbt new file mode 100644 index 00000000..26c4c166 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p1.nbt new file mode 100644 index 00000000..acb6e9ba Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p10.nbt new file mode 100644 index 00000000..56603812 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p11.nbt new file mode 100644 index 00000000..814108f4 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p2.nbt new file mode 100644 index 00000000..738ca0fb Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p3.nbt new file mode 100644 index 00000000..28bc6367 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p4.nbt new file mode 100644 index 00000000..4910857b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p5.nbt new file mode 100644 index 00000000..a47e4ce7 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p6.nbt new file mode 100644 index 00000000..1d61daa1 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p7.nbt new file mode 100644 index 00000000..6818276d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p8.nbt new file mode 100644 index 00000000..4f85ba1e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p9.nbt new file mode 100644 index 00000000..bcd5fd70 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m1.nbt new file mode 100644 index 00000000..e5998509 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m10.nbt new file mode 100644 index 00000000..18455c1d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m11.nbt new file mode 100644 index 00000000..1b3efc1c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m12.nbt new file mode 100644 index 00000000..52c9e9dc Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m13.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m13.nbt new file mode 100644 index 00000000..68c97a90 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m13.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m14.nbt new file mode 100644 index 00000000..07fe3808 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m2.nbt new file mode 100644 index 00000000..b81bb055 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m3.nbt new file mode 100644 index 00000000..c239a924 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m4.nbt new file mode 100644 index 00000000..1a74c893 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m5.nbt new file mode 100644 index 00000000..93d4529c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m6.nbt new file mode 100644 index 00000000..ef4f163b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m7.nbt new file mode 100644 index 00000000..c75be083 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m8.nbt new file mode 100644 index 00000000..1049620b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m9.nbt new file mode 100644 index 00000000..433d5ed5 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p0.nbt new file mode 100644 index 00000000..7460d207 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p1.nbt new file mode 100644 index 00000000..d88338cd Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p10.nbt new file mode 100644 index 00000000..3c736091 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p11.nbt new file mode 100644 index 00000000..332abfaa Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p12.nbt new file mode 100644 index 00000000..07db7f83 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p2.nbt new file mode 100644 index 00000000..8aeab647 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p3.nbt new file mode 100644 index 00000000..cd6a9323 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p4.nbt new file mode 100644 index 00000000..51af32db Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p5.nbt new file mode 100644 index 00000000..61f6d7c1 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p6.nbt new file mode 100644 index 00000000..268bd3fb Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p7.nbt new file mode 100644 index 00000000..9203d748 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p8.nbt new file mode 100644 index 00000000..9077f920 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p9.nbt new file mode 100644 index 00000000..29cb5464 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m1.nbt new file mode 100644 index 00000000..8080a9f1 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m2.nbt new file mode 100644 index 00000000..79ec26b3 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m3.nbt new file mode 100644 index 00000000..20763ea7 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m4.nbt new file mode 100644 index 00000000..640a632d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m5.nbt new file mode 100644 index 00000000..7aa56436 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_p0.nbt new file mode 100644 index 00000000..bed992d1 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p11_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p11_m1.nbt new file mode 100644 index 00000000..41df6d90 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p11_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m1.nbt new file mode 100644 index 00000000..6bfe9340 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m10.nbt new file mode 100644 index 00000000..404feadb Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m11.nbt new file mode 100644 index 00000000..5445e78a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m12.nbt new file mode 100644 index 00000000..6c0d2720 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m13.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m13.nbt new file mode 100644 index 00000000..027f1f8d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m13.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m2.nbt new file mode 100644 index 00000000..56c73413 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m3.nbt new file mode 100644 index 00000000..2ef4b35c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m4.nbt new file mode 100644 index 00000000..6ab4187f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m5.nbt new file mode 100644 index 00000000..6d9269ad Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m6.nbt new file mode 100644 index 00000000..03dffe2a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m7.nbt new file mode 100644 index 00000000..3289e8d0 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m8.nbt new file mode 100644 index 00000000..e6d185f1 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m9.nbt new file mode 100644 index 00000000..dd0a5950 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p0.nbt new file mode 100644 index 00000000..cb3e6ccb Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p1.nbt new file mode 100644 index 00000000..6e6d3e81 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p10.nbt new file mode 100644 index 00000000..e6aa9a3f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p11.nbt new file mode 100644 index 00000000..71d2eb55 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p12.nbt new file mode 100644 index 00000000..4dd7d1b5 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p13.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p13.nbt new file mode 100644 index 00000000..6e0ce2b8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p13.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p2.nbt new file mode 100644 index 00000000..9cb8ca5c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p3.nbt new file mode 100644 index 00000000..d8aff916 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p4.nbt new file mode 100644 index 00000000..907a6676 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p5.nbt new file mode 100644 index 00000000..7aa63c18 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p6.nbt new file mode 100644 index 00000000..879e7cf6 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p7.nbt new file mode 100644 index 00000000..b2c9ff99 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p8.nbt new file mode 100644 index 00000000..10bf40ed Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p9.nbt new file mode 100644 index 00000000..4a1d476a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m1.nbt new file mode 100644 index 00000000..402b82a1 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m10.nbt new file mode 100644 index 00000000..c53b6597 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m11.nbt new file mode 100644 index 00000000..0c21ab63 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m12.nbt new file mode 100644 index 00000000..d278121b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m13.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m13.nbt new file mode 100644 index 00000000..94c0f443 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m13.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m14.nbt new file mode 100644 index 00000000..3f566e18 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m2.nbt new file mode 100644 index 00000000..0bee3cc8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m3.nbt new file mode 100644 index 00000000..69b724ce Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m4.nbt new file mode 100644 index 00000000..22c827f8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m5.nbt new file mode 100644 index 00000000..1a8d917e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m6.nbt new file mode 100644 index 00000000..afa803ef Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m7.nbt new file mode 100644 index 00000000..37dbf597 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m8.nbt new file mode 100644 index 00000000..99517865 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m9.nbt new file mode 100644 index 00000000..fed0f20d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p0.nbt new file mode 100644 index 00000000..229ed1d6 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p1.nbt new file mode 100644 index 00000000..6214f51e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p10.nbt new file mode 100644 index 00000000..dcde4f4b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p11.nbt new file mode 100644 index 00000000..6476490e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p12.nbt new file mode 100644 index 00000000..8b215517 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p13.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p13.nbt new file mode 100644 index 00000000..d63e41b6 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p13.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p2.nbt new file mode 100644 index 00000000..e1a4de01 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p3.nbt new file mode 100644 index 00000000..75cf9a33 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p4.nbt new file mode 100644 index 00000000..eea02379 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p5.nbt new file mode 100644 index 00000000..2b1a2af6 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p6.nbt new file mode 100644 index 00000000..e67550d1 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p7.nbt new file mode 100644 index 00000000..d0e9ed51 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p8.nbt new file mode 100644 index 00000000..88c21479 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p9.nbt new file mode 100644 index 00000000..02d0597d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m1.nbt new file mode 100644 index 00000000..3befd74b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m10.nbt new file mode 100644 index 00000000..f9e0b8b8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m11.nbt new file mode 100644 index 00000000..0ca3a235 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m12.nbt new file mode 100644 index 00000000..a5bcf5a3 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m2.nbt new file mode 100644 index 00000000..53a333c7 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m3.nbt new file mode 100644 index 00000000..9f9ba11d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m4.nbt new file mode 100644 index 00000000..4b8885e2 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m5.nbt new file mode 100644 index 00000000..2cb3bfe6 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m6.nbt new file mode 100644 index 00000000..48c68fcd Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m7.nbt new file mode 100644 index 00000000..7bb57877 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m8.nbt new file mode 100644 index 00000000..eb45507e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m9.nbt new file mode 100644 index 00000000..4e309d0f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p0.nbt new file mode 100644 index 00000000..c60eef4c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p1.nbt new file mode 100644 index 00000000..0ff3f33e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p10.nbt new file mode 100644 index 00000000..4fdb765c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p11.nbt new file mode 100644 index 00000000..adf2e457 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p12.nbt new file mode 100644 index 00000000..6cdac1b3 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p13.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p13.nbt new file mode 100644 index 00000000..b0a9d71e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p13.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p2.nbt new file mode 100644 index 00000000..4b14a0de Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p3.nbt new file mode 100644 index 00000000..0313f5f8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p4.nbt new file mode 100644 index 00000000..450fd7c2 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p5.nbt new file mode 100644 index 00000000..d9b5ba7f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p6.nbt new file mode 100644 index 00000000..9c614794 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p7.nbt new file mode 100644 index 00000000..701c80e1 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p8.nbt new file mode 100644 index 00000000..55b608b6 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p9.nbt new file mode 100644 index 00000000..329940d6 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m1.nbt new file mode 100644 index 00000000..5e018672 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m10.nbt new file mode 100644 index 00000000..7538c50f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m11.nbt new file mode 100644 index 00000000..8c729645 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m12.nbt new file mode 100644 index 00000000..b5a22dff Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m2.nbt new file mode 100644 index 00000000..cfd2cca6 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m3.nbt new file mode 100644 index 00000000..e154b41a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m4.nbt new file mode 100644 index 00000000..3d03b2d6 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m5.nbt new file mode 100644 index 00000000..35b6ac0e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m6.nbt new file mode 100644 index 00000000..2b242d78 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m7.nbt new file mode 100644 index 00000000..07dd3865 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m8.nbt new file mode 100644 index 00000000..811edd17 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m9.nbt new file mode 100644 index 00000000..ffd5a7c8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p0.nbt new file mode 100644 index 00000000..74401973 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p1.nbt new file mode 100644 index 00000000..9c72a350 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p10.nbt new file mode 100644 index 00000000..79610387 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p11.nbt new file mode 100644 index 00000000..ee0a4427 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p12.nbt new file mode 100644 index 00000000..97caff0e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p13.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p13.nbt new file mode 100644 index 00000000..073052ae Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p13.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p14.nbt new file mode 100644 index 00000000..bba066ee Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p2.nbt new file mode 100644 index 00000000..87e8c7e5 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p3.nbt new file mode 100644 index 00000000..c606a43c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p4.nbt new file mode 100644 index 00000000..8c893022 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p5.nbt new file mode 100644 index 00000000..5b1dec37 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p6.nbt new file mode 100644 index 00000000..a4034055 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p7.nbt new file mode 100644 index 00000000..ce51cfee Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p8.nbt new file mode 100644 index 00000000..4f2c711b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p9.nbt new file mode 100644 index 00000000..e5261c93 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m1.nbt new file mode 100644 index 00000000..53a34e4c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m10.nbt new file mode 100644 index 00000000..48c6beae Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m11.nbt new file mode 100644 index 00000000..9001e260 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m2.nbt new file mode 100644 index 00000000..32fb07f5 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m3.nbt new file mode 100644 index 00000000..22a9de63 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m4.nbt new file mode 100644 index 00000000..612777fe Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m5.nbt new file mode 100644 index 00000000..0a64d1ec Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m6.nbt new file mode 100644 index 00000000..24103baf Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m7.nbt new file mode 100644 index 00000000..d4ef54a5 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m8.nbt new file mode 100644 index 00000000..25031873 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m9.nbt new file mode 100644 index 00000000..1e73c16f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p0.nbt new file mode 100644 index 00000000..0bd7227f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p1.nbt new file mode 100644 index 00000000..53e2f455 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p10.nbt new file mode 100644 index 00000000..874a7534 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p11.nbt new file mode 100644 index 00000000..ea561d70 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p12.nbt new file mode 100644 index 00000000..4d3e4482 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p13.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p13.nbt new file mode 100644 index 00000000..7adc5310 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p13.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p2.nbt new file mode 100644 index 00000000..efada274 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p3.nbt new file mode 100644 index 00000000..358ad963 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p4.nbt new file mode 100644 index 00000000..985dbb65 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p5.nbt new file mode 100644 index 00000000..6fc1ef75 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p6.nbt new file mode 100644 index 00000000..6a12c4ba Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p7.nbt new file mode 100644 index 00000000..ac37c18c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p8.nbt new file mode 100644 index 00000000..abc6a472 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p9.nbt new file mode 100644 index 00000000..6a93a7df Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m1.nbt new file mode 100644 index 00000000..8ebc0b8f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m10.nbt new file mode 100644 index 00000000..0fd8c418 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m2.nbt new file mode 100644 index 00000000..63adadf0 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m3.nbt new file mode 100644 index 00000000..b647ccdf Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m4.nbt new file mode 100644 index 00000000..4c363f8e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m5.nbt new file mode 100644 index 00000000..46bdfc3e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m6.nbt new file mode 100644 index 00000000..1f0a4e71 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m7.nbt new file mode 100644 index 00000000..f4237dc8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m8.nbt new file mode 100644 index 00000000..3faa5d43 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m9.nbt new file mode 100644 index 00000000..4d6c31de Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p0.nbt new file mode 100644 index 00000000..1bb8d63d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p1.nbt new file mode 100644 index 00000000..2bce3847 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p10.nbt new file mode 100644 index 00000000..cd7fe17a Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p11.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p11.nbt new file mode 100644 index 00000000..544f3406 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p11.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p12.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p12.nbt new file mode 100644 index 00000000..b68c1da8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p12.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p2.nbt new file mode 100644 index 00000000..8eb7461b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p3.nbt new file mode 100644 index 00000000..b6f770a8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p4.nbt new file mode 100644 index 00000000..f436cec0 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p5.nbt new file mode 100644 index 00000000..b417ff48 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p6.nbt new file mode 100644 index 00000000..a59f15cf Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p7.nbt new file mode 100644 index 00000000..50359a28 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p8.nbt new file mode 100644 index 00000000..ef7ae843 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p9.nbt new file mode 100644 index 00000000..9eb7319f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m1.nbt new file mode 100644 index 00000000..82695ce2 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m10.nbt new file mode 100644 index 00000000..9967cf3b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m2.nbt new file mode 100644 index 00000000..b6022f5b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m3.nbt new file mode 100644 index 00000000..e667ec00 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m4.nbt new file mode 100644 index 00000000..cc1b7324 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m5.nbt new file mode 100644 index 00000000..55fd9e3b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m6.nbt new file mode 100644 index 00000000..637f9696 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m7.nbt new file mode 100644 index 00000000..09162ef8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m8.nbt new file mode 100644 index 00000000..3cf62caf Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m9.nbt new file mode 100644 index 00000000..653cc630 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p0.nbt new file mode 100644 index 00000000..4eb4d147 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p1.nbt new file mode 100644 index 00000000..48433e0b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p10.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p10.nbt new file mode 100644 index 00000000..c0f727a5 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p10.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p2.nbt new file mode 100644 index 00000000..7edf0aa5 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p3.nbt new file mode 100644 index 00000000..a3f210d2 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p4.nbt new file mode 100644 index 00000000..864d371b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p5.nbt new file mode 100644 index 00000000..ffcb7497 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p6.nbt new file mode 100644 index 00000000..01cce988 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p7.nbt new file mode 100644 index 00000000..4a5141d0 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p8.nbt new file mode 100644 index 00000000..c473c5e8 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p9.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p9.nbt new file mode 100644 index 00000000..2a36b829 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p9.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m1.nbt new file mode 100644 index 00000000..4d5588ae Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m2.nbt new file mode 100644 index 00000000..020243cf Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m3.nbt new file mode 100644 index 00000000..8723b0f9 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m4.nbt new file mode 100644 index 00000000..82fc2d17 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m5.nbt new file mode 100644 index 00000000..80a1cb66 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m6.nbt new file mode 100644 index 00000000..aee28190 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m7.nbt new file mode 100644 index 00000000..c9433c23 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m8.nbt new file mode 100644 index 00000000..89a32e1c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p0.nbt new file mode 100644 index 00000000..0f04d095 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p1.nbt new file mode 100644 index 00000000..cc1b35db Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p14.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p14.nbt new file mode 100644 index 00000000..bcd2f22b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p14.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p2.nbt new file mode 100644 index 00000000..d1de3f6e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p3.nbt new file mode 100644 index 00000000..58a93cda Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p4.nbt new file mode 100644 index 00000000..7df92c0c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p5.nbt new file mode 100644 index 00000000..df3b6be6 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p6.nbt new file mode 100644 index 00000000..6ea6dddc Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p7.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p7.nbt new file mode 100644 index 00000000..b9b92d73 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p7.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p8.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p8.nbt new file mode 100644 index 00000000..64e3f048 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p8.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m1.nbt new file mode 100644 index 00000000..e9cc8c2b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m2.nbt new file mode 100644 index 00000000..0957b55c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m3.nbt new file mode 100644 index 00000000..e526562e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m4.nbt new file mode 100644 index 00000000..9960dded Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m5.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m5.nbt new file mode 100644 index 00000000..2b5df36b Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m5.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m6.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m6.nbt new file mode 100644 index 00000000..d81d9b03 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m6.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p0.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p0.nbt new file mode 100644 index 00000000..5a4f467c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p0.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p2.nbt new file mode 100644 index 00000000..d708c521 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p3.nbt new file mode 100644 index 00000000..bd4274d2 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p4.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p4.nbt new file mode 100644 index 00000000..3e2deb1c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p4.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/ruined_arena/ruined_arena.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/ruined_arena/ruined_arena.nbt new file mode 100644 index 00000000..fefb1778 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/ruined_arena/ruined_arena.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/ruined_prison/ruined_prison.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/ruined_prison/ruined_prison.nbt new file mode 100644 index 00000000..d53488e6 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/ruined_prison/ruined_prison.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/sign/sign.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/sign/sign.nbt new file mode 100644 index 00000000..a61633bf Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/sign/sign.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/stampys_house/stampys_house.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/stampys_house/stampys_house.nbt new file mode 100644 index 00000000..dcb7e63d Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/stampys_house/stampys_house.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/stampys_house/stampys_house_bottom1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/stampys_house/stampys_house_bottom1.nbt new file mode 100644 index 00000000..80d3b7ba Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/stampys_house/stampys_house_bottom1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/stampys_house/stampys_house_bottom2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/stampys_house/stampys_house_bottom2.nbt new file mode 100644 index 00000000..aa9db842 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/stampys_house/stampys_house_bottom2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/temple_of_technoblade/temple_of_technoblade1.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/temple_of_technoblade/temple_of_technoblade1.nbt new file mode 100644 index 00000000..1304268e Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/temple_of_technoblade/temple_of_technoblade1.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/temple_of_technoblade/temple_of_technoblade2.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/temple_of_technoblade/temple_of_technoblade2.nbt new file mode 100644 index 00000000..cf52b35c Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/temple_of_technoblade/temple_of_technoblade2.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/temple_of_technoblade/temple_of_technoblade3.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/temple_of_technoblade/temple_of_technoblade3.nbt new file mode 100644 index 00000000..d9aacfb7 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/temple_of_technoblade/temple_of_technoblade3.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/toreterror_arena/toreterror_arena.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/toreterror_arena/toreterror_arena.nbt new file mode 100644 index 00000000..2a2e871f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/toreterror_arena/toreterror_arena.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/toreterror_arena/toreterror_arena_bottom.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/toreterror_arena/toreterror_arena_bottom.nbt new file mode 100644 index 00000000..c02c9e2f Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/toreterror_arena/toreterror_arena_bottom.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/trayaurus_lab/trayaurus_lab.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/trayaurus_lab/trayaurus_lab.nbt new file mode 100644 index 00000000..46d6f375 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/trayaurus_lab/trayaurus_lab.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/structure/trayaurus_lab/trayaurus_lab_bottom.nbt b/common-1.20.1/src/main/resources/data/antarchy/structure/trayaurus_lab/trayaurus_lab_bottom.nbt new file mode 100644 index 00000000..e30dedf0 Binary files /dev/null and b/common-1.20.1/src/main/resources/data/antarchy/structure/trayaurus_lab/trayaurus_lab_bottom.nbt differ diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/amber_moss_replaceable.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/amber_moss_replaceable.json new file mode 100644 index 00000000..7c1185df --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/amber_moss_replaceable.json @@ -0,0 +1,8 @@ +{ + "values": [ + "#minecraft:moss_replaceable", + "antarchy:myrmite", + "antarchy:broodstone", + "antarchy:amber_moss_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/antimetal_inversion_blocks.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/antimetal_inversion_blocks.json new file mode 100644 index 00000000..9ae6d24b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/antimetal_inversion_blocks.json @@ -0,0 +1,10 @@ +{ + "values": [ + "antarchy:antimetal", + "antarchy:polished_antimetal", + "antarchy:antimetal_stairs", + "antarchy:antimetal_slab", + "antarchy:polished_antimetal_stairs", + "antarchy:polished_antimetal_slab" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/biowart_replaceable.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/biowart_replaceable.json new file mode 100644 index 00000000..883c1482 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/biowart_replaceable.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:biomite", + "antarchy:biomite_turf" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/biowart_tendrils_plantable.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/biowart_tendrils_plantable.json new file mode 100644 index 00000000..3629673d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/biowart_tendrils_plantable.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:biomite_turf" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/bluestone_components.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/bluestone_components.json new file mode 100644 index 00000000..88779158 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/bluestone_components.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:bluestone_wire", + "antarchy:bluestone_block", + "antarchy:bluestone_repeater", + "antarchy:bluestone_comparator", + "antarchy:bluestone_torch" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/bluestone_connectable.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/bluestone_connectable.json new file mode 100644 index 00000000..88779158 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/bluestone_connectable.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:bluestone_wire", + "antarchy:bluestone_block", + "antarchy:bluestone_repeater", + "antarchy:bluestone_comparator", + "antarchy:bluestone_torch" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/blush_moss_replaceable.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/blush_moss_replaceable.json new file mode 100644 index 00000000..9ccd3add --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/blush_moss_replaceable.json @@ -0,0 +1,8 @@ +{ + "values": [ + "#minecraft:moss_replaceable", + "antarchy:nyxite", + "minecraft:blackstone", + "antarchy:blush_moss_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/caterpillar_foods.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/caterpillar_foods.json new file mode 100644 index 00000000..02f823bf --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/caterpillar_foods.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:orange_milkweed", + "antarchy:pink_milkweed" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/cavaryn_portal_frames.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/cavaryn_portal_frames.json new file mode 100644 index 00000000..2976b86e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/cavaryn_portal_frames.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:myrmite" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/coral_blocks.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/coral_blocks.json new file mode 100644 index 00000000..731c04f2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/coral_blocks.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:star_coral_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/coral_plants.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/coral_plants.json new file mode 100644 index 00000000..964b717d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/coral_plants.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:star_coral" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/corals.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/corals.json new file mode 100644 index 00000000..d900f62f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/corals.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:star_coral", + "antarchy:star_coral_fan" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/cornea_stalk_nyxite.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/cornea_stalk_nyxite.json new file mode 100644 index 00000000..deca3ec2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/cornea_stalk_nyxite.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:nyxite", + "antarchy:pale_nyxite" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/cornea_stalk_plantable.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/cornea_stalk_plantable.json new file mode 100644 index 00000000..f38f0dec --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/cornea_stalk_plantable.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:nyxite", + "antarchy:pale_nyxite", + "antarchy:umbral_moss_block", + "antarchy:dream_sand" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/dream_fire_base_blocks.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/dream_fire_base_blocks.json new file mode 100644 index 00000000..195afc30 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/dream_fire_base_blocks.json @@ -0,0 +1,47 @@ +{ + "values": [ + "antarchy:nyxite", + "antarchy:polished_nyxite", + "antarchy:chiseled_nyxite", + "antarchy:nyxite_bricks", + "antarchy:mossy_nyxite_bricks", + "antarchy:nyxite_stairs", + "antarchy:nyxite_slab", + "antarchy:nyxite_wall", + "antarchy:polished_nyxite_stairs", + "antarchy:polished_nyxite_slab", + "antarchy:polished_nyxite_wall", + "antarchy:polished_nyxite_pressure_plate", + "antarchy:polished_nyxite_button", + "antarchy:nyxite_brick_stairs", + "antarchy:nyxite_brick_slab", + "antarchy:nyxite_brick_wall", + "antarchy:mossy_nyxite_brick_stairs", + "antarchy:mossy_nyxite_brick_slab", + "antarchy:mossy_nyxite_brick_wall", + "antarchy:nyxite_pillar", + "antarchy:pale_nyxite", + "antarchy:nyxite_spike", + "antarchy:potent_nyxite", + "antarchy:dream_sand", + "antarchy:dream_sandstone", + "antarchy:chiseled_dream_sandstone", + "antarchy:cut_dream_sandstone", + "antarchy:smooth_dream_sandstone", + "antarchy:typhonite", + "antarchy:veined_typhonite", + "antarchy:typhonite_spike", + "antarchy:typhonite_bricks", + "antarchy:chiseled_typhonite", + "antarchy:polished_typhonite", + "antarchy:typhonite_stairs", + "antarchy:typhonite_slab", + "antarchy:typhonite_wall", + "antarchy:typhonite_brick_stairs", + "antarchy:typhonite_brick_slab", + "antarchy:typhonite_brick_wall", + "antarchy:polished_typhonite_stairs", + "antarchy:polished_typhonite_slab", + "antarchy:polished_typhonite_wall" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/duplicator_tree_blacklist.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/duplicator_tree_blacklist.json new file mode 100644 index 00000000..af2fbd55 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/duplicator_tree_blacklist.json @@ -0,0 +1,20 @@ +{ + "replace": false, + "values": [ + "minecraft:bedrock", + "minecraft:barrier", + "minecraft:light", + "minecraft:spawner", + "minecraft:end_portal_frame", + "minecraft:end_portal", + "minecraft:nether_portal", + "minecraft:command_block", + "minecraft:chain_command_block", + "minecraft:repeating_command_block", + "minecraft:structure_block", + "minecraft:structure_void", + "minecraft:jigsaw", + "minecraft:moving_piston", + "minecraft:piston_head" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/elythia_portal_frames.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/elythia_portal_frames.json new file mode 100644 index 00000000..76a695aa --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/elythia_portal_frames.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:mossy_ouranwood_wood", + "antarchy:mossy_ouranwood_log" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/gravity_gun_blacklist.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/gravity_gun_blacklist.json new file mode 100644 index 00000000..af2fbd55 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/gravity_gun_blacklist.json @@ -0,0 +1,20 @@ +{ + "replace": false, + "values": [ + "minecraft:bedrock", + "minecraft:barrier", + "minecraft:light", + "minecraft:spawner", + "minecraft:end_portal_frame", + "minecraft:end_portal", + "minecraft:nether_portal", + "minecraft:command_block", + "minecraft:chain_command_block", + "minecraft:repeating_command_block", + "minecraft:structure_block", + "minecraft:structure_void", + "minecraft:jigsaw", + "minecraft:moving_piston", + "minecraft:piston_head" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/hercules_beetle_charge_immune_blocks.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/hercules_beetle_charge_immune_blocks.json new file mode 100644 index 00000000..5234c475 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/hercules_beetle_charge_immune_blocks.json @@ -0,0 +1,18 @@ +{ + "replace": false, + "values": [ + "minecraft:bedrock", + "minecraft:obsidian", + "minecraft:crying_obsidian", + "minecraft:barrier", + "minecraft:command_block", + "minecraft:chain_command_block", + "minecraft:repeating_command_block", + "minecraft:structure_block", + "minecraft:jigsaw", + "minecraft:structure_void", + "minecraft:end_portal_frame", + "minecraft:end_portal", + "minecraft:end_gateway" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/infinity_dimension_rare_ores.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/infinity_dimension_rare_ores.json new file mode 100644 index 00000000..639de1a7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/infinity_dimension_rare_ores.json @@ -0,0 +1,13 @@ +{ + "replace": false, + "values": [ + "antarchy:uranium_ore", + "antarchy:deepslate_uranium_ore", + "antarchy:broodstone_uranium_ore", + "antarchy:titanium_ore", + "antarchy:deepslate_titanium_ore", + "antarchy:broodstone_titanium_ore", + "antarchy:uranium_block", + "antarchy:titanium_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/lucid_anchor_base_blocks.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/lucid_anchor_base_blocks.json new file mode 100644 index 00000000..b68760f5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/lucid_anchor_base_blocks.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "antarchy:antimetal", + "antarchy:polished_antimetal", + "antarchy:antimetal_stairs", + "antarchy:antimetal_slab", + "antarchy:polished_antimetal_stairs", + "antarchy:polished_antimetal_slab" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/miners_dream_carvable.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/miners_dream_carvable.json new file mode 100644 index 00000000..6f7d26ee --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/miners_dream_carvable.json @@ -0,0 +1,36 @@ +{ + "replace": false, + "values": [ + "#minecraft:base_stone_overworld", + "#minecraft:base_stone_nether", + "minecraft:stone", + "minecraft:deepslate", + "minecraft:granite", + "minecraft:diorite", + "minecraft:andesite", + "minecraft:tuff", + "minecraft:calcite", + "minecraft:netherrack", + "minecraft:blackstone", + "minecraft:basalt", + "minecraft:smooth_basalt", + "minecraft:end_stone", + "minecraft:dirt", + "minecraft:coarse_dirt", + "minecraft:rooted_dirt", + "minecraft:podzol", + "minecraft:mycelium", + "minecraft:gravel", + "minecraft:sand", + "minecraft:red_sand", + "minecraft:sandstone", + "minecraft:red_sandstone", + "minecraft:clay", + "minecraft:soul_sand", + "minecraft:soul_soil", + "antarchy:nyxite", + "antarchy:pale_nyxite", + "antarchy:dream_sand", + "antarchy:dream_sandstone" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/molevore_breakable_blocks.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/molevore_breakable_blocks.json new file mode 100644 index 00000000..74865fb9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/molevore_breakable_blocks.json @@ -0,0 +1,18 @@ +{ + "replace": false, + "values": [ + "minecraft:coarse_dirt", + "minecraft:dirt", + "minecraft:dirt_path", + "minecraft:farmland", + "minecraft:grass_block", + "minecraft:rooted_dirt", + "minecraft:mud", + "minecraft:mycelium", + "minecraft:podzol", + "minecraft:grass_block", + "minecraft:moss_block", + "antarchy:infested_coarse_dirt", + "antarchy:infested_rooted_dirt" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/molevore_see_through_blocks.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/molevore_see_through_blocks.json new file mode 100644 index 00000000..74865fb9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/molevore_see_through_blocks.json @@ -0,0 +1,18 @@ +{ + "replace": false, + "values": [ + "minecraft:coarse_dirt", + "minecraft:dirt", + "minecraft:dirt_path", + "minecraft:farmland", + "minecraft:grass_block", + "minecraft:rooted_dirt", + "minecraft:mud", + "minecraft:mycelium", + "minecraft:podzol", + "minecraft:grass_block", + "minecraft:moss_block", + "antarchy:infested_coarse_dirt", + "antarchy:infested_rooted_dirt" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/molevore_spawn_surfaces.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/molevore_spawn_surfaces.json new file mode 100644 index 00000000..ea10945e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/molevore_spawn_surfaces.json @@ -0,0 +1,29 @@ +{ + "replace": false, + "values": [ + "minecraft:coarse_dirt", + "minecraft:dirt", + "minecraft:dirt_path", + "minecraft:farmland", + "minecraft:grass_block", + "minecraft:rooted_dirt", + "minecraft:mud", + "minecraft:packed_mud", + "minecraft:mycelium", + "minecraft:podzol", + "minecraft:moss_block", + "minecraft:clay", + "minecraft:gravel", + "minecraft:stone", + "minecraft:granite", + "minecraft:diorite", + "minecraft:andesite", + "minecraft:tuff", + "minecraft:calcite", + "minecraft:dripstone_block", + "minecraft:deepslate", + "minecraft:cobbled_deepslate", + "antarchy:infested_coarse_dirt", + "antarchy:infested_rooted_dirt" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/nadir_logs.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/nadir_logs.json new file mode 100644 index 00000000..23dece7d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/nadir_logs.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:nadir_log", + "antarchy:nadir_wood", + "antarchy:stripped_nadir_log", + "antarchy:stripped_nadir_wood" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/nadir_sapling_supports.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/nadir_sapling_supports.json new file mode 100644 index 00000000..ee2d4011 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/nadir_sapling_supports.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:antigravel", + "antarchy:nadir_nyxium" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/nightmare_breakable.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/nightmare_breakable.json new file mode 100644 index 00000000..0ecd95ec --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/nightmare_breakable.json @@ -0,0 +1,13 @@ +{ + "replace": false, + "values": [ + "#minecraft:leaves", + "#minecraft:dirt", + "#minecraft:base_stone_overworld", + "antarchy:dream_sand", + "antarchy:dream_sandstone", + "antarchy:nyxite", + "antarchy:pale_nyxite", + "antarchy:potent_nyxite" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/nyxite.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/nyxite.json new file mode 100644 index 00000000..51e4f7ea --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/nyxite.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "antarchy:nyxite", + "antarchy:pale_nyxite", + "antarchy:potent_nyxite" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/nyxium.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/nyxium.json new file mode 100644 index 00000000..d57c8fa1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/nyxium.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:nadir_nyxium", + "antarchy:verdant_nyxium" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/ouranwood_logs.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/ouranwood_logs.json new file mode 100644 index 00000000..01800b33 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/ouranwood_logs.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_log", + "antarchy:ouranwood_wood", + "antarchy:mossy_ouranwood_log", + "antarchy:mossy_ouranwood_wood", + "antarchy:stripped_ouranwood_log", + "antarchy:stripped_ouranwood_wood" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/peach_logs.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/peach_logs.json new file mode 100644 index 00000000..5a1d9ec3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/peach_logs.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:peach_log", + "antarchy:peach_wood", + "antarchy:stripped_peach_log", + "antarchy:stripped_peach_wood" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/potent_nyxite_activation_blocks.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/potent_nyxite_activation_blocks.json new file mode 100644 index 00000000..5bbff63d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/potent_nyxite_activation_blocks.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:magma_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/rolly_cavern_carveable.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/rolly_cavern_carveable.json new file mode 100644 index 00000000..d57688a4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/rolly_cavern_carveable.json @@ -0,0 +1,16 @@ +{ + "values": [ + "antarchy:myrmite", + "antarchy:broodstone", + "antarchy:amber_moss_block", + "antarchy:amber_moss_carpet", + "minecraft:stone", + "minecraft:deepslate", + "minecraft:dirt", + "minecraft:moss_block", + "minecraft:moss_carpet", + "minecraft:short_grass", + "minecraft:tall_grass", + "minecraft:clay" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/royal_logs.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/royal_logs.json new file mode 100644 index 00000000..a93ee69f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/royal_logs.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:royal_log", + "antarchy:royal_wood", + "antarchy:stripped_royal_log", + "antarchy:stripped_royal_wood" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/termite_foods.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/termite_foods.json new file mode 100644 index 00000000..54c986bb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/termite_foods.json @@ -0,0 +1,14 @@ +{ + "replace": false, + "values": [ + "#minecraft:planks", + "#minecraft:logs", + "#minecraft:wooden_slabs", + "#minecraft:wooden_stairs", + "#minecraft:wooden_doors", + "#minecraft:wooden_trapdoors", + "#minecraft:wooden_fences", + "#minecraft:wooden_pressure_plates", + "#minecraft:wooden_buttons" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/thoraxis_portal_frames.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/thoraxis_portal_frames.json new file mode 100644 index 00000000..f622ee69 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/thoraxis_portal_frames.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:nyxite" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/tiger_eye_camouflage_blacklist.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/tiger_eye_camouflage_blacklist.json new file mode 100644 index 00000000..7d4a90b8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/tiger_eye_camouflage_blacklist.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "minecraft:barrier", + "minecraft:light", + "minecraft:structure_void", + "minecraft:end_portal", + "minecraft:end_gateway", + "minecraft:nether_portal" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/truffalo_logs.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/truffalo_logs.json new file mode 100644 index 00000000..5cfc4d49 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/truffalo_logs.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:truffalo_log", + "antarchy:truffalo_wood", + "antarchy:stripped_truffalo_log", + "antarchy:stripped_truffalo_wood" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/truffalo_sapling_supports.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/truffalo_sapling_supports.json new file mode 100644 index 00000000..9b588321 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/truffalo_sapling_supports.json @@ -0,0 +1,14 @@ +{ + "replace": false, + "values": [ + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:coarse_dirt", + "minecraft:podzol", + "minecraft:mycelium", + "minecraft:farmland", + "minecraft:rooted_dirt", + "minecraft:moss_block", + "antarchy:blush_moss_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/truffalo_tuft.json new file mode 100644 index 00000000..3f73a76c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "replace": false, + "values": [ + "antarchy:white_truffalo_tuft", + "antarchy:orange_truffalo_tuft", + "antarchy:magenta_truffalo_tuft", + "antarchy:light_blue_truffalo_tuft", + "antarchy:yellow_truffalo_tuft", + "antarchy:lime_truffalo_tuft", + "antarchy:pink_truffalo_tuft", + "antarchy:gray_truffalo_tuft", + "antarchy:light_gray_truffalo_tuft", + "antarchy:cyan_truffalo_tuft", + "antarchy:purple_truffalo_tuft", + "antarchy:blue_truffalo_tuft", + "antarchy:brown_truffalo_tuft", + "antarchy:green_truffalo_tuft", + "antarchy:red_truffalo_tuft", + "antarchy:black_truffalo_tuft" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/umbral_moss_replaceable.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/umbral_moss_replaceable.json new file mode 100644 index 00000000..dd3155a9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/umbral_moss_replaceable.json @@ -0,0 +1,8 @@ +{ + "values": [ + "#minecraft:moss_replaceable", + "antarchy:nyxite", + "minecraft:blackstone", + "antarchy:umbral_moss_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/block/wall_corals.json b/common-1.20.1/src/main/resources/data/antarchy/tags/block/wall_corals.json new file mode 100644 index 00000000..a42a8397 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/block/wall_corals.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:star_coral_wall_fan" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/damage_type/antarchy_magic_burst.json b/common-1.20.1/src/main/resources/data/antarchy/tags/damage_type/antarchy_magic_burst.json new file mode 100644 index 00000000..50f75ace --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/damage_type/antarchy_magic_burst.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:magic", + "minecraft:indirect_magic" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/basilisk_prey.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/basilisk_prey.json new file mode 100644 index 00000000..73079119 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/basilisk_prey.json @@ -0,0 +1,22 @@ +{ + "replace": false, + "values": [ + "minecraft:rabbit", + "minecraft:pig", + "minecraft:chicken", + "minecraft:sheep", + "minecraft:cow", + "minecraft:mooshroom", + "minecraft:frog", + "antarchy:flying_squirrel", + "antarchy:moleworm", + "antarchy:red_ant", + "antarchy:brown_ant", + "antarchy:rainbow_ant", + "antarchy:apple_cow", + "antarchy:golden_apple_cow", + "antarchy:enchanted_golden_apple_cow", + "antarchy:caterpillar", + "antarchy:ouranwood_deer" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/commanded_blacklist.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/commanded_blacklist.json new file mode 100644 index 00000000..f42387d1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/commanded_blacklist.json @@ -0,0 +1,14 @@ +{ + "replace": false, + "values": [ + "minecraft:player", + "minecraft:ender_dragon", + "minecraft:wither", + "minecraft:warden", + "#antarchy:spell_resistant_boss", + "antarchy:king", + "antarchy:queen", + "antarchy:prince", + "antarchy:princess" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/critter_cage_blacklist.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/critter_cage_blacklist.json new file mode 100644 index 00000000..bc3a319e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/critter_cage_blacklist.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:king", + "antarchy:queen" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/dilated_blacklist.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/dilated_blacklist.json new file mode 100644 index 00000000..40b41861 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/dilated_blacklist.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "#antarchy:time_dilation_immune" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/dimensional_tear_common_spawns.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/dimensional_tear_common_spawns.json new file mode 100644 index 00000000..5a2b9482 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/dimensional_tear_common_spawns.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:lucid" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/dimensional_tear_rare_spawns.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/dimensional_tear_rare_spawns.json new file mode 100644 index 00000000..479d4395 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/dimensional_tear_rare_spawns.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:nightmare" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/dread_hallucination_mobs.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/dread_hallucination_mobs.json new file mode 100644 index 00000000..c3129700 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/dread_hallucination_mobs.json @@ -0,0 +1,17 @@ +{ + "replace": false, + "values": [ + "antarchy:nightmare", + "antarchy:kraken", + "antarchy:emperor_scorpion", + "antarchy:basilisk", + "antarchy:molevore", + "minecraft:wither", + "minecraft:creeper", + "minecraft:skeleton", + "minecraft:spider", + "antarchy:toreterror", + "antarchy:creeping_horror", + "antarchy:lurking_terror" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/dream_sand_low_gravity_blacklist.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/dream_sand_low_gravity_blacklist.json new file mode 100644 index 00000000..66a9f668 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/dream_sand_low_gravity_blacklist.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:bed_bug", + "antarchy:emperor_scorpion", + "antarchy:nightmare", + "antarchy:scorpion" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/duct_tape_stick_blacklist.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/duct_tape_stick_blacklist.json new file mode 100644 index 00000000..f716692b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/duct_tape_stick_blacklist.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "minecraft:ender_dragon", + "minecraft:wither", + "antarchy:nightmare", + "antarchy:kraken", + "antarchy:brutalfly" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/frog_glimmer_no_eat.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/frog_glimmer_no_eat.json new file mode 100644 index 00000000..976b13a2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/frog_glimmer_no_eat.json @@ -0,0 +1,11 @@ +{ + "values": [ + "antarchy:kraken", + "antarchy:toreterror", + "antarchy:emperor_scorpion", + "antarchy:alpha_mantis", + "antarchy:brutalfly", + "antarchy:king", + "antarchy:queen" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/gravity_gun_blacklist.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/gravity_gun_blacklist.json new file mode 100644 index 00000000..e89c1547 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/gravity_gun_blacklist.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "minecraft:wither", + "minecraft:ender_dragon", + "antarchy:kraken", + "antarchy:king", + "antarchy:queen" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_bosses.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_bosses.json new file mode 100644 index 00000000..69e3896e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_bosses.json @@ -0,0 +1,5 @@ +{ + "values": [ + "antarchy:hercules_beetle" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_common.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_common.json new file mode 100644 index 00000000..3cc117aa --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_common.json @@ -0,0 +1,6 @@ +{ + "values": [ + "antarchy:creeping_horror", + "antarchy:lurking_terror" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_jerry.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_jerry.json new file mode 100644 index 00000000..f81b2826 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_jerry.json @@ -0,0 +1,5 @@ +{ + "values": [ + "antarchy:jerry" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_jumpers.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_jumpers.json new file mode 100644 index 00000000..298fd78a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_jumpers.json @@ -0,0 +1,5 @@ +{ + "values": [ + "antarchy:jumpy_bug" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_molevore.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_molevore.json new file mode 100644 index 00000000..ece7739d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_molevore.json @@ -0,0 +1,5 @@ +{ + "values": [ + "antarchy:molevore" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_moleworm.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_moleworm.json new file mode 100644 index 00000000..8d9eb37b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_moleworm.json @@ -0,0 +1,5 @@ +{ + "values": [ + "antarchy:moleworm" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_spitters.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_spitters.json new file mode 100644 index 00000000..39f6a107 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/horde_spitters.json @@ -0,0 +1,5 @@ +{ + "values": [ + "antarchy:spit_bug" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/hushweed_targets.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/hushweed_targets.json new file mode 100644 index 00000000..ea9c3156 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/hushweed_targets.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:player" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/inverted_immune.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/inverted_immune.json new file mode 100644 index 00000000..c6e6097f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/inverted_immune.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "minecraft:ender_dragon", + "antarchy:kraken", + "antarchy:reverie", + "antarchy:lucid", + "antarchy:triffid", + "antarchy:king" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/lucid_anchor_immune.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/lucid_anchor_immune.json new file mode 100644 index 00000000..bc3a319e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/lucid_anchor_immune.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:king", + "antarchy:queen" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/lucid_bolt_immune.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/lucid_bolt_immune.json new file mode 100644 index 00000000..687bfa85 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/lucid_bolt_immune.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:reverie" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/nightmare_no_attack.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/nightmare_no_attack.json new file mode 100644 index 00000000..0ec21525 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/nightmare_no_attack.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:lucid", + "antarchy:reverie" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/paralysis_immune.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/paralysis_immune.json new file mode 100644 index 00000000..883ca88e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/paralysis_immune.json @@ -0,0 +1,5 @@ +{ + "values": [ + "antarchy:basilisk" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/queen_does_not_attack.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/queen_does_not_attack.json new file mode 100644 index 00000000..59264160 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/queen_does_not_attack.json @@ -0,0 +1,13 @@ +{ + "replace": false, + "values": [ + "antarchy:manticore", + "antarchy:nightmare", + "antarchy:lucid", + "antarchy:reverie", + "antarchy:bed_bug", + "antarchy:creeping_horror", + "antarchy:lurking_terror", + "antarchy:jumpy_bug" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/scorpion_whip_blacklist.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/scorpion_whip_blacklist.json new file mode 100644 index 00000000..bc3a319e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/scorpion_whip_blacklist.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:king", + "antarchy:queen" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/scorpion_whip_immune.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/scorpion_whip_immune.json new file mode 100644 index 00000000..5d341ba2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/scorpion_whip_immune.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/size_changing_immune.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/size_changing_immune.json new file mode 100644 index 00000000..bc3a319e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/size_changing_immune.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:king", + "antarchy:queen" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/spell_resistant_boss.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/spell_resistant_boss.json new file mode 100644 index 00000000..5c424efa --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/spell_resistant_boss.json @@ -0,0 +1,12 @@ +{ + "values": [ + "antarchy:basilisk", + "antarchy:nightmare", + "antarchy:emperor_scorpion", + "antarchy:kraken", + "antarchy:toreterror", + "antarchy:brutalfly", + "antarchy:alpha_mantis", + "antarchy:hercules_beetle" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/stinky_repelled_hostiles.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/stinky_repelled_hostiles.json new file mode 100644 index 00000000..8d81eb57 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/stinky_repelled_hostiles.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "minecraft:enderman", + "minecraft:piglin", + "minecraft:piglin", + "minecraft:hoglin", + "minecraft:piglin_brute" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/tiger_eye_detection_immune.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/tiger_eye_detection_immune.json new file mode 100644 index 00000000..2217668a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/tiger_eye_detection_immune.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "antarchy:kraken", + "antarchy:nightmare", + "antarchy:toreterror", + "antarchy:emperor_scorpion", + "antarchy:king", + "antarchy:queen" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/time_dilation_immune.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/time_dilation_immune.json new file mode 100644 index 00000000..40d7c4a7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/time_dilation_immune.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "minecraft:marker", + "minecraft:area_effect_cloud" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/triffid_prey.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/triffid_prey.json new file mode 100644 index 00000000..c6fb3f7c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/triffid_prey.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "antarchy:flying_squirrel", + "antarchy:caterpillar", + "antarchy:butterfly", + "minecraft:chicken", + "minecraft:rabbit", + "minecraft:frog", + "minecraft:parrot" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/wind_vortex_immune.json b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/wind_vortex_immune.json new file mode 100644 index 00000000..80cd88ae --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/entity_type/wind_vortex_immune.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:vortex", + "minecraft:breeze", + "antarchy:king", + "antarchy:queen" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/fluid/antiwater.json b/common-1.20.1/src/main/resources/data/antarchy/tags/fluid/antiwater.json new file mode 100644 index 00000000..cb0c3b1f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/fluid/antiwater.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:antiwater", + "antarchy:flowing_antiwater" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/fluid/giant_lily_pad_supporting_fluids.json b/common-1.20.1/src/main/resources/data/antarchy/tags/fluid/giant_lily_pad_supporting_fluids.json new file mode 100644 index 00000000..ba96d3e9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/fluid/giant_lily_pad_supporting_fluids.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "minecraft:water", + "minecraft:flowing_water", + "antarchy:lumen" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/fluid/lumen.json b/common-1.20.1/src/main/resources/data/antarchy/tags/fluid/lumen.json new file mode 100644 index 00000000..f44595c4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/fluid/lumen.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:lumen", + "antarchy:flowing_lumen" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/big_bertha_ingredient.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/big_bertha_ingredient.json new file mode 100644 index 00000000..e46cf9ad --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/big_bertha_ingredient.json @@ -0,0 +1,28 @@ +{ + "replace": false, + "values": [ + "antarchy:big_bertha_blade", + "antarchy:big_bertha_hilt", + "antarchy:big_bertha_handle", + "antarchy:lucid_eye", + "antarchy:basilisk_fang", + "antarchy:emperor_scorpion_stinger", + "antarchy:ultimate_sword", + "antarchy:cloud_shark_fin", + "antarchy:vortex_charge", + "antarchy:kraken_tooth", + "antarchy:mantis_claw", + "antarchy:brutalfly_wing", + "antarchy:manticore_wing", + "antarchy:cooked_corndog", + "antarchy:gravity_gun", + "antarchy:nightmare_scale", + "antarchy:molevore_nose", + "antarchy:jumpy_bug_leg", + "antarchy:jerry_nucleus", + "antarchy:primordial_scute", + "antarchy:worm_tooth", + "antarchy:hercules_horn", + "antarchy:triffid_goo" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/brown_ant_activation_items.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/brown_ant_activation_items.json new file mode 100644 index 00000000..bc87462f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/brown_ant_activation_items.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:sugar" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/brown_ant_breeding_foods.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/brown_ant_breeding_foods.json new file mode 100644 index 00000000..bc87462f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/brown_ant_breeding_foods.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:sugar" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/butterfly_breeding_foods.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/butterfly_breeding_foods.json new file mode 100644 index 00000000..02f823bf --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/butterfly_breeding_foods.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:orange_milkweed", + "antarchy:pink_milkweed" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/caterpillar_foods.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/caterpillar_foods.json new file mode 100644 index 00000000..02f823bf --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/caterpillar_foods.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:orange_milkweed", + "antarchy:pink_milkweed" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/corndog_meats.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/corndog_meats.json new file mode 100644 index 00000000..e7b7233e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/corndog_meats.json @@ -0,0 +1,19 @@ +{ + "replace": false, + "values": [ + "minecraft:chicken", + "minecraft:porkchop", + { + "id": "c:foods/raw_meat", + "required": false + }, + { + "id": "c:foods/raw_chicken", + "required": false + }, + { + "id": "c:foods/raw_pork", + "required": false + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/dream_fire_base_blocks.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/dream_fire_base_blocks.json new file mode 100644 index 00000000..b27038b4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/dream_fire_base_blocks.json @@ -0,0 +1,6 @@ +{ + "values": [ + "antarchy:dream_sand", + "antarchy:dream_sandstone" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/duct_tape_blacklist.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/duct_tape_blacklist.json new file mode 100644 index 00000000..5d341ba2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/duct_tape_blacklist.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/easter_bunny_spawn_egg_blacklist.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/easter_bunny_spawn_egg_blacklist.json new file mode 100644 index 00000000..9f62d724 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/easter_bunny_spawn_egg_blacklist.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "minecraft:ender_dragon_spawn_egg", + "minecraft:wither_spawn_egg" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/flying_squirrel_nuts.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/flying_squirrel_nuts.json new file mode 100644 index 00000000..2af25ce5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/flying_squirrel_nuts.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_acorn" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/glimmer_augment_ant.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/glimmer_augment_ant.json new file mode 100644 index 00000000..2bee141d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/glimmer_augment_ant.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:bread" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/glimmer_augment_apple_cow.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/glimmer_augment_apple_cow.json new file mode 100644 index 00000000..3fa00a6b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/glimmer_augment_apple_cow.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:apple" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/glimmer_augment_elka.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/glimmer_augment_elka.json new file mode 100644 index 00000000..b11da3ed --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/glimmer_augment_elka.json @@ -0,0 +1,5 @@ +{ + "values": [ + "antarchy:peach" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/glimmer_augment_frog.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/glimmer_augment_frog.json new file mode 100644 index 00000000..d9233809 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/glimmer_augment_frog.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:slime_ball" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/glimmer_augment_ouranwood_deer.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/glimmer_augment_ouranwood_deer.json new file mode 100644 index 00000000..f0885728 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/glimmer_augment_ouranwood_deer.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:glow_berries" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/hercules_beetle_food.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/hercules_beetle_food.json new file mode 100644 index 00000000..445d82b1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/hercules_beetle_food.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:broodfruit" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/hfcs_cannot_americanize.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/hfcs_cannot_americanize.json new file mode 100644 index 00000000..86dde3df --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/hfcs_cannot_americanize.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/hoverboards.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/hoverboards.json new file mode 100644 index 00000000..46bfa077 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/hoverboards.json @@ -0,0 +1,22 @@ +{ + "replace": false, + "values": [ + "antarchy:hoverboard", + "antarchy:hoverboard_white", + "antarchy:hoverboard_orange", + "antarchy:hoverboard_magenta", + "antarchy:hoverboard_light_blue", + "antarchy:hoverboard_yellow", + "antarchy:hoverboard_lime", + "antarchy:hoverboard_pink", + "antarchy:hoverboard_gray", + "antarchy:hoverboard_light_gray", + "antarchy:hoverboard_cyan", + "antarchy:hoverboard_purple", + "antarchy:hoverboard_blue", + "antarchy:hoverboard_brown", + "antarchy:hoverboard_green", + "antarchy:hoverboard_red", + "antarchy:hoverboard_black" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/multishot_enchantable.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/multishot_enchantable.json new file mode 100644 index 00000000..1b6b505d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/multishot_enchantable.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "#minecraft:enchantable/crossbow", + "antarchy:squidzooka", + "antarchy:rpo_launcher" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/nadir_logs.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/nadir_logs.json new file mode 100644 index 00000000..23dece7d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/nadir_logs.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:nadir_log", + "antarchy:nadir_wood", + "antarchy:stripped_nadir_log", + "antarchy:stripped_nadir_wood" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/ouranwood_deer_food.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/ouranwood_deer_food.json new file mode 100644 index 00000000..6c67336b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/ouranwood_deer_food.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "minecraft:glow_berries", + "minecraft:sweet_berries", + "minecraft:apple", + "antarchy:ouranwood_acorn" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/ouranwood_logs.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/ouranwood_logs.json new file mode 100644 index 00000000..01800b33 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/ouranwood_logs.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_log", + "antarchy:ouranwood_wood", + "antarchy:mossy_ouranwood_log", + "antarchy:mossy_ouranwood_wood", + "antarchy:stripped_ouranwood_log", + "antarchy:stripped_ouranwood_wood" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/peach_logs.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/peach_logs.json new file mode 100644 index 00000000..5a1d9ec3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/peach_logs.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:peach_log", + "antarchy:peach_wood", + "antarchy:stripped_peach_log", + "antarchy:stripped_peach_wood" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/rainbow_ant_activation_items.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/rainbow_ant_activation_items.json new file mode 100644 index 00000000..4277b9ed --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/rainbow_ant_activation_items.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:rainbow_sugar" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/red_ant_activation_items.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/red_ant_activation_items.json new file mode 100644 index 00000000..bc87462f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/red_ant_activation_items.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:sugar" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/red_ant_breeding_foods.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/red_ant_breeding_foods.json new file mode 100644 index 00000000..bc87462f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/red_ant_breeding_foods.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:sugar" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/reverie_duplication_items.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/reverie_duplication_items.json new file mode 100644 index 00000000..fa1bf6b6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/reverie_duplication_items.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:blood_crystal_shard" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/rolly_polly_food.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/rolly_polly_food.json new file mode 100644 index 00000000..445d82b1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/rolly_polly_food.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:broodfruit" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/roots.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/roots.json new file mode 100644 index 00000000..5760628e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/roots.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "minecraft:hanging_roots", + "minecraft:crimson_roots", + "minecraft:warped_roots", + "antarchy:nadir_roots", + "antarchy:verdant_roots" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/royal_logs.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/royal_logs.json new file mode 100644 index 00000000..a93ee69f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/royal_logs.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:royal_log", + "antarchy:royal_wood", + "antarchy:stripped_royal_log", + "antarchy:stripped_royal_wood" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/royal_mount_food.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/royal_mount_food.json new file mode 100644 index 00000000..309a6662 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/royal_mount_food.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "minecraft:golden_apple", + "minecraft:enchanted_golden_apple", + "minecraft:golden_carrot", + "minecraft:glistering_melon_slice", + "antarchy:king_scale", + "antarchy:queen_scale" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/termite_activation_items.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/termite_activation_items.json new file mode 100644 index 00000000..90f5f079 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/termite_activation_items.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:stick" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/termite_breeding_foods.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/termite_breeding_foods.json new file mode 100644 index 00000000..d280b15e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/termite_breeding_foods.json @@ -0,0 +1,21 @@ +{ + "replace": false, + "values": [ + "#minecraft:logs", + "#minecraft:planks", + "#minecraft:wooden_slabs", + "#minecraft:wooden_stairs", + "#minecraft:wooden_fences", + "#minecraft:fence_gates", + "#minecraft:wooden_doors", + "#minecraft:wooden_trapdoors", + "#minecraft:wooden_pressure_plates", + "#minecraft:wooden_buttons", + "minecraft:stick", + "minecraft:bowl", + "minecraft:ladder", + "minecraft:crafting_table", + "minecraft:chest", + "minecraft:barrel" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/termite_foods.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/termite_foods.json new file mode 100644 index 00000000..5d341ba2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/termite_foods.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/tigers_eye_armor.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/tigers_eye_armor.json new file mode 100644 index 00000000..e2b2f6b2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/tigers_eye_armor.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:tigers_eye_helmet", + "antarchy:tigers_eye_chestplate", + "antarchy:tigers_eye_leggings", + "antarchy:tigers_eye_boots" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/truffalo_logs.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/truffalo_logs.json new file mode 100644 index 00000000..5cfc4d49 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/truffalo_logs.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:truffalo_log", + "antarchy:truffalo_wood", + "antarchy:stripped_truffalo_log", + "antarchy:stripped_truffalo_wood" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/truffalo_tuft.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/truffalo_tuft.json new file mode 100644 index 00000000..3f73a76c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/truffalo_tuft.json @@ -0,0 +1,21 @@ +{ + "replace": false, + "values": [ + "antarchy:white_truffalo_tuft", + "antarchy:orange_truffalo_tuft", + "antarchy:magenta_truffalo_tuft", + "antarchy:light_blue_truffalo_tuft", + "antarchy:yellow_truffalo_tuft", + "antarchy:lime_truffalo_tuft", + "antarchy:pink_truffalo_tuft", + "antarchy:gray_truffalo_tuft", + "antarchy:light_gray_truffalo_tuft", + "antarchy:cyan_truffalo_tuft", + "antarchy:purple_truffalo_tuft", + "antarchy:blue_truffalo_tuft", + "antarchy:brown_truffalo_tuft", + "antarchy:green_truffalo_tuft", + "antarchy:red_truffalo_tuft", + "antarchy:black_truffalo_tuft" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/truffalo_tufts.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/truffalo_tufts.json new file mode 100644 index 00000000..5035174d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/truffalo_tufts.json @@ -0,0 +1,21 @@ +{ + "replace": false, + "values": [ + "antarchy:white_truffalo_tuft", + "antarchy:orange_truffalo_tuft", + "antarchy:magenta_truffalo_tuft", + "antarchy:light_blue_truffalo_tuft", + "antarchy:yellow_truffalo_tuft", + "antarchy:lime_truffalo_tuft", + "antarchy:pink_truffalo_tuft", + "antarchy:gray_truffalo_tuft", + "antarchy:light_gray_truffalo_tuft", + "antarchy:cyan_truffalo_tuft", + "antarchy:purple_truffalo_tuft", + "antarchy:blue_truffalo_tuft", + "antarchy:brown_truffalo_tuft", + "antarchy:green_truffalo_tuft", + "antarchy:red_truffalo_tuft", + "antarchy:black_truffalo_tuft" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/item/venison_foods.json b/common-1.20.1/src/main/resources/data/antarchy/tags/item/venison_foods.json new file mode 100644 index 00000000..43bb9bec --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/item/venison_foods.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:raw_venison", + "antarchy:cooked_venison" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/tags/worldgen/biome/has_structure/kings_tree_biomes.json b/common-1.20.1/src/main/resources/data/antarchy/tags/worldgen/biome/has_structure/kings_tree_biomes.json new file mode 100644 index 00000000..8d8c39a8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/tags/worldgen/biome/has_structure/kings_tree_biomes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:elythia_meadow" + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/weapon_attributes/royal_assailant_battleaxe.json b/common-1.20.1/src/main/resources/data/antarchy/weapon_attributes/royal_assailant_battleaxe.json new file mode 100644 index 00000000..e61dca2d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/weapon_attributes/royal_assailant_battleaxe.json @@ -0,0 +1,40 @@ +{ + "parent": "bettercombat:heavy_axe", + "attributes": { + "attack_range": 4.0, + "category": "greataxe", + "two_handed": true, + "attacks": [ + { + "hitbox": "HORIZONTAL_PLANE", + "damage_multiplier": 1, + "angle": 180, + "upswing": 0.55, + "animation": "bettercombat:two_handed_slash_horizontal_left", + "swing_sound": { + "id": "bettercombat:double_axe_swing" + } + }, + { + "hitbox": "HORIZONTAL_PLANE", + "damage_multiplier": 1, + "angle": 180, + "upswing": 0.55, + "animation": "bettercombat:two_handed_slash_horizontal_right", + "swing_sound": { + "id": "bettercombat:double_axe_swing" + } + }, + { + "hitbox": "FORWARD_BOX", + "damage_multiplier": 1.7, + "angle": 0, + "upswing": 0.6, + "animation": "bettercombat:two_handed_slam", + "swing_sound": { + "id": "bettercombat:hammer_slam" + } + } + ] + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/weapon_attributes/royal_guardian_sword.json b/common-1.20.1/src/main/resources/data/antarchy/weapon_attributes/royal_guardian_sword.json new file mode 100644 index 00000000..865e2121 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/weapon_attributes/royal_guardian_sword.json @@ -0,0 +1,40 @@ +{ + "attributes": { + "attack_range": 4.0, + "category": "longsword", + "two_handed": true, + "attacks": [ + { + "hitbox": "HORIZONTAL_PLANE", + "damage_multiplier": 1, + "angle": 150, + "upswing": 0.4, + "animation": "bettercombat:two_handed_slash_horizontal_right", + "swing_sound": { + "id": "bettercombat:claymore_swing" + } + }, + { + "hitbox": "HORIZONTAL_PLANE", + "damage_multiplier": 1, + "angle": 150, + "upswing": 0.4, + "animation": "bettercombat:two_handed_slash_horizontal_left", + "swing_sound": { + "id": "bettercombat:claymore_swing" + } + }, + { + "hitbox": "HORIZONTAL_PLANE", + "damage_multiplier": 1.6, + "angle": 360, + "upswing": 0.45, + "animation": "bettercombat:two_handed_spin", + "swing_sound": { + "id": "bettercombat:claymore_swing", + "pitch": 1.15 + } + } + ] + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/biome/nadir_forest.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/biome/nadir_forest.json new file mode 100644 index 00000000..1b1989fe --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/biome/nadir_forest.json @@ -0,0 +1,79 @@ +{ + "has_precipitation": false, + "temperature": 1.6, + "downfall": 0.0, + "effects": { + "fog_color": 1315860, + "water_color": 2033514, + "water_fog_color": 0, + "sky_color": 986895, + "particle": { + "probability": 0.006, + "options": { + "type": "minecraft:warped_spore" + } + }, + "additions_sound": { + "sound": "antarchy:thoraxis_nightmare_wastes_biome_additions", + "tick_chance": 0.0005 + }, + "mood_sound": { + "sound": "antarchy:thoraxis_nightmare_wastes_mood", + "tick_delay": 8572, + "block_search_extent": 8, + "offset": 2.0 + }, + "music": { + "sound": "antarchy:music.game.thoraxis", + "min_delay": 600, + "max_delay": 1800, + "replace_current_music": true + } + }, + "spawn_costs": {}, + "carvers": { + "air": [], + "liquid": [] + }, + "features": [ + [], + [], + [], + [], + [], + [], + [ + "antarchy:bluestone_ore", + "antarchy:thoraxis_ichor_lake", + "antarchy:dimensional_tears" + ], + [], + [], + [ + "antarchy:nadir_forest_ceiling_trees", + "antarchy:nadir_forest_ceiling_saplings", + "antarchy:nadir_ferns", + "antarchy:duskbells", + "antarchy:nadir_roots_patch" + ], + [] + ], + "creature_spawn_probability": 0.08, + "spawners": { + "monster": [], + "creature": [ + { + "type": "antarchy:bed_bug", + "weight": 18, + "minCount": 2, + "maxCount": 5 + } + ], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/biome/truffalo_forest.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/biome/truffalo_forest.json new file mode 100644 index 00000000..65623f09 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/biome/truffalo_forest.json @@ -0,0 +1,176 @@ +{ + "has_precipitation": false, + "temperature": 0.82, + "downfall": 1.0, + "effects": { + "fog_color": 8084735, + "water_color": 5021432, + "water_fog_color": 736368, + "sky_color": 8084735, + "foliage_color": 2867501, + "grass_color": 4304168, + "grass_color_modifier": "none", + "mood_sound": { + "sound": "minecraft:ambient.basalt_deltas.mood", + "tick_delay": 8000, + "block_search_extent": 8, + "offset": 2.0 + }, + "music": { + "sound": "antarchy:music.game.elythia", + "min_delay": 600, + "max_delay": 1800, + "replace_current_music": true + } + }, + "spawn_costs": { + "antarchy:alpha_mantis": { + "energy_budget": 0.1, + "charge": 18.0 + }, + "antarchy:mantis": { + "energy_budget": 0.1, + "charge": 15.0 + }, + "antarchy:glimmer": { + "energy_budget": 0.1, + "charge": 9 + } + }, + "carvers": { + "air": [], + "liquid": [] + }, + "features": [ + [], + [], + [], + [], + [], + [], + [ + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper" + ], + [ + "antarchy:elythia_underground", + "minecraft:large_dripstone", + "minecraft:pointed_dripstone" + ], + [], + [ + "antarchy:truffalo_forest_trees", + "antarchy:truffalo_large_forest_trees", + "antarchy:elythia_meadow_large_tuff_boulders", + "antarchy:elythia_meadow_tuff_boulders", + "antarchy:elythia_meadow_flora", + "antarchy:elythia_brown_ant_nests", + "antarchy:elythia_rainbow_ant_nests", + "minecraft:patch_sugar_cane", + "antarchy:giant_lily_pad_patch_meadow" + ], + [] + ], + "creature_spawn_probability": 0.2, + "spawners": { + "creature": [ + { + "type": "antarchy:caterpillar", + "weight": 24, + "minCount": 1, + "maxCount": 1 + }, + { + "type": "antarchy:apple_cow", + "weight": 24, + "minCount": 1, + "maxCount": 3 + }, + { + "type": "antarchy:golden_apple_cow", + "weight": 20, + "minCount": 1, + "maxCount": 3 + }, + { + "type": "antarchy:enchanted_golden_apple_cow", + "weight": 1, + "minCount": 1, + "maxCount": 1 + }, + { + "type": "minecraft:rabbit", + "weight": 16, + "minCount": 1, + "maxCount": 3 + }, + { + "type": "antarchy:glimmer", + "weight": 2, + "minCount": 1, + "maxCount": 1 + } + ], + "ambient": [ + { + "type": "antarchy:butterfly", + "weight": 48, + "minCount": 2, + "maxCount": 4 + } + ], + "monster": [ + { + "type": "antarchy:mantis", + "weight": 20, + "minCount": 1, + "maxCount": 1 + }, + { + "type": "antarchy:alpha_mantis", + "weight": 1, + "minCount": 1, + "maxCount": 1 + } + ], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [ + { + "type": "antarchy:octopus_bomb", + "weight": 2, + "minCount": 1, + "maxCount": 1 + } + ], + "water_ambient": [ + { + "type": "antarchy:cheep", + "weight": 10, + "minCount": 3, + "maxCount": 6 + }, + { + "type": "minecraft:tropical_fish", + "weight": 20, + "minCount": 4, + "maxCount": 8 + } + ], + "misc": [] + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/biome/vortex_expanse.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/biome/vortex_expanse.json new file mode 100644 index 00000000..8d2563e2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/biome/vortex_expanse.json @@ -0,0 +1,112 @@ +{ + "has_precipitation": false, + "temperature": 2.0, + "downfall": 0.0, + "effects": { + "fog_color": 1772083, + "water_color": 2033514, + "water_fog_color": 0, + "sky_color": 986895, + "particle": { + "probability": 0.01, + "options": { + "type": "minecraft:reverse_portal" + } + }, + "additions_sound": { + "sound": "antarchy:thoraxis_dream_dunes_biome_additions", + "tick_chance": 0.0005 + }, + "mood_sound": { + "sound": "antarchy:thoraxis_dream_dunes_mood", + "tick_delay": 8572, + "block_search_extent": 8, + "offset": 2.0 + }, + "music": { + "sound": "antarchy:music.game.thoraxis", + "min_delay": 600, + "max_delay": 1800, + "replace_current_music": true + } + }, + "spawn_costs": { + "antarchy:emperor_scorpion": { + "energy_budget": 0.18, + "charge": 1.4 + }, + "antarchy:vortex": { + "energy_budget": 0.9, + "charge": 12.0 + } + }, + "carvers": { + "air": [], + "liquid": [] + }, + "features": [ + [], + [], + [], + [], + [], + [], + [ + "antarchy:bluestone_ore", + "antarchy:thoraxis_ichor_lake", + "antarchy:dimensional_tears", + "antarchy:typhonite_veined_ore" + ], + [], + [ + "antarchy:patch_fire" + ], + [ + "antarchy:vortex_expanse_typhonite_spikes", + "antarchy:typhonite_swirls", + "antarchy:patch_ceiling_fire" + ], + [ + "antarchy:whirlflower_patch", + "antarchy:spiraling_vines_patch", + "antarchy:verdant_roots_patch" + ] + ], + "creature_spawn_probability": 0.03, + "spawners": { + "monster": [ + { + "type": "antarchy:scorpion", + "weight": 20, + "minCount": 2, + "maxCount": 5 + }, + { + "type": "antarchy:emperor_scorpion", + "weight": 3, + "minCount": 1, + "maxCount": 1 + }, + { + "type": "antarchy:vortex", + "weight": 1, + "minCount": 1, + "maxCount": 1 + } + ], + "creature": [ + { + "type": "antarchy:bed_bug", + "weight": 15, + "minCount": 2, + "maxCount": 4 + } + ], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/biome/wormy_caves.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/biome/wormy_caves.json new file mode 100644 index 00000000..709f910c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/biome/wormy_caves.json @@ -0,0 +1,84 @@ +{ + "has_precipitation": false, + "temperature": 0.82, + "downfall": 1.0, + "effects": { + "fog_color": 5738556, + "water_color": 4159204, + "water_fog_color": 2058784, + "sky_color": 5738556, + "foliage_color": 3158803, + "grass_color": 4943948, + "grass_color_modifier": "none", + "particle": { + "probability": 0.012, + "options": { + "type": "minecraft:spore_blossom_air" + } + }, + "music": { + "sound": "antarchy:music.game.cavaryn", + "min_delay": 600, + "max_delay": 1800, + "replace_current_music": true + } + }, + "spawn_costs": { + "antarchy:worm": { + "energy_budget": 0.55, + "charge": 0.32 + } + }, + "carvers": { + "air": [], + "liquid": [] + }, + "features": [ + [], + [], + [], + [], + [], + [], + [ + "antarchy:myrmite_coal_ore", + "antarchy:broodstone_uranium_ore", + "antarchy:broodstone_titanium_ore" + ], + [], + [], + [ + "antarchy:wormy_caves_mucus", + "antarchy:wormy_caves_creepvine", + "antarchy:wormy_caves_hanging_creeproots", + "antarchy:wormy_caves_molting_vines", + "antarchy:wormy_caves_ground_molting_vines" + ], + [] + ], + "creature_spawn_probability": 0.65, + "spawners": { + "monster": [ + { + "type": "antarchy:worm", + "weight": 35, + "minCount": 1, + "maxCount": 2 + } + ], + "creature": [], + "ambient": [ + { + "type": "minecraft:bat", + "weight": 1, + "minCount": 1, + "maxCount": 2 + } + ], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/duskbell.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/duskbell.json new file mode 100644 index 00000000..45a566bb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/duskbell.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "antarchy:duskbell", + "Properties": { + "vertical_direction": "down" + } + } + } + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/duskbell_patch.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/duskbell_patch.json new file mode 100644 index 00000000..6fadec76 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/duskbell_patch.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:random_patch", + "config": { + "tries": 10, + "xz_spread": 4, + "y_spread": 2, + "feature": "antarchy:duskbell" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/glimmering_reeds.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/glimmering_reeds.json new file mode 100644 index 00000000..780a4682 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/glimmering_reeds.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:glimmering_reeds", + "config": {} +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/gorevine.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/gorevine.json new file mode 100644 index 00000000..d453145e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/gorevine.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:gorevine", + "config": {} +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/gorevine_patch.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/gorevine_patch.json new file mode 100644 index 00000000..3e3561a2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/gorevine_patch.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:random_patch", + "config": { + "tries": 18, + "xz_spread": 3, + "y_spread": 1, + "feature": "antarchy:gorevine" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/kings_tree_grid.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/kings_tree_grid.json new file mode 100644 index 00000000..95573198 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/kings_tree_grid.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:kings_tree_grid", + "config": {} +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_fern.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_fern.json new file mode 100644 index 00000000..e782c163 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_fern.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "antarchy:nadir_fern", + "Properties": { + "vertical_direction": "down" + } + } + } + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_fern_patch.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_fern_patch.json new file mode 100644 index 00000000..a33cfe23 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_fern_patch.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:random_patch", + "config": { + "tries": 34, + "xz_spread": 5, + "y_spread": 2, + "feature": "antarchy:nadir_fern" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_forest_ceiling_sapling.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_forest_ceiling_sapling.json new file mode 100644 index 00000000..7325d763 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_forest_ceiling_sapling.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "antarchy:nadir_sapling" + } + } + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_forest_ceiling_sapling_patch.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_forest_ceiling_sapling_patch.json new file mode 100644 index 00000000..bebd597a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_forest_ceiling_sapling_patch.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:random_patch", + "config": { + "tries": 18, + "xz_spread": 5, + "y_spread": 2, + "feature": "antarchy:nadir_forest_ceiling_sapling_single" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_roots.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_roots.json new file mode 100644 index 00000000..83b56da8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_roots.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "antarchy:nadir_roots", + "Properties": { + "vertical_direction": "down" + } + } + } + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_roots_patch.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_roots_patch.json new file mode 100644 index 00000000..484e8f9b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_roots_patch.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:random_patch", + "config": { + "tries": 40, + "xz_spread": 6, + "y_spread": 2, + "feature": "antarchy:nadir_roots" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_tree.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/nadir_tree.json new file mode 100644 index 00000000..2dc06c48 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/royal_tree_large.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/royal_tree_large.json new file mode 100644 index 00000000..ee418feb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/royal_tree_large.json @@ -0,0 +1,61 @@ +{ + "type": "antarchy:royal_tree", + "config": { + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "antarchy:royal_wood", + "Properties": { + "axis": "y" + } + } + }, + "leaves_provider": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 80, + "data": { + "Name": "antarchy:royal_leaves" + } + }, + { + "weight": 20, + "data": { + "Name": "antarchy:royal_flowering_leaves" + } + } + ] + }, + "height": { + "type": "minecraft:uniform", + "min_inclusive": 27, + "max_inclusive": 30 + }, + "trunk_drift": { + "type": "minecraft:uniform", + "min_inclusive": 4, + "max_inclusive": 5 + }, + "canopy_radius": { + "type": "minecraft:uniform", + "min_inclusive": 6, + "max_inclusive": 7 + }, + "canopy_layers": { + "type": "minecraft:uniform", + "min_inclusive": 4, + "max_inclusive": 5 + }, + "branch_count": { + "type": "minecraft:uniform", + "min_inclusive": 3, + "max_inclusive": 4 + }, + "strut_count": { + "type": "minecraft:uniform", + "min_inclusive": 3, + "max_inclusive": 4 + } + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/royal_tree_medium.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/royal_tree_medium.json new file mode 100644 index 00000000..5c65ced6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/royal_tree_medium.json @@ -0,0 +1,61 @@ +{ + "type": "antarchy:royal_tree", + "config": { + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "antarchy:royal_wood", + "Properties": { + "axis": "y" + } + } + }, + "leaves_provider": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 80, + "data": { + "Name": "antarchy:royal_leaves" + } + }, + { + "weight": 20, + "data": { + "Name": "antarchy:royal_flowering_leaves" + } + } + ] + }, + "height": { + "type": "minecraft:uniform", + "min_inclusive": 23, + "max_inclusive": 27 + }, + "trunk_drift": { + "type": "minecraft:uniform", + "min_inclusive": 3, + "max_inclusive": 5 + }, + "canopy_radius": { + "type": "minecraft:uniform", + "min_inclusive": 5, + "max_inclusive": 6 + }, + "canopy_layers": { + "type": "minecraft:uniform", + "min_inclusive": 4, + "max_inclusive": 4 + }, + "branch_count": { + "type": "minecraft:uniform", + "min_inclusive": 2, + "max_inclusive": 3 + }, + "strut_count": { + "type": "minecraft:uniform", + "min_inclusive": 3, + "max_inclusive": 4 + } + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/royal_tree_small.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/royal_tree_small.json new file mode 100644 index 00000000..71e4810c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/royal_tree_small.json @@ -0,0 +1,61 @@ +{ + "type": "antarchy:royal_tree", + "config": { + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "antarchy:royal_wood", + "Properties": { + "axis": "y" + } + } + }, + "leaves_provider": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 80, + "data": { + "Name": "antarchy:royal_leaves" + } + }, + { + "weight": 20, + "data": { + "Name": "antarchy:royal_flowering_leaves" + } + } + ] + }, + "height": { + "type": "minecraft:uniform", + "min_inclusive": 20, + "max_inclusive": 23 + }, + "trunk_drift": { + "type": "minecraft:uniform", + "min_inclusive": 3, + "max_inclusive": 4 + }, + "canopy_radius": { + "type": "minecraft:uniform", + "min_inclusive": 4, + "max_inclusive": 5 + }, + "canopy_layers": { + "type": "minecraft:uniform", + "min_inclusive": 3, + "max_inclusive": 4 + }, + "branch_count": { + "type": "minecraft:uniform", + "min_inclusive": 1, + "max_inclusive": 2 + }, + "strut_count": { + "type": "minecraft:uniform", + "min_inclusive": 2, + "max_inclusive": 3 + } + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/spiraling_vines.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/spiraling_vines.json new file mode 100644 index 00000000..fb67ee97 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/spiraling_vines.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:spiraling_vines", + "config": {} +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/spiraling_vines_patch.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/spiraling_vines_patch.json new file mode 100644 index 00000000..ebd64161 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/spiraling_vines_patch.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:random_patch", + "config": { + "tries": 24, + "xz_spread": 4, + "y_spread": 2, + "feature": "antarchy:spiraling_vines" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/thoraxis_ichor_lake.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/thoraxis_ichor_lake.json new file mode 100644 index 00000000..83423330 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/thoraxis_ichor_lake.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:thoraxis_ichor_lake", + "config": {} +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/truffalo_large_tree.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/truffalo_large_tree.json new file mode 100644 index 00000000..b19984b5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/truffalo_large_tree.json @@ -0,0 +1,21 @@ +{ + "type": "antarchy:truffalo_tree", + "config": { + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "antarchy:truffalo_wood", + "Properties": { + "axis": "y" + } + } + }, + "height": { + "type": "minecraft:uniform", + "min_inclusive": 8, + "max_inclusive": 18 + }, + "tuft_radius": 2, + "tuft_height": 5 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/truffalo_tree.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/truffalo_tree.json new file mode 100644 index 00000000..60e1232e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/truffalo_tree.json @@ -0,0 +1,19 @@ +{ + "type": "antarchy:truffalo_tree", + "config": { + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "antarchy:truffalo_log", + "Properties": { + "axis": "y" + } + } + }, + "height": { + "type": "minecraft:uniform", + "min_inclusive": 4, + "max_inclusive": 9 + } + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/typhonite_spikes.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/typhonite_spikes.json new file mode 100644 index 00000000..6d4154b7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/typhonite_spikes.json @@ -0,0 +1,13 @@ +{ + "type": "antarchy:typhonite_spikes", + "config": { + "floor_to_ceiling_search_range": 10, + "radius": 4, + "max_column_height": 4, + "height_deviation": 1, + "chance_of_column_at_max_distance_from_center": 0.25, + "max_distance_from_center_affecting_chance_of_column": 4, + "max_distance_from_center_affecting_height_bias": 4, + "max_height_difference": 1 + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/typhonite_swirls.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/typhonite_swirls.json new file mode 100644 index 00000000..85d65963 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/typhonite_swirls.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:typhonite_swirls", + "config": {} +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/typhonite_veined_ore.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/typhonite_veined_ore.json new file mode 100644 index 00000000..9d798b3c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/typhonite_veined_ore.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 16, + "discard_chance_on_air_exposure": 0.35, + "targets": [ + { + "target": { + "predicate_type": "minecraft:block_match", + "block": "antarchy:typhonite" + }, + "state": { + "Name": "antarchy:veined_typhonite" + } + } + ] + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/verdant_roots.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/verdant_roots.json new file mode 100644 index 00000000..cb60451b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/verdant_roots.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "antarchy:verdant_roots", + "Properties": { + "vertical_direction": "up" + } + } + } + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/verdant_roots_patch.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/verdant_roots_patch.json new file mode 100644 index 00000000..082b442a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/verdant_roots_patch.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:random_patch", + "config": { + "tries": 40, + "xz_spread": 6, + "y_spread": 2, + "feature": "antarchy:verdant_roots" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/whirlflower.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/whirlflower.json new file mode 100644 index 00000000..03cce2a8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/whirlflower.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "antarchy:whirlflower" + } + } + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/whirlflower_patch.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/whirlflower_patch.json new file mode 100644 index 00000000..a3e41927 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/whirlflower_patch.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:random_patch", + "config": { + "tries": 1, + "xz_spread": 4, + "y_spread": 2, + "feature": "antarchy:whirlflower" + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/wormy_caves_mucus.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/wormy_caves_mucus.json new file mode 100644 index 00000000..cd829c25 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/configured_feature/wormy_caves_mucus.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:multiface_growth", + "config": { + "block": "antarchy:mucus", + "search_range": 16, + "can_place_on_floor": true, + "can_place_on_ceiling": true, + "can_place_on_wall": true, + "chance_of_spreading": 0.72, + "can_be_placed_on": [ + "antarchy:loam", + "minecraft:mud", + "antarchy:myrmite" + ] + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/density_function/thoraxis_underside_density.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/density_function/thoraxis_underside_density.json new file mode 100644 index 00000000..ac00e892 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/density_function/thoraxis_underside_density.json @@ -0,0 +1,39 @@ +{ + "type": "minecraft:squeeze", + "argument": { + "type": "minecraft:mul", + "argument1": 0.72, + "argument2": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_y": -96, + "to_y": -1, + "from_value": -2.0, + "to_value": 1.05 + }, + "argument2": { + "type": "minecraft:mul", + "argument1": 0.42, + "argument2": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:mul", + "argument1": 0.9, + "argument2": "antarchy:thoraxis_underside_noise" + }, + "argument2": { + "type": "minecraft:mul", + "argument1": 0.35, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:surface", + "xz_scale": 1.0, + "y_scale": 0.0 + } + } + } + } + } + } +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/density_function/thoraxis_underside_noise.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/density_function/thoraxis_underside_noise.json new file mode 100644 index 00000000..591bc83f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/density_function/thoraxis_underside_noise.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:old_blended_noise", + "smear_scale_multiplier": 4.0, + "xz_factor": 80.0, + "xz_scale": 0.12, + "y_factor": 64.0, + "y_scale": 0.08 +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/noise/elythia_terrain_roughness.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/noise/elythia_terrain_roughness.json new file mode 100644 index 00000000..9641ed0e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/noise/elythia_terrain_roughness.json @@ -0,0 +1,9 @@ +{ + "firstOctave": -5, + "amplitudes": [ + 1.0, + 0.8, + 0.5, + 0.3 + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/duskbell.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/duskbell.json new file mode 100644 index 00000000..3c7c0343 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/duskbell.json @@ -0,0 +1,4 @@ +{ + "feature": "antarchy:duskbell", + "placement": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/duskbells.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/duskbells.json new file mode 100644 index 00000000..71fddb62 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/duskbells.json @@ -0,0 +1,52 @@ +{ + "feature": "antarchy:duskbell_patch", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 1, + "max_inclusive": 3 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 112 + }, + "max_inclusive": { + "absolute": 244 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "max_steps": 32, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "target_condition": { + "type": "minecraft:matching_blocks", + "blocks": "antarchy:nadir_nyxium" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": { + "type": "minecraft:constant", + "value": -1 + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/glimmering_reeds.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/glimmering_reeds.json new file mode 100644 index 00000000..d40c98f3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/glimmering_reeds.json @@ -0,0 +1,19 @@ +{ + "feature": "antarchy:glimmering_reeds", + "placement": [ + { + "type": "minecraft:count", + "count": 4 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/gorevine.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/gorevine.json new file mode 100644 index 00000000..71d1db54 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/gorevine.json @@ -0,0 +1,4 @@ +{ + "feature": "antarchy:gorevine", + "placement": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/gorevines.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/gorevines.json new file mode 100644 index 00000000..38c7af65 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/gorevines.json @@ -0,0 +1,51 @@ +{ + "feature": "antarchy:gorevine_patch", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 6, + "max_inclusive": 12 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 8 + }, + "max_inclusive": { + "absolute": 220 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "max_steps": 24, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "target_condition": { + "type": "minecraft:solid" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": { + "type": "minecraft:constant", + "value": -1 + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/kings_tree_grid.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/kings_tree_grid.json new file mode 100644 index 00000000..1606d647 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/kings_tree_grid.json @@ -0,0 +1,4 @@ +{ + "feature": "antarchy:kings_tree_grid", + "placement": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_fern.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_fern.json new file mode 100644 index 00000000..91c4b8c1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_fern.json @@ -0,0 +1,4 @@ +{ + "feature": "antarchy:nadir_fern", + "placement": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_ferns.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_ferns.json new file mode 100644 index 00000000..e6ba47fd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_ferns.json @@ -0,0 +1,52 @@ +{ + "feature": "antarchy:nadir_fern_patch", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 5, + "max_inclusive": 9 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 112 + }, + "max_inclusive": { + "absolute": 244 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "max_steps": 32, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "target_condition": { + "type": "minecraft:matching_blocks", + "blocks": "antarchy:nadir_nyxium" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": { + "type": "minecraft:constant", + "value": -1 + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_forest_ceiling_sapling_single.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_forest_ceiling_sapling_single.json new file mode 100644 index 00000000..b2500a46 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_forest_ceiling_sapling_single.json @@ -0,0 +1,26 @@ +{ + "feature": "antarchy:nadir_forest_ceiling_sapling", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + { + "type": "minecraft:matching_block_tag", + "tag": "antarchy:nadir_sapling_supports", + "offset": [ + 0, + 1, + 0 + ] + } + ] + } + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_forest_ceiling_saplings.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_forest_ceiling_saplings.json new file mode 100644 index 00000000..82e2b483 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_forest_ceiling_saplings.json @@ -0,0 +1,52 @@ +{ + "feature": "antarchy:nadir_forest_ceiling_sapling_patch", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 3, + "max_inclusive": 6 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 112 + }, + "max_inclusive": { + "absolute": 244 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "max_steps": 32, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "target_condition": { + "type": "minecraft:matching_block_tag", + "tag": "antarchy:nadir_sapling_supports" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": { + "type": "minecraft:constant", + "value": -1 + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_forest_ceiling_trees.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_forest_ceiling_trees.json new file mode 100644 index 00000000..a46fa463 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_forest_ceiling_trees.json @@ -0,0 +1,52 @@ +{ + "feature": "antarchy:nadir_tree", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 5, + "max_inclusive": 9 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 112 + }, + "max_inclusive": { + "absolute": 244 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "max_steps": 32, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "target_condition": { + "type": "minecraft:matching_block_tag", + "tag": "antarchy:nadir_sapling_supports" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": { + "type": "minecraft:constant", + "value": -1 + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_roots.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_roots.json new file mode 100644 index 00000000..a167621b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_roots.json @@ -0,0 +1,4 @@ +{ + "feature": "antarchy:nadir_roots", + "placement": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_roots_patch.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_roots_patch.json new file mode 100644 index 00000000..88be00f2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/nadir_roots_patch.json @@ -0,0 +1,52 @@ +{ + "feature": "antarchy:nadir_roots_patch", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 24, + "max_inclusive": 40 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 8 + }, + "max_inclusive": { + "absolute": 240 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "max_steps": 32, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "target_condition": { + "type": "minecraft:matching_blocks", + "blocks": "antarchy:nadir_nyxium" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": { + "type": "minecraft:constant", + "value": -1 + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/spiraling_vines.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/spiraling_vines.json new file mode 100644 index 00000000..a61ef846 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/spiraling_vines.json @@ -0,0 +1,4 @@ +{ + "feature": "antarchy:spiraling_vines", + "placement": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/spiraling_vines_patch.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/spiraling_vines_patch.json new file mode 100644 index 00000000..514318dc --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/spiraling_vines_patch.json @@ -0,0 +1,52 @@ +{ + "feature": "antarchy:spiraling_vines_patch", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 5, + "max_inclusive": 10 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 8 + }, + "max_inclusive": { + "absolute": 240 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "max_steps": 32, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "target_condition": { + "type": "minecraft:matching_blocks", + "blocks": "antarchy:verdant_nyxium" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": { + "type": "minecraft:constant", + "value": 1 + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/thoraxis_ichor_lake.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/thoraxis_ichor_lake.json new file mode 100644 index 00000000..5ef5b1e4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/thoraxis_ichor_lake.json @@ -0,0 +1,23 @@ +{ + "feature": "antarchy:thoraxis_ichor_lake", + "placement": [ + { + "type": "minecraft:count", + "count": 1 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { "absolute": 1 }, + "max_inclusive": { "absolute": 1 } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/truffalo_forest_trees.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/truffalo_forest_trees.json new file mode 100644 index 00000000..40d1edaa --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/truffalo_forest_trees.json @@ -0,0 +1,31 @@ +{ + "feature": "antarchy:truffalo_tree", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "weight": 2, + "data": 1 + }, + { + "weight": 3, + "data": 0 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/truffalo_large_forest_trees.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/truffalo_large_forest_trees.json new file mode 100644 index 00000000..9e4be354 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/truffalo_large_forest_trees.json @@ -0,0 +1,19 @@ +{ + "feature": "antarchy:truffalo_large_tree", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 96 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/typhonite_spikes.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/typhonite_spikes.json new file mode 100644 index 00000000..62000750 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/typhonite_spikes.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:typhonite_spikes", + "placement": [ + { + "type": "minecraft:count", + "count": 6 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 16 + }, + "max_inclusive": { + "below_top": 16 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/typhonite_swirls.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/typhonite_swirls.json new file mode 100644 index 00000000..e2ccf309 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/typhonite_swirls.json @@ -0,0 +1,19 @@ +{ + "feature": "antarchy:typhonite_swirls", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 8 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/typhonite_veined_ore.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/typhonite_veined_ore.json new file mode 100644 index 00000000..6f2d2b7d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/typhonite_veined_ore.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:typhonite_veined_ore", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 8, + "max_inclusive": 12 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { "absolute": 8 }, + "max_inclusive": { "absolute": 220 } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/verdant_roots.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/verdant_roots.json new file mode 100644 index 00000000..b41d4426 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/verdant_roots.json @@ -0,0 +1,4 @@ +{ + "feature": "antarchy:verdant_roots", + "placement": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/verdant_roots_patch.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/verdant_roots_patch.json new file mode 100644 index 00000000..9c22d609 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/verdant_roots_patch.json @@ -0,0 +1,52 @@ +{ + "feature": "antarchy:verdant_roots_patch", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 24, + "max_inclusive": 40 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 8 + }, + "max_inclusive": { + "absolute": 240 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "max_steps": 32, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "target_condition": { + "type": "minecraft:matching_blocks", + "blocks": "antarchy:verdant_nyxium" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": { + "type": "minecraft:constant", + "value": 1 + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/vortex_expanse_typhonite_spikes.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/vortex_expanse_typhonite_spikes.json new file mode 100644 index 00000000..877b3e80 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/vortex_expanse_typhonite_spikes.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:typhonite_spikes", + "placement": [ + { + "type": "minecraft:count", + "count": 18 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 16 + }, + "max_inclusive": { + "below_top": 16 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/whirlflower.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/whirlflower.json new file mode 100644 index 00000000..f92e9c57 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/whirlflower.json @@ -0,0 +1,4 @@ +{ + "feature": "antarchy:whirlflower", + "placement": [] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/whirlflower_patch.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/whirlflower_patch.json new file mode 100644 index 00000000..6fc2c462 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/whirlflower_patch.json @@ -0,0 +1,52 @@ +{ + "feature": "antarchy:whirlflower_patch", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 2, + "max_inclusive": 5 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 8 + }, + "max_inclusive": { + "absolute": 240 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "max_steps": 32, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "target_condition": { + "type": "minecraft:matching_blocks", + "blocks": "antarchy:verdant_nyxium" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": { + "type": "minecraft:constant", + "value": 1 + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_creepvine.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_creepvine.json new file mode 100644 index 00000000..eccfb999 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_creepvine.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:cavaryn_creepvine", + "placement": [ + { + "type": "minecraft:count", + "count": 28 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 8 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_ground_molting_vines.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_ground_molting_vines.json new file mode 100644 index 00000000..d9985f9a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_ground_molting_vines.json @@ -0,0 +1,31 @@ +{ + "feature": "antarchy:ground_molting_vines", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 10, + "max_inclusive": 16 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 8 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_hanging_creeproots.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_hanging_creeproots.json new file mode 100644 index 00000000..49f6cf24 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_hanging_creeproots.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:hanging_creeproots", + "placement": [ + { + "type": "minecraft:count", + "count": 32 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 8 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_molting_vines.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_molting_vines.json new file mode 100644 index 00000000..44af6c83 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_molting_vines.json @@ -0,0 +1,31 @@ +{ + "feature": "antarchy:molting_vines", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 12, + "max_inclusive": 18 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 8 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_mucus.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_mucus.json new file mode 100644 index 00000000..2ed3df08 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_mucus.json @@ -0,0 +1,31 @@ +{ + "feature": "antarchy:wormy_caves_mucus", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 64, + "max_inclusive": 96 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 8 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/structure/kings_tree.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/structure/kings_tree.json new file mode 100644 index 00000000..600cb1ce --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/structure/kings_tree.json @@ -0,0 +1,23 @@ +{ + "type": "integrated_api:generic_structure", + "start_pool": "antarchy:kings_tree/kings_tree", + "size": 12, + "max_distance_from_center": 512, + "terrain_height_radius_check": 4, + "allowed_terrain_height_range": 14, + "valid_biome_radius_check": 1, + "biomes": "#antarchy:has_structure/kings_tree_biomes", + "step": "surface_structures", + "enhanced_terrain_adaptation": { + "type": "integrated_api:none" + }, + "project_start_to_heightmap": "WORLD_SURFACE_WG", + "start_height": { + "type": "minecraft:constant", + "value": { + "absolute": 0 + } + }, + "spawn_overrides": {}, + "liquid_settings": "ignore_waterlogging" +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/template_pool/kings_tree/kings_tree.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/template_pool/kings_tree/kings_tree.json new file mode 100644 index 00000000..9e8d31a4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/template_pool/kings_tree/kings_tree.json @@ -0,0 +1,22 @@ +{ + "name": "antarchy:kings_tree/kings_tree", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 1, + "element": { + "location": "antarchy:kings_tree/kings_tree1", + "processors": "antarchy:generic_processor", + "projection": "rigid", + "enhanced_terrain_adaptation": { + "type": "integrated_api:custom", + "carves": true, + "beards": true, + "kernel_size": 35, + "kernel_distance": 35 + }, + "element_type": "integrated_api:integrated_api_single_pool_element" + } + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/template_pool/kings_tree/kings_tree1.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/template_pool/kings_tree/kings_tree1.json new file mode 100644 index 00000000..dd1f23f7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/template_pool/kings_tree/kings_tree1.json @@ -0,0 +1,22 @@ +{ + "name": "antarchy:kings_tree/kings_tree1", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 1, + "element": { + "location": "antarchy:kings_tree/kings_tree2", + "processors": "antarchy:generic_processor", + "projection": "rigid", + "enhanced_terrain_adaptation": { + "type": "integrated_api:custom", + "carves": true, + "beards": true, + "kernel_size": 35, + "kernel_distance": 35 + }, + "element_type": "integrated_api:integrated_api_single_pool_element" + } + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/template_pool/kings_tree/kings_tree3.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/template_pool/kings_tree/kings_tree3.json new file mode 100644 index 00000000..5dc88b5b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/template_pool/kings_tree/kings_tree3.json @@ -0,0 +1,22 @@ +{ + "name": "antarchy:kings_tree/kings_tree3", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 1, + "element": { + "location": "antarchy:kings_tree/kings_tree3", + "processors": "antarchy:generic_processor", + "projection": "rigid", + "enhanced_terrain_adaptation": { + "type": "integrated_api:custom", + "carves": true, + "beards": true, + "kernel_size": 35, + "kernel_distance": 35 + }, + "element_type": "integrated_api:integrated_api_single_pool_element" + } + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/template_pool/kings_tree/kings_tree4.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/template_pool/kings_tree/kings_tree4.json new file mode 100644 index 00000000..39a3812c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/template_pool/kings_tree/kings_tree4.json @@ -0,0 +1,22 @@ +{ + "name": "antarchy:kings_tree/kings_tree4", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 1, + "element": { + "location": "antarchy:kings_tree/kings_tree4", + "processors": "antarchy:generic_processor", + "projection": "rigid", + "enhanced_terrain_adaptation": { + "type": "integrated_api:custom", + "carves": true, + "beards": true, + "kernel_size": 35, + "kernel_distance": 35 + }, + "element_type": "integrated_api:integrated_api_single_pool_element" + } + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/antarchy/worldgen/template_pool/kings_tree/kings_tree_bottom.json b/common-1.20.1/src/main/resources/data/antarchy/worldgen/template_pool/kings_tree/kings_tree_bottom.json new file mode 100644 index 00000000..15b2406e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/antarchy/worldgen/template_pool/kings_tree/kings_tree_bottom.json @@ -0,0 +1,22 @@ +{ + "name": "antarchy:kings_tree/kings_tree_bottom", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 1, + "element": { + "location": "antarchy:kings_tree/kings_tree_bottom", + "processors": "antarchy:generic_processor", + "projection": "rigid", + "enhanced_terrain_adaptation": { + "type": "integrated_api:custom", + "carves": true, + "beards": true, + "kernel_size": 35, + "kernel_distance": 35 + }, + "element_type": "integrated_api:integrated_api_single_pool_element" + } + } + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/fence_gates.json b/common-1.20.1/src/main/resources/data/c/tags/block/fence_gates.json new file mode 100644 index 00000000..628a0416 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/fence_gates.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_fence_gate" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/ores.json b/common-1.20.1/src/main/resources/data/c/tags/block/ores.json new file mode 100644 index 00000000..48c82ae3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/ores.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "#c:ores/coal", + "#c:ores/titanium", + "#c:ores/uranium" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/ores/bluestone.json b/common-1.20.1/src/main/resources/data/c/tags/block/ores/bluestone.json new file mode 100644 index 00000000..264d7d72 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/ores/bluestone.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:bluestone_ore" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/ores/coal.json b/common-1.20.1/src/main/resources/data/c/tags/block/ores/coal.json new file mode 100644 index 00000000..dd5065b6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/ores/coal.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:myrmite_coal_ore" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/ores/titanium.json b/common-1.20.1/src/main/resources/data/c/tags/block/ores/titanium.json new file mode 100644 index 00000000..51a3cb8b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/ores/titanium.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:titanium_ore", + "antarchy:deepslate_titanium_ore" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/ores/uranium.json b/common-1.20.1/src/main/resources/data/c/tags/block/ores/uranium.json new file mode 100644 index 00000000..004de06d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/ores/uranium.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:uranium_ore", + "antarchy:deepslate_uranium_ore" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/ores_in_ground/deepslate.json b/common-1.20.1/src/main/resources/data/c/tags/block/ores_in_ground/deepslate.json new file mode 100644 index 00000000..a18a1543 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/ores_in_ground/deepslate.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:deepslate_uranium_ore", + "antarchy:deepslate_titanium_ore" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/ores_in_ground/myrmite.json b/common-1.20.1/src/main/resources/data/c/tags/block/ores_in_ground/myrmite.json new file mode 100644 index 00000000..dd5065b6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/ores_in_ground/myrmite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:myrmite_coal_ore" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/ores_in_ground/stone.json b/common-1.20.1/src/main/resources/data/c/tags/block/ores_in_ground/stone.json new file mode 100644 index 00000000..5d96296f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/ores_in_ground/stone.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:uranium_ore", + "antarchy:titanium_ore" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/sandstone/blocks.json b/common-1.20.1/src/main/resources/data/c/tags/block/sandstone/blocks.json new file mode 100644 index 00000000..62958bac --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/sandstone/blocks.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:dream_sandstone", + "antarchy:chiseled_dream_sandstone", + "antarchy:cut_dream_sandstone", + "antarchy:smooth_dream_sandstone" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/sandstone/slabs.json b/common-1.20.1/src/main/resources/data/c/tags/block/sandstone/slabs.json new file mode 100644 index 00000000..6d2c70e8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/sandstone/slabs.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "antarchy:dream_sandstone_slab", + "antarchy:smooth_dream_sandstone_slab", + "antarchy:cut_dream_sandstone_slab" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/sandstone/stairs.json b/common-1.20.1/src/main/resources/data/c/tags/block/sandstone/stairs.json new file mode 100644 index 00000000..896f6fad --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/sandstone/stairs.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:dream_sandstone_stairs", + "antarchy:smooth_dream_sandstone_stairs" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/stones.json b/common-1.20.1/src/main/resources/data/c/tags/block/stones.json new file mode 100644 index 00000000..83c265b0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/stones.json @@ -0,0 +1,4 @@ +{ + "values": [ + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/storage_blocks.json b/common-1.20.1/src/main/resources/data/c/tags/block/storage_blocks.json new file mode 100644 index 00000000..7ada88fb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/storage_blocks.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "#c:storage_blocks/uranium", + "#c:storage_blocks/raw_uranium", + "#c:storage_blocks/titanium", + "#c:storage_blocks/raw_titanium" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/storage_blocks/raw_titanium.json b/common-1.20.1/src/main/resources/data/c/tags/block/storage_blocks/raw_titanium.json new file mode 100644 index 00000000..4b5d6f93 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/storage_blocks/raw_titanium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:raw_titanium_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/storage_blocks/raw_uranium.json b/common-1.20.1/src/main/resources/data/c/tags/block/storage_blocks/raw_uranium.json new file mode 100644 index 00000000..d27b02b0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/storage_blocks/raw_uranium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:raw_uranium_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/storage_blocks/titanium.json b/common-1.20.1/src/main/resources/data/c/tags/block/storage_blocks/titanium.json new file mode 100644 index 00000000..68fda782 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/storage_blocks/titanium.json @@ -0,0 +1,14 @@ +{ + "replace": false, + "values": [ + "antarchy:titanium_block", + "antarchy:cut_titanium", + "antarchy:cut_titanium_slab", + "antarchy:cut_titanium_stairs", + "antarchy:chiseled_titanium", + "antarchy:titanium_door", + "antarchy:titanium_trapdoor", + "antarchy:titanium_bars", + "antarchy:titanium_bulb" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/block/storage_blocks/uranium.json b/common-1.20.1/src/main/resources/data/c/tags/block/storage_blocks/uranium.json new file mode 100644 index 00000000..29a144b3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/block/storage_blocks/uranium.json @@ -0,0 +1,14 @@ +{ + "replace": false, + "values": [ + "antarchy:uranium_block", + "antarchy:cut_uranium", + "antarchy:cut_uranium_slab", + "antarchy:cut_uranium_stairs", + "antarchy:chiseled_uranium", + "antarchy:uranium_door", + "antarchy:uranium_trapdoor", + "antarchy:uranium_bars", + "antarchy:uranium_bulb" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/animal_foods.json b/common-1.20.1/src/main/resources/data/c/tags/item/animal_foods.json new file mode 100644 index 00000000..31cdfa7a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/animal_foods.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:moleworm", + "antarchy:raw_bug_meat", + "antarchy:cooked_bug_meat", + "antarchy:raw_venison", + "antarchy:cooked_venison" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/armors.json b/common-1.20.1/src/main/resources/data/c/tags/item/armors.json new file mode 100644 index 00000000..78f746df --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/armors.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "#c:boots", + "#c:leggings", + "#c:chestplates", + "#c:helmets" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/axes.json b/common-1.20.1/src/main/resources/data/c/tags/item/axes.json new file mode 100644 index 00000000..4660868c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/axes.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_axe", + "antarchy:battle_axe", + "antarchy:royal_assailant_battleaxe" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/boots.json b/common-1.20.1/src/main/resources/data/c/tags/item/boots.json new file mode 100644 index 00000000..8a5ef992 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/boots.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_boots", + "antarchy:nightmare_boots", + "antarchy:blood_crystal_boots", + "antarchy:primordial_boots", + "antarchy:jumpy_boots", + "antarchy:royal_guardian_boots", + "antarchy:royal_assailant_boots" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/bows.json b/common-1.20.1/src/main/resources/data/c/tags/item/bows.json new file mode 100644 index 00000000..66565526 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/bows.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_bow" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/chestplates.json b/common-1.20.1/src/main/resources/data/c/tags/item/chestplates.json new file mode 100644 index 00000000..9c7ec0c9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/chestplates.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_chestplate", + "antarchy:nightmare_chestplate", + "antarchy:blood_crystal_chestplate", + "antarchy:primordial_chestplate", + "antarchy:royal_guardian_chestplate", + "antarchy:royal_assailant_chestplate" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/crossbows.json b/common-1.20.1/src/main/resources/data/c/tags/item/crossbows.json new file mode 100644 index 00000000..d0458b36 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/crossbows.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_crossbow" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/deepslates.json b/common-1.20.1/src/main/resources/data/c/tags/item/deepslates.json new file mode 100644 index 00000000..d0458b36 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/c/tags/item/elytra.json b/common-1.20.1/src/main/resources/data/c/tags/item/elytra.json new file mode 100644 index 00000000..ec0d2694 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/elytra.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:brutalfly_elytra", + "antarchy:manticore_wings" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/enchantables.json b/common-1.20.1/src/main/resources/data/c/tags/item/enchantables.json new file mode 100644 index 00000000..4c2a9e67 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/enchantables.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "antarchy:jumpy_boots", + "antarchy:royal_guardian_shield", + "antarchy:royal_assailant_staff" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/fence_gates.json b/common-1.20.1/src/main/resources/data/c/tags/item/fence_gates.json new file mode 100644 index 00000000..628a0416 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/fence_gates.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_fence_gate" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/foods.json b/common-1.20.1/src/main/resources/data/c/tags/item/foods.json new file mode 100644 index 00000000..529837ba --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/foods.json @@ -0,0 +1,29 @@ +{ + "replace": false, + "values": [ + "#c:foods/soup", + "antarchy:blood_crystal_apple", + "antarchy:cornbread", + "antarchy:popcorn", + "antarchy:peach_pie", + "antarchy:cheep", + "antarchy:broodfruit", + "antarchy:broodfruit_cobbler", + "antarchy:raw_bug_meat", + "antarchy:cooked_bug_meat", + "antarchy:raw_venison", + "antarchy:cooked_venison", + "antarchy:kraken_kalamari", + "antarchy:mud_pie", + "antarchy:high_fructose_corn_syrup", + "antarchy:spirit_apple", + "antarchy:rainbow_sugar", + "antarchy:cornea_ear", + "antarchy:moleworm", + "antarchy:peach", + "antarchy:corn", + "antarchy:raw_corndog", + "antarchy:cooked_corndog", + "antarchy:root_beer" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/foods/cooked_meat.json b/common-1.20.1/src/main/resources/data/c/tags/item/foods/cooked_meat.json new file mode 100644 index 00000000..fce61011 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/foods/cooked_meat.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "antarchy:cooked_venison", + "antarchy:cooked_bug_meat", + "antarchy:kraken_kalamari" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/foods/food_poisoning.json b/common-1.20.1/src/main/resources/data/c/tags/item/foods/food_poisoning.json new file mode 100644 index 00000000..416e8237 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/foods/food_poisoning.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:mud_pie", + "antarchy:moleworm" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/foods/fruit.json b/common-1.20.1/src/main/resources/data/c/tags/item/foods/fruit.json new file mode 100644 index 00000000..aa4f6517 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/foods/fruit.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:peach" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/foods/raw_fish.json b/common-1.20.1/src/main/resources/data/c/tags/item/foods/raw_fish.json new file mode 100644 index 00000000..12df0487 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/foods/raw_fish.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:cheep" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/foods/raw_meat.json b/common-1.20.1/src/main/resources/data/c/tags/item/foods/raw_meat.json new file mode 100644 index 00000000..999e42f3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/foods/raw_meat.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:raw_venison", + "antarchy:raw_bug_meat" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/foods/soup.json b/common-1.20.1/src/main/resources/data/c/tags/item/foods/soup.json new file mode 100644 index 00000000..0e21e13e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/foods/soup.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:cloud_shark_fin_soup" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/gems.json b/common-1.20.1/src/main/resources/data/c/tags/item/gems.json new file mode 100644 index 00000000..f61a414f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/gems.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:tigers_eye" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/helmets.json b/common-1.20.1/src/main/resources/data/c/tags/item/helmets.json new file mode 100644 index 00000000..57ca052f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/helmets.json @@ -0,0 +1,13 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_helmet", + "antarchy:nightmare_helmet", + "antarchy:moggles", + "antarchy:blood_crystal_helmet", + "antarchy:fallen_king_crown", + "antarchy:primordial_helmet", + "antarchy:royal_guardian_helmet", + "antarchy:royal_assailant_helmet" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/hoes.json b/common-1.20.1/src/main/resources/data/c/tags/item/hoes.json new file mode 100644 index 00000000..eb8474b2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/hoes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_hoe" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/ingots.json b/common-1.20.1/src/main/resources/data/c/tags/item/ingots.json new file mode 100644 index 00000000..5c8c1102 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/ingots.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "#c:ingots/titanium", + "#c:ingots/uranium" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/ingots/titanium.json b/common-1.20.1/src/main/resources/data/c/tags/item/ingots/titanium.json new file mode 100644 index 00000000..0c40bede --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/ingots/titanium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:titanium_ingot" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/ingots/uranium.json b/common-1.20.1/src/main/resources/data/c/tags/item/ingots/uranium.json new file mode 100644 index 00000000..c3391b6e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/ingots/uranium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:uranium_ingot" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/leaves.json b/common-1.20.1/src/main/resources/data/c/tags/item/leaves.json new file mode 100644 index 00000000..019600cb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/leaves.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_leaves" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/leggings.json b/common-1.20.1/src/main/resources/data/c/tags/item/leggings.json new file mode 100644 index 00000000..02c0f22b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/leggings.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_leggings", + "antarchy:nightmare_leggings", + "antarchy:blood_crystal_leggings", + "antarchy:primordial_leggings", + "antarchy:royal_guardian_leggings", + "antarchy:royal_assailant_leggings" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/nuggets.json b/common-1.20.1/src/main/resources/data/c/tags/item/nuggets.json new file mode 100644 index 00000000..787f0bcf --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/nuggets.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "#c:nuggets/titanium", + "#c:nuggets/uranium" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/nuggets/titanium.json b/common-1.20.1/src/main/resources/data/c/tags/item/nuggets/titanium.json new file mode 100644 index 00000000..fafc2765 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/nuggets/titanium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:titanium_nugget" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/nuggets/uranium.json b/common-1.20.1/src/main/resources/data/c/tags/item/nuggets/uranium.json new file mode 100644 index 00000000..33997321 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/nuggets/uranium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:uranium_nugget" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/ores.json b/common-1.20.1/src/main/resources/data/c/tags/item/ores.json new file mode 100644 index 00000000..48c82ae3 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/ores.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "#c:ores/coal", + "#c:ores/titanium", + "#c:ores/uranium" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/ores/bluestone.json b/common-1.20.1/src/main/resources/data/c/tags/item/ores/bluestone.json new file mode 100644 index 00000000..264d7d72 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/ores/bluestone.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:bluestone_ore" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/ores/coal.json b/common-1.20.1/src/main/resources/data/c/tags/item/ores/coal.json new file mode 100644 index 00000000..dd5065b6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/ores/coal.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:myrmite_coal_ore" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/ores/titanium.json b/common-1.20.1/src/main/resources/data/c/tags/item/ores/titanium.json new file mode 100644 index 00000000..51a3cb8b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/ores/titanium.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:titanium_ore", + "antarchy:deepslate_titanium_ore" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/ores/uranium.json b/common-1.20.1/src/main/resources/data/c/tags/item/ores/uranium.json new file mode 100644 index 00000000..004de06d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/ores/uranium.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:uranium_ore", + "antarchy:deepslate_uranium_ore" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/ores_in_ground/myrmite.json b/common-1.20.1/src/main/resources/data/c/tags/item/ores_in_ground/myrmite.json new file mode 100644 index 00000000..dd5065b6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/ores_in_ground/myrmite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:myrmite_coal_ore" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/pickaxes.json b/common-1.20.1/src/main/resources/data/c/tags/item/pickaxes.json new file mode 100644 index 00000000..5418fd4b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/pickaxes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_pickaxe" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/raw_materials.json b/common-1.20.1/src/main/resources/data/c/tags/item/raw_materials.json new file mode 100644 index 00000000..9d6975bd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/raw_materials.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "#c:raw_materials/titanium", + "#c:raw_materials/uranium" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/raw_materials/titanium.json b/common-1.20.1/src/main/resources/data/c/tags/item/raw_materials/titanium.json new file mode 100644 index 00000000..c0f35467 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/raw_materials/titanium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:raw_titanium" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/raw_materials/uranium.json b/common-1.20.1/src/main/resources/data/c/tags/item/raw_materials/uranium.json new file mode 100644 index 00000000..9fffc783 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/raw_materials/uranium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:raw_uranium" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/sandstone/blocks.json b/common-1.20.1/src/main/resources/data/c/tags/item/sandstone/blocks.json new file mode 100644 index 00000000..62958bac --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/sandstone/blocks.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:dream_sandstone", + "antarchy:chiseled_dream_sandstone", + "antarchy:cut_dream_sandstone", + "antarchy:smooth_dream_sandstone" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/sandstone/slabs.json b/common-1.20.1/src/main/resources/data/c/tags/item/sandstone/slabs.json new file mode 100644 index 00000000..6d2c70e8 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/sandstone/slabs.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "antarchy:dream_sandstone_slab", + "antarchy:smooth_dream_sandstone_slab", + "antarchy:cut_dream_sandstone_slab" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/sandstone/stairs.json b/common-1.20.1/src/main/resources/data/c/tags/item/sandstone/stairs.json new file mode 100644 index 00000000..896f6fad --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/sandstone/stairs.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:dream_sandstone_stairs", + "antarchy:smooth_dream_sandstone_stairs" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/seeds.json b/common-1.20.1/src/main/resources/data/c/tags/item/seeds.json new file mode 100644 index 00000000..48cf8010 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/seeds.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:corn_seeds" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/shovels.json b/common-1.20.1/src/main/resources/data/c/tags/item/shovels.json new file mode 100644 index 00000000..41d829cb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/shovels.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_shovel" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/slime_balls.json b/common-1.20.1/src/main/resources/data/c/tags/item/slime_balls.json new file mode 100644 index 00000000..74e34e54 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/slime_balls.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "minecraft:slime_ball", + "antarchy:triffid_goo" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/stones.json b/common-1.20.1/src/main/resources/data/c/tags/item/stones.json new file mode 100644 index 00000000..74e34e54 --- /dev/null +++ b/common-1.20.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.20.1/src/main/resources/data/c/tags/item/storage_blocks.json b/common-1.20.1/src/main/resources/data/c/tags/item/storage_blocks.json new file mode 100644 index 00000000..7ada88fb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/storage_blocks.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "#c:storage_blocks/uranium", + "#c:storage_blocks/raw_uranium", + "#c:storage_blocks/titanium", + "#c:storage_blocks/raw_titanium" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/storage_blocks/raw_titanium.json b/common-1.20.1/src/main/resources/data/c/tags/item/storage_blocks/raw_titanium.json new file mode 100644 index 00000000..4b5d6f93 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/storage_blocks/raw_titanium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:raw_titanium_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/storage_blocks/raw_uranium.json b/common-1.20.1/src/main/resources/data/c/tags/item/storage_blocks/raw_uranium.json new file mode 100644 index 00000000..d27b02b0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/storage_blocks/raw_uranium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:raw_uranium_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/storage_blocks/titanium.json b/common-1.20.1/src/main/resources/data/c/tags/item/storage_blocks/titanium.json new file mode 100644 index 00000000..ab4fd344 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/storage_blocks/titanium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:titanium_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/storage_blocks/uranium.json b/common-1.20.1/src/main/resources/data/c/tags/item/storage_blocks/uranium.json new file mode 100644 index 00000000..af7684d6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/storage_blocks/uranium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:uranium_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/swords.json b/common-1.20.1/src/main/resources/data/c/tags/item/swords.json new file mode 100644 index 00000000..dd8b19e2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/swords.json @@ -0,0 +1,13 @@ +{ + "replace": false, + "values": [ + "antarchy:attitude_adjuster", + "antarchy:big_bertha", + "antarchy:ultimate_sword", + "antarchy:nightmare_sword", + "antarchy:basilisk_dagger", + "antarchy:blood_crystal_katana", + "antarchy:mantis_claw", + "antarchy:royal_guardian_sword" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/tools/ranged_weapon.json b/common-1.20.1/src/main/resources/data/c/tags/item/tools/ranged_weapon.json new file mode 100644 index 00000000..9dff752f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/tools/ranged_weapon.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_bow", + "antarchy:ultimate_crossbow", + "antarchy:krakens_grasp", + "antarchy:water_cannon", + "antarchy:squidzooka", + "antarchy:rpo_launcher" + ] +} diff --git a/common-1.20.1/src/main/resources/data/c/tags/item/tools/shield.json b/common-1.20.1/src/main/resources/data/c/tags/item/tools/shield.json new file mode 100644 index 00000000..483b951c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/c/tags/item/tools/shield.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:royal_guardian_shield" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/enchantment/blast_protection.json b/common-1.20.1/src/main/resources/data/minecraft/enchantment/blast_protection.json new file mode 100644 index 00000000..47097cb0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/enchantment/blast_protection.json @@ -0,0 +1,62 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.blast_protection" + }, + "effects": { + "minecraft:attributes": [ + { + "amount": { + "type": "minecraft:linear", + "base": 0.15, + "per_level_above_first": 0.15 + }, + "attribute": "minecraft:generic.explosion_knockback_resistance", + "id": "minecraft:enchantment.blast_protection", + "operation": "add_value" + } + ], + "minecraft:damage_protection": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 2.0, + "per_level_above_first": 2.0 + } + }, + "requirements": { + "condition": "minecraft:damage_source_properties", + "predicate": { + "tags": [ + { + "expected": true, + "id": "minecraft:is_explosion" + }, + { + "expected": false, + "id": "minecraft:bypasses_invulnerability" + } + ] + } + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/armor", + "max_cost": { + "base": 13, + "per_level_above_first": 8 + }, + "max_level": 10, + "min_cost": { + "base": 5, + "per_level_above_first": 8 + }, + "slots": [ + "armor" + ], + "supported_items": "#minecraft:enchantable/armor", + "weight": 2 +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/enchantment/fire_protection.json b/common-1.20.1/src/main/resources/data/minecraft/enchantment/fire_protection.json new file mode 100644 index 00000000..d5099539 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/enchantment/fire_protection.json @@ -0,0 +1,67 @@ +{ + "anvil_cost": 2, + "description": { + "translate": "enchantment.minecraft.fire_protection" + }, + "effects": { + "minecraft:attributes": [ + { + "amount": { + "type": "minecraft:linear", + "base": -0.15, + "per_level_above_first": -0.15 + }, + "attribute": "minecraft:generic.burning_time", + "id": "minecraft:enchantment.fire_protection", + "operation": "add_multiplied_base" + } + ], + "minecraft:damage_protection": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 2.0, + "per_level_above_first": 2.0 + } + }, + "requirements": { + "condition": "minecraft:all_of", + "terms": [ + { + "condition": "minecraft:damage_source_properties", + "predicate": { + "tags": [ + { + "expected": true, + "id": "minecraft:is_fire" + }, + { + "expected": false, + "id": "minecraft:bypasses_invulnerability" + } + ] + } + } + ] + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/armor", + "max_cost": { + "base": 18, + "per_level_above_first": 8 + }, + "max_level": 10, + "min_cost": { + "base": 10, + "per_level_above_first": 8 + }, + "slots": [ + "armor" + ], + "supported_items": "#minecraft:enchantable/armor", + "weight": 5 +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/enchantment/projectile_protection.json b/common-1.20.1/src/main/resources/data/minecraft/enchantment/projectile_protection.json new file mode 100644 index 00000000..aa96bf4b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/enchantment/projectile_protection.json @@ -0,0 +1,50 @@ +{ + "anvil_cost": 2, + "description": { + "translate": "enchantment.minecraft.projectile_protection" + }, + "effects": { + "minecraft:damage_protection": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 2.0, + "per_level_above_first": 2.0 + } + }, + "requirements": { + "condition": "minecraft:damage_source_properties", + "predicate": { + "tags": [ + { + "expected": true, + "id": "minecraft:is_projectile" + }, + { + "expected": false, + "id": "minecraft:bypasses_invulnerability" + } + ] + } + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/armor", + "max_cost": { + "base": 9, + "per_level_above_first": 6 + }, + "max_level": 10, + "min_cost": { + "base": 3, + "per_level_above_first": 6 + }, + "slots": [ + "armor" + ], + "supported_items": "#minecraft:enchantable/armor", + "weight": 5 +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/enchantment/protection.json b/common-1.20.1/src/main/resources/data/minecraft/enchantment/protection.json new file mode 100644 index 00000000..bf8fafa5 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/enchantment/protection.json @@ -0,0 +1,46 @@ +{ + "anvil_cost": 1, + "description": { + "translate": "enchantment.minecraft.protection" + }, + "effects": { + "minecraft:damage_protection": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 1.0, + "per_level_above_first": 1.0 + } + }, + "requirements": { + "condition": "minecraft:damage_source_properties", + "predicate": { + "tags": [ + { + "expected": false, + "id": "minecraft:bypasses_invulnerability" + } + ] + } + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/armor", + "max_cost": { + "base": 12, + "per_level_above_first": 11 + }, + "max_level": 10, + "min_cost": { + "base": 1, + "per_level_above_first": 11 + }, + "slots": [ + "armor" + ], + "supported_items": "#minecraft:enchantable/armor", + "weight": 10 +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/loot_table/entities/magma_cube.json b/common-1.20.1/src/main/resources/data/minecraft/loot_table/entities/magma_cube.json new file mode 100644 index 00000000..4e011b10 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/loot_table/entities/magma_cube.json @@ -0,0 +1,161 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:damage_source_properties", + "predicate": { + "source_entity": { + "type": "minecraft:frog" + } + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:slime", + "size": { + "min": 2 + } + } + } + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": -2.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:magma_cream" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:damage_source_properties", + "predicate": { + "source_entity": { + "type": "minecraft:frog", + "type_specific": { + "type": "minecraft:frog", + "variant": "minecraft:warm" + } + } + } + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pearlescent_froglight" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:damage_source_properties", + "predicate": { + "source_entity": { + "type": "minecraft:frog", + "type_specific": { + "type": "minecraft:frog", + "variant": "minecraft:cold" + } + } + } + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:verdant_froglight" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:damage_source_properties", + "predicate": { + "source_entity": { + "type": "minecraft:frog", + "type_specific": { + "type": "minecraft:frog", + "variant": "minecraft:temperate" + } + } + } + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:ochre_froglight" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:damage_source_properties", + "predicate": { + "source_entity": { + "type": "minecraft:frog", + "type_specific": { + "type": "minecraft:frog", + "variant": "antarchy:elythia" + } + } + } + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "antarchy:roseate_froglight" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/magma_cube" +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/all_hanging_signs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/all_hanging_signs.json new file mode 100644 index 00000000..c0165ba4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/all_hanging_signs.json @@ -0,0 +1,15 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_hanging_sign", + "antarchy:ouranwood_wall_hanging_sign", + "antarchy:peach_hanging_sign", + "antarchy:peach_wall_hanging_sign", + "antarchy:nadir_hanging_sign", + "antarchy:nadir_wall_hanging_sign", + "antarchy:royal_hanging_sign", + "antarchy:royal_wall_hanging_sign", + "antarchy:truffalo_hanging_sign", + "antarchy:truffalo_wall_hanging_sign" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/animals_spawnable_on.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/animals_spawnable_on.json new file mode 100644 index 00000000..a5ea1c6e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/animals_spawnable_on.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:blush_moss_block", + "minecraft:moss_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/ceiling_hanging_signs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/ceiling_hanging_signs.json new file mode 100644 index 00000000..95e8093f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/ceiling_hanging_signs.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_hanging_sign", + "antarchy:peach_hanging_sign", + "antarchy:nadir_hanging_sign", + "antarchy:royal_hanging_sign", + "antarchy:truffalo_hanging_sign" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/climbable.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/climbable.json new file mode 100644 index 00000000..8b82d068 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/climbable.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "minecraft:vine", + "antarchy:creepvine", + "antarchy:molting_vines", + "antarchy:spiraling_vines", + "antarchy:gorevine" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/coral_blocks.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/coral_blocks.json new file mode 100644 index 00000000..731c04f2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/coral_blocks.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:star_coral_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/coral_plants.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/coral_plants.json new file mode 100644 index 00000000..964b717d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/coral_plants.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:star_coral" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/corals.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/corals.json new file mode 100644 index 00000000..c806e535 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/corals.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:star_coral_fan" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/dirt.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/dirt.json new file mode 100644 index 00000000..0cd9680b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/dirt.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "antarchy:infested_rooted_dirt", + "antarchy:infested_coarse_dirt", + "antarchy:umbral_moss_block", + "antarchy:blush_moss_block", + "antarchy:amber_moss_block", + "antarchy:biowart" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/doors.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/doors.json new file mode 100644 index 00000000..c4dcd7e4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/doors.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:uranium_door", + "antarchy:titanium_door", + "antarchy:nadir_door", + "antarchy:royal_door", + "antarchy:truffalo_door" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/fence_gates.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/fence_gates.json new file mode 100644 index 00000000..383608df --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/fence_gates.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_fence_gate", + "antarchy:peach_fence_gate", + "antarchy:nadir_fence_gate", + "antarchy:royal_fence_gate", + "antarchy:truffalo_fence_gate" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/flowers.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/flowers.json new file mode 100644 index 00000000..1d611adf --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/flowers.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "antarchy:camellia", + "antarchy:lotus", + "antarchy:orange_milkweed", + "antarchy:pink_milkweed", + "antarchy:spider_lily", + "antarchy:whirlflower", + "antarchy:duskbell" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/frogs_spawnable_on.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/frogs_spawnable_on.json new file mode 100644 index 00000000..a5ea1c6e --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/frogs_spawnable_on.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:blush_moss_block", + "minecraft:moss_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/leaves.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/leaves.json new file mode 100644 index 00000000..9c8be388 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/leaves.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_leaves", + "antarchy:peach_leaves" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/logs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/logs.json new file mode 100644 index 00000000..0c13e07c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/logs.json @@ -0,0 +1,28 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_log", + "antarchy:ouranwood_wood", + "antarchy:duplicator_log", + "antarchy:mossy_ouranwood_log", + "antarchy:mossy_ouranwood_wood", + "antarchy:stripped_ouranwood_log", + "antarchy:stripped_ouranwood_wood", + "antarchy:peach_log", + "antarchy:peach_wood", + "antarchy:stripped_peach_log", + "antarchy:stripped_peach_wood", + "antarchy:nadir_log", + "antarchy:nadir_wood", + "antarchy:stripped_nadir_log", + "antarchy:stripped_nadir_wood", + "antarchy:royal_log", + "antarchy:royal_wood", + "antarchy:stripped_royal_log", + "antarchy:stripped_royal_wood", + "antarchy:truffalo_log", + "antarchy:truffalo_wood", + "antarchy:stripped_truffalo_log", + "antarchy:stripped_truffalo_wood" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/logs_that_burn.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/logs_that_burn.json new file mode 100644 index 00000000..0c13e07c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/logs_that_burn.json @@ -0,0 +1,28 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_log", + "antarchy:ouranwood_wood", + "antarchy:duplicator_log", + "antarchy:mossy_ouranwood_log", + "antarchy:mossy_ouranwood_wood", + "antarchy:stripped_ouranwood_log", + "antarchy:stripped_ouranwood_wood", + "antarchy:peach_log", + "antarchy:peach_wood", + "antarchy:stripped_peach_log", + "antarchy:stripped_peach_wood", + "antarchy:nadir_log", + "antarchy:nadir_wood", + "antarchy:stripped_nadir_log", + "antarchy:stripped_nadir_wood", + "antarchy:royal_log", + "antarchy:royal_wood", + "antarchy:stripped_royal_log", + "antarchy:stripped_royal_wood", + "antarchy:truffalo_log", + "antarchy:truffalo_wood", + "antarchy:stripped_truffalo_log", + "antarchy:stripped_truffalo_wood" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/mineable/axe.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/mineable/axe.json new file mode 100644 index 00000000..a06ddf37 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/mineable/axe.json @@ -0,0 +1,97 @@ +{ + "replace": false, + "values": [ + "antarchy:duplicator_log", + "antarchy:ouranwood_log", + "antarchy:ouranwood_wood", + "antarchy:mossy_ouranwood_log", + "antarchy:mossy_ouranwood_wood", + "antarchy:stripped_ouranwood_log", + "antarchy:stripped_ouranwood_wood", + "antarchy:ouranwood_planks", + "antarchy:ouranwood_stairs", + "antarchy:ouranwood_slab", + "antarchy:ouranwood_fence", + "antarchy:ouranwood_fence_gate", + "antarchy:ouranwood_door", + "antarchy:ouranwood_trapdoor", + "antarchy:ouranwood_pressure_plate", + "antarchy:ouranwood_button", + "antarchy:ouranwood_sign", + "antarchy:ouranwood_wall_sign", + "antarchy:ouranwood_hanging_sign", + "antarchy:ouranwood_wall_hanging_sign", + "antarchy:peach_log", + "antarchy:peach_wood", + "antarchy:stripped_peach_log", + "antarchy:stripped_peach_wood", + "antarchy:peach_planks", + "antarchy:peach_stairs", + "antarchy:peach_slab", + "antarchy:peach_fence", + "antarchy:peach_fence_gate", + "antarchy:peach_door", + "antarchy:peach_trapdoor", + "antarchy:peach_pressure_plate", + "antarchy:peach_button", + "antarchy:peach_sign", + "antarchy:peach_wall_sign", + "antarchy:peach_hanging_sign", + "antarchy:peach_wall_hanging_sign", + "antarchy:dream_campfire", + "antarchy:glowcap_mushroom_block", + "antarchy:nadir_log", + "antarchy:nadir_wood", + "antarchy:stripped_nadir_log", + "antarchy:stripped_nadir_wood", + "antarchy:nadir_planks", + "antarchy:nadir_stairs", + "antarchy:nadir_slab", + "antarchy:nadir_fence", + "antarchy:nadir_fence_gate", + "antarchy:nadir_door", + "antarchy:nadir_trapdoor", + "antarchy:nadir_pressure_plate", + "antarchy:nadir_button", + "antarchy:nadir_sign", + "antarchy:nadir_wall_sign", + "antarchy:nadir_hanging_sign", + "antarchy:nadir_wall_hanging_sign", + "antarchy:royal_log", + "antarchy:royal_wood", + "antarchy:stripped_royal_log", + "antarchy:stripped_royal_wood", + "antarchy:royal_planks", + "antarchy:royal_stairs", + "antarchy:royal_slab", + "antarchy:royal_fence", + "antarchy:royal_fence_gate", + "antarchy:royal_door", + "antarchy:royal_trapdoor", + "antarchy:royal_pressure_plate", + "antarchy:royal_button", + "antarchy:royal_sign", + "antarchy:royal_wall_sign", + "antarchy:royal_hanging_sign", + "antarchy:royal_wall_hanging_sign", + "antarchy:royal_leaves", + "antarchy:royal_flowering_leaves", + "antarchy:truffalo_log", + "antarchy:truffalo_wood", + "antarchy:stripped_truffalo_log", + "antarchy:stripped_truffalo_wood", + "antarchy:truffalo_planks", + "antarchy:truffalo_stairs", + "antarchy:truffalo_slab", + "antarchy:truffalo_fence", + "antarchy:truffalo_fence_gate", + "antarchy:truffalo_door", + "antarchy:truffalo_trapdoor", + "antarchy:truffalo_pressure_plate", + "antarchy:truffalo_button", + "antarchy:truffalo_sign", + "antarchy:truffalo_wall_sign", + "antarchy:truffalo_hanging_sign", + "antarchy:truffalo_wall_hanging_sign" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/mineable/hoe.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/mineable/hoe.json new file mode 100644 index 00000000..ccbd0364 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/mineable/hoe.json @@ -0,0 +1,39 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_leaves", + "antarchy:peach_leaves", + "antarchy:corn_crop", + "antarchy:wild_corn", + "antarchy:umbral_moss_block", + "antarchy:umbral_moss_carpet", + "antarchy:blush_moss_block", + "antarchy:blush_moss_carpet", + "antarchy:amber_moss_block", + "antarchy:amber_moss_carpet", + "antarchy:lumen_froglight", + "antarchy:roseate_froglight", + "antarchy:biowart", + "antarchy:biowart_tendrils", + "antarchy:nadir_fern", + "antarchy:large_nadir_fern", + "antarchy:duskbell", + "antarchy:gorevine", "antarchy:bile_vein", + "antarchy:white_truffalo_tuft", + "antarchy:orange_truffalo_tuft", + "antarchy:magenta_truffalo_tuft", + "antarchy:light_blue_truffalo_tuft", + "antarchy:yellow_truffalo_tuft", + "antarchy:lime_truffalo_tuft", + "antarchy:pink_truffalo_tuft", + "antarchy:gray_truffalo_tuft", + "antarchy:light_gray_truffalo_tuft", + "antarchy:cyan_truffalo_tuft", + "antarchy:purple_truffalo_tuft", + "antarchy:blue_truffalo_tuft", + "antarchy:brown_truffalo_tuft", + "antarchy:green_truffalo_tuft", + "antarchy:red_truffalo_tuft", + "antarchy:black_truffalo_tuft" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json new file mode 100644 index 00000000..7de115a9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -0,0 +1,177 @@ +{ + "replace": false, + "values": [ + "antarchy:typhonite", + "antarchy:nadir_nyxium", + "antarchy:verdant_nyxium", + "antarchy:typhonite_pillar", + "antarchy:typhonite_bricks", + "antarchy:chiseled_typhonite", + "antarchy:polished_typhonite", + "antarchy:veined_typhonite", + "antarchy:typhonite_spike", + "antarchy:typhonite_stairs", + "antarchy:typhonite_slab", + "antarchy:typhonite_wall", + "antarchy:typhonite_brick_stairs", + "antarchy:typhonite_brick_slab", + "antarchy:typhonite_brick_wall", + "antarchy:polished_typhonite_stairs", + "antarchy:polished_typhonite_slab", + "antarchy:polished_typhonite_wall", + "antarchy:upper", + "antarchy:tigers_eye_block", + "antarchy:uranium_ore", + "antarchy:deepslate_uranium_ore", + "antarchy:titanium_ore", + "antarchy:deepslate_titanium_ore", + "antarchy:uranium_block", + "antarchy:raw_uranium_block", + "antarchy:cut_uranium", + "antarchy:cut_uranium_slab", + "antarchy:cut_uranium_stairs", + "antarchy:chiseled_uranium", + "antarchy:uranium_door", + "antarchy:uranium_trapdoor", + "antarchy:uranium_bars", + "antarchy:uranium_bulb", + "antarchy:titanium_block", + "antarchy:raw_titanium_block", + "antarchy:cut_titanium", + "antarchy:cut_titanium_slab", + "antarchy:cut_titanium_stairs", + "antarchy:chiseled_titanium", + "antarchy:titanium_door", + "antarchy:titanium_trapdoor", + "antarchy:titanium_bars", + "antarchy:titanium_bulb", + "antarchy:critter_cage_block", + "antarchy:nyxite", + "antarchy:polished_nyxite", + "antarchy:chiseled_nyxite", + "antarchy:nyxite_bricks", + "antarchy:nyxite_stairs", + "antarchy:nyxite_slab", + "antarchy:nyxite_wall", + "antarchy:polished_nyxite_stairs", + "antarchy:polished_nyxite_slab", + "antarchy:polished_nyxite_wall", + "antarchy:polished_nyxite_pressure_plate", + "antarchy:polished_nyxite_button", + "antarchy:nyxite_brick_stairs", + "antarchy:nyxite_brick_slab", + "antarchy:nyxite_brick_wall", + "antarchy:pale_nyxite", + "antarchy:shellstone", + "antarchy:polished_shellstone", + "antarchy:shellstone_bricks", + "antarchy:chiseled_shellstone", + "antarchy:mossy_shellstone_bricks", + "antarchy:mossy_shellstone_brick_stairs", + "antarchy:mossy_shellstone_brick_slab", + "antarchy:mossy_shellstone_brick_wall", + "antarchy:cracked_shellstone_bricks", + "antarchy:shellstone_stairs", + "antarchy:shellstone_slab", + "antarchy:shellstone_wall", + "antarchy:polished_shellstone_stairs", + "antarchy:polished_shellstone_slab", + "antarchy:polished_shellstone_wall", + "antarchy:shellstone_brick_stairs", + "antarchy:shellstone_brick_slab", + "antarchy:shellstone_brick_wall", + "antarchy:nyxite_spike", + "antarchy:potent_nyxite", + "antarchy:blood_crystal_block", + "antarchy:budding_blood_crystal", + "antarchy:small_blood_crystal_bud", + "antarchy:medium_blood_crystal_bud", + "antarchy:large_blood_crystal_bud", + "antarchy:blood_crystal_cluster", + "antarchy:dream_sandstone", + "antarchy:chiseled_dream_sandstone", + "antarchy:cut_dream_sandstone", + "antarchy:smooth_dream_sandstone", + "antarchy:dream_sandstone_stairs", + "antarchy:dream_sandstone_slab", + "antarchy:dream_sandstone_wall", + "antarchy:smooth_dream_sandstone_stairs", + "antarchy:smooth_dream_sandstone_slab", + "antarchy:cut_dream_sandstone_slab", + "antarchy:red_ant_nest", + "antarchy:star_coral", + "antarchy:star_coral_fan", + "antarchy:star_coral_wall_fan", + "antarchy:star_coral_block", + "antarchy:dead_star_coral", + "antarchy:dead_star_coral_fan", + "antarchy:dead_star_coral_wall_fan", + "antarchy:dead_star_coral_block", + "antarchy:myrmite", + "antarchy:broodstone", + "antarchy:polished_broodstone", + "antarchy:chiseled_broodstone", + "antarchy:broodstone_bricks", + "antarchy:broodstone_stairs", + "antarchy:broodstone_slab", + "antarchy:broodstone_wall", + "antarchy:polished_broodstone_stairs", + "antarchy:polished_broodstone_slab", + "antarchy:polished_broodstone_wall", + "antarchy:broodstone_brick_stairs", + "antarchy:broodstone_brick_slab", + "antarchy:broodstone_brick_wall", + "antarchy:myrmite_coal_ore", + "antarchy:broodstone_uranium_ore", + "antarchy:broodstone_titanium_ore", + "antarchy:biomite", + "antarchy:biomite_turf", + "antarchy:chitin_block", + "antarchy:chitin_spike", + "antarchy:antimetal", + "antarchy:polished_antimetal", + "antarchy:antimetal_stairs", + "antarchy:antimetal_slab", + "antarchy:polished_antimetal_stairs", + "antarchy:polished_antimetal_slab", + "antarchy:dream_lantern", + "antarchy:bluestone_ore", + "antarchy:bluestone_block", + "antarchy:vortex_lens", + "antarchy:bluestone_lamp", + "antarchy:shellstone_pillar", + "antarchy:nyxite_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.20.1/src/main/resources/data/minecraft/tags/block/mineable/shovel.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/mineable/shovel.json new file mode 100644 index 00000000..ccec4d78 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/mineable/shovel.json @@ -0,0 +1,14 @@ +{ + "replace": false, + "values": [ + "antarchy:infested_rooted_dirt", + "antarchy:infested_coarse_dirt", + "antarchy:brown_ant_nest", + "antarchy:rainbow_ant_nest", + "antarchy:termite_nest", + "antarchy:dream_sand", + "antarchy:cloud_block", + "antarchy:antigravel", + "antarchy:loam" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/moss_replaceable.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/moss_replaceable.json new file mode 100644 index 00000000..e273cf02 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/moss_replaceable.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:myrmite", + "antarchy:broodstone" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/mushroom_grow_block.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/mushroom_grow_block.json new file mode 100644 index 00000000..c52641fc --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/mushroom_grow_block.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:mycelium", + "antarchy:amber_moss_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/needs_iron_tool.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/needs_iron_tool.json new file mode 100644 index 00000000..4d243781 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/needs_iron_tool.json @@ -0,0 +1,31 @@ +{ + "replace": false, + "values": [ + "antarchy:titanium_ore", + "antarchy:deepslate_titanium_ore", + "antarchy:broodstone_titanium_ore", + "antarchy:uranium_ore", + "antarchy:deepslate_uranium_ore", + "antarchy:broodstone_uranium_ore", + "antarchy:titanium_block", + "antarchy:raw_titanium_block", + "antarchy:cut_titanium", + "antarchy:cut_titanium_slab", + "antarchy:cut_titanium_stairs", + "antarchy:chiseled_titanium", + "antarchy:titanium_door", + "antarchy:titanium_trapdoor", + "antarchy:titanium_bars", + "antarchy:titanium_bulb", + "antarchy:uranium_block", + "antarchy:raw_uranium_block", + "antarchy:cut_uranium", + "antarchy:cut_uranium_slab", + "antarchy:cut_uranium_stairs", + "antarchy:chiseled_uranium", + "antarchy:uranium_door", + "antarchy:uranium_trapdoor", + "antarchy:uranium_bars", + "antarchy:uranium_bulb" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json new file mode 100644 index 00000000..712f17f7 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json @@ -0,0 +1,51 @@ +{ + "replace": false, + "values": [ + "antarchy:shellstone", + "antarchy:polished_shellstone", + "antarchy:shellstone_bricks", + "antarchy:chiseled_shellstone", + "antarchy:mossy_shellstone_bricks", + "antarchy:mossy_shellstone_brick_stairs", + "antarchy:mossy_shellstone_brick_slab", + "antarchy:mossy_shellstone_brick_wall", + "antarchy:cracked_shellstone_bricks", + "antarchy:shellstone_stairs", + "antarchy:shellstone_slab", + "antarchy:shellstone_wall", + "antarchy:polished_shellstone_stairs", + "antarchy:polished_shellstone_slab", + "antarchy:polished_shellstone_wall", + "antarchy:shellstone_brick_stairs", + "antarchy:shellstone_brick_slab", + "antarchy:shellstone_brick_wall", + "antarchy:chitin_block", + "antarchy:broodstone", + "antarchy:polished_broodstone", + "antarchy:chiseled_broodstone", + "antarchy:broodstone_bricks", + "antarchy:broodstone_stairs", + "antarchy:broodstone_slab", + "antarchy:broodstone_wall", + "antarchy:polished_broodstone_stairs", + "antarchy:polished_broodstone_slab", + "antarchy:polished_broodstone_wall", + "antarchy:broodstone_brick_stairs", + "antarchy:broodstone_brick_slab", + "antarchy:broodstone_brick_wall", + "antarchy:biomite", + "antarchy:biomite_turf", + "antarchy:bluestone_ore", + "antarchy:bluestone_block", + "antarchy:shellstone_pillar", + "antarchy:broodstone_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.20.1/src/main/resources/data/minecraft/tags/block/planks.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/planks.json new file mode 100644 index 00000000..09b36e80 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/planks.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_planks", + "antarchy:peach_planks", + "antarchy:nadir_planks", + "antarchy:royal_planks", + "antarchy:truffalo_planks" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/sand.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/sand.json new file mode 100644 index 00000000..d79aca3c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/sand.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:dream_sand" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/saplings.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/saplings.json new file mode 100644 index 00000000..c426a796 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/saplings.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_acorn", + "antarchy:peach_sapling", + "antarchy:nadir_sapling", + "antarchy:royal_sapling", + "antarchy:truffalo_sapling" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/slabs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/slabs.json new file mode 100644 index 00000000..01a2e182 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/slabs.json @@ -0,0 +1,32 @@ +{ + "replace": false, + "values": [ + "antarchy:nyxite_slab", + "antarchy:polished_nyxite_slab", + "antarchy:nyxite_brick_slab", + "antarchy:shellstone_slab", + "antarchy:polished_shellstone_slab", + "antarchy:shellstone_brick_slab", + "antarchy:mossy_shellstone_brick_slab", + "antarchy:dream_sandstone_slab", + "antarchy:smooth_dream_sandstone_slab", + "antarchy:cut_dream_sandstone_slab", + "antarchy:typhonite_slab", + "antarchy:typhonite_brick_slab", + "antarchy:polished_typhonite_slab", + "antarchy:cut_uranium_slab", + "antarchy:cut_titanium_slab", + "antarchy:broodstone_slab", + "antarchy:polished_broodstone_slab", + "antarchy:broodstone_brick_slab", + "antarchy: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.20.1/src/main/resources/data/minecraft/tags/block/small_flowers.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/small_flowers.json new file mode 100644 index 00000000..0d084861 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/small_flowers.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:lotus", + "antarchy:spider_lily", + "antarchy:whirlflower", + "antarchy:duskbell" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/stairs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/stairs.json new file mode 100644 index 00000000..97986135 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/stairs.json @@ -0,0 +1,31 @@ +{ + "replace": false, + "values": [ + "antarchy:nyxite_stairs", + "antarchy:nyxite_brick_stairs", + "antarchy:polished_nyxite_stairs", + "antarchy:shellstone_stairs", + "antarchy:polished_shellstone_stairs", + "antarchy:shellstone_brick_stairs", + "antarchy:mossy_shellstone_brick_stairs", + "antarchy:dream_sandstone_stairs", + "antarchy:smooth_dream_sandstone_stairs", + "antarchy:typhonite_stairs", + "antarchy:typhonite_brick_stairs", + "antarchy:polished_typhonite_stairs", + "antarchy:cut_titanium_stairs", + "antarchy:cut_uranium_stairs", + "antarchy:broodstone_stairs", + "antarchy:polished_broodstone_stairs", + "antarchy:broodstone_brick_stairs", + "antarchy: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.20.1/src/main/resources/data/minecraft/tags/block/standing_signs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/standing_signs.json new file mode 100644 index 00000000..ab5622a1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/standing_signs.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_sign", + "antarchy:peach_sign", + "antarchy:nadir_sign", + "antarchy:royal_sign", + "antarchy:truffalo_sign" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/stone_buttons.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/stone_buttons.json new file mode 100644 index 00000000..bf507d60 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/stone_buttons.json @@ -0,0 +1,5 @@ +{ + "values": [ + "antarchy:polished_nyxite_button" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/stone_pressure_plates.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/stone_pressure_plates.json new file mode 100644 index 00000000..52fc3749 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/stone_pressure_plates.json @@ -0,0 +1,5 @@ +{ + "values": [ + "antarchy:polished_nyxite_pressure_plate" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/sword_efficient.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/sword_efficient.json new file mode 100644 index 00000000..6b56181d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/sword_efficient.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "antarchy:nadir_fern", + "antarchy:large_nadir_fern", + "antarchy:duskbell", + "antarchy:whirlflower", + "antarchy:spiraling_vines", + "antarchy:gorevine" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/tall_flowers.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/tall_flowers.json new file mode 100644 index 00000000..3b73dd8a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/tall_flowers.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:camellia", + "antarchy:orange_milkweed", + "antarchy:pink_milkweed", + "antarchy:large_nadir_fern" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/trapdoors.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/trapdoors.json new file mode 100644 index 00000000..617b826c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/trapdoors.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:uranium_trapdoor", + "antarchy:titanium_trapdoor", + "antarchy:nadir_trapdoor", + "antarchy:royal_trapdoor", + "antarchy:truffalo_trapdoor" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/underwater_bonemeals.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/underwater_bonemeals.json new file mode 100644 index 00000000..a8614dfb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/underwater_bonemeals.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:star_coral", + "antarchy:star_coral_wall_fan" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/vines.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/vines.json new file mode 100644 index 00000000..8b82d068 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/vines.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "minecraft:vine", + "antarchy:creepvine", + "antarchy:molting_vines", + "antarchy:spiraling_vines", + "antarchy:gorevine" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/wall_corals.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wall_corals.json new file mode 100644 index 00000000..a42a8397 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wall_corals.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:star_coral_wall_fan" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/wall_hanging_signs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wall_hanging_signs.json new file mode 100644 index 00000000..b667ea1b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wall_hanging_signs.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_wall_hanging_sign", + "antarchy:peach_wall_hanging_sign", + "antarchy:nadir_wall_hanging_sign", + "antarchy:royal_wall_hanging_sign", + "antarchy:truffalo_wall_hanging_sign" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/wall_signs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wall_signs.json new file mode 100644 index 00000000..8fb5339d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wall_signs.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_wall_sign", + "antarchy:peach_wall_sign", + "antarchy:nadir_wall_sign", + "antarchy:royal_wall_sign", + "antarchy:truffalo_wall_sign" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/walls.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/walls.json new file mode 100644 index 00000000..db0005a2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/walls.json @@ -0,0 +1,26 @@ +{ + "replace": false, + "values": [ + "antarchy:dream_sandstone_wall", + "antarchy:typhonite_wall", + "antarchy:typhonite_brick_wall", + "antarchy:polished_typhonite_wall", + "antarchy:nyxite_wall", + "antarchy:polished_nyxite_wall", + "antarchy:nyxite_brick_wall", + "antarchy:shellstone_wall", + "antarchy:polished_shellstone_wall", + "antarchy:shellstone_brick_wall", + "antarchy:mossy_shellstone_brick_wall", + "antarchy:broodstone_wall", + "antarchy:polished_broodstone_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.20.1/src/main/resources/data/minecraft/tags/block/wooden_buttons.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_buttons.json new file mode 100644 index 00000000..4c61cb72 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_buttons.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_button", + "antarchy:peach_button", + "antarchy:nadir_button", + "antarchy:royal_button", + "antarchy:truffalo_button" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_doors.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_doors.json new file mode 100644 index 00000000..9ebbfcaf --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_doors.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_door", + "antarchy:peach_door", + "antarchy:nadir_door", + "antarchy:royal_door", + "antarchy:truffalo_door" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_fences.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_fences.json new file mode 100644 index 00000000..05374ffd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_fences.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_fence", + "antarchy:peach_fence", + "antarchy:nadir_fence", + "antarchy:royal_fence", + "antarchy:truffalo_fence" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_pressure_plates.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_pressure_plates.json new file mode 100644 index 00000000..080703cf --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_pressure_plates.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_pressure_plate", + "antarchy:peach_pressure_plate", + "antarchy:nadir_pressure_plate", + "antarchy:royal_pressure_plate", + "antarchy:truffalo_pressure_plate" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_slabs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_slabs.json new file mode 100644 index 00000000..7ac806ce --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_slabs.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_slab", + "antarchy:peach_slab", + "antarchy:nadir_slab", + "antarchy:royal_slab", + "antarchy:truffalo_slab" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_stairs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_stairs.json new file mode 100644 index 00000000..642565ad --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_stairs.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_stairs", + "antarchy:peach_stairs", + "antarchy:nadir_stairs", + "antarchy:royal_stairs", + "antarchy:truffalo_stairs" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_trapdoors.json b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_trapdoors.json new file mode 100644 index 00000000..c96f6af0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/block/wooden_trapdoors.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_trapdoor", + "antarchy:peach_trapdoor", + "antarchy:nadir_trapdoor", + "antarchy:royal_trapdoor", + "antarchy:truffalo_trapdoor" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/entity_type/arthropod.json b/common-1.20.1/src/main/resources/data/minecraft/tags/entity_type/arthropod.json new file mode 100644 index 00000000..042bce23 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/entity_type/arthropod.json @@ -0,0 +1,23 @@ +{ + "values": [ + "antarchy:brown_ant", + "antarchy:red_ant", + "antarchy:rainbow_ant", + "antarchy:caterpillar", + "antarchy:butterfly", + "antarchy:brutalfly", + "antarchy:bed_bug", + "antarchy:mantis", + "antarchy:alpha_mantis", + "antarchy:jumpy_bug", + "antarchy:spit_bug", + "antarchy:stink_bug", + "antarchy:hercules_beetle", + "antarchy:creeping_horror", + "antarchy:lurking_terror", + "antarchy:rolly_polly", + "antarchy:scorpion", + "antarchy:emperor_scorpion", + "antarchy:jerry" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/axes.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/axes.json new file mode 100644 index 00000000..4660868c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/axes.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_axe", + "antarchy:battle_axe", + "antarchy:royal_assailant_battleaxe" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/boats.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/boats.json new file mode 100644 index 00000000..822f1e86 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/boats.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_boat", + "antarchy:ouranwood_chest_boat", + "antarchy:peach_boat", + "antarchy:nadir_boat", + "antarchy:royal_boat", + "antarchy:truffalo_boat" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/chest_armor.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/chest_armor.json new file mode 100644 index 00000000..9c7ec0c9 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/chest_armor.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_chestplate", + "antarchy:nightmare_chestplate", + "antarchy:blood_crystal_chestplate", + "antarchy:primordial_chestplate", + "antarchy:royal_guardian_chestplate", + "antarchy:royal_assailant_chestplate" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/chest_boats.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/chest_boats.json new file mode 100644 index 00000000..daee232b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/chest_boats.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_chest_boat", + "antarchy:peach_chest_boat", + "antarchy:nadir_chest_boat", + "antarchy:royal_chest_boat", + "antarchy:truffalo_chest_boat" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/dirt.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/dirt.json new file mode 100644 index 00000000..26f30b50 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/dirt.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "antarchy:infested_rooted_dirt", + "antarchy:infested_coarse_dirt", + "antarchy:umbral_moss_block" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/doors.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/doors.json new file mode 100644 index 00000000..c4dcd7e4 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/doors.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:uranium_door", + "antarchy:titanium_door", + "antarchy:nadir_door", + "antarchy:royal_door", + "antarchy:truffalo_door" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/bow.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/bow.json new file mode 100644 index 00000000..66565526 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/bow.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_bow" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/crossbow.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/crossbow.json new file mode 100644 index 00000000..d0458b36 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/crossbow.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_crossbow" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/durability.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/durability.json new file mode 100644 index 00000000..c6bc0cba --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/durability.json @@ -0,0 +1,49 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_axe", + "antarchy:ultimate_pickaxe", + "antarchy:ultimate_shovel", + "antarchy:ultimate_hoe", + "antarchy:ultimate_sword", + "antarchy:battle_axe", + "antarchy:big_bertha", + "antarchy:nightmare_sword", + "antarchy:basilisk_dagger", + "antarchy:ultimate_bow", + "antarchy:ultimate_crossbow", + "antarchy:brutalfly_elytra", + "antarchy:ultimate_helmet", + "antarchy:ultimate_chestplate", + "antarchy:ultimate_leggings", + "antarchy:ultimate_boots", + "antarchy:nightmare_helmet", + "antarchy:nightmare_chestplate", + "antarchy:nightmare_leggings", + "antarchy:nightmare_boots", + "antarchy:moggles", + "antarchy:blood_crystal_katana", + "antarchy:mantis_claw", + "antarchy:krakens_grasp", + "antarchy:blood_crystal_helmet", + "antarchy:blood_crystal_chestplate", + "antarchy:blood_crystal_leggings", + "antarchy:blood_crystal_boots", + "antarchy:jumpy_boots", + "antarchy:fallen_king_crown", + "antarchy:water_cannon", + "antarchy:manticore_wings", + "antarchy:royal_guardian_helmet", + "antarchy:royal_guardian_chestplate", + "antarchy:royal_guardian_leggings", + "antarchy:royal_guardian_boots", + "antarchy:royal_assailant_helmet", + "antarchy:royal_assailant_chestplate", + "antarchy:royal_assailant_leggings", + "antarchy:royal_assailant_boots", + "antarchy:royal_guardian_sword", + "antarchy:royal_assailant_battleaxe", + "antarchy:royal_guardian_shield", + "antarchy:royal_assailant_staff" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/elytra.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/elytra.json new file mode 100644 index 00000000..fd126cca --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/elytra.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "minecraft:elytra", + "antarchy:brutalfly_elytra", + "antarchy:manticore_wings" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/equippable.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/equippable.json new file mode 100644 index 00000000..11c3af02 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/equippable.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "antarchy:battle_axe", + "antarchy:ultimate_bow", + "antarchy:ultimate_crossbow", + "antarchy:brutalfly_elytra", + "antarchy:jumpy_boots", + "antarchy:manticore_wings", + "antarchy:royal_assailant_battleaxe" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/fire_aspect.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/fire_aspect.json new file mode 100644 index 00000000..ca9a3031 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/fire_aspect.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_sword", + "antarchy:big_bertha", + "antarchy:blood_crystal_katana", + "antarchy:royal_guardian_sword" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/mace.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/mace.json new file mode 100644 index 00000000..d275da3f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/mace.json @@ -0,0 +1,5 @@ +{ + "replace": false, + "values": [ + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/trident.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/trident.json new file mode 100644 index 00000000..4d4e3067 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/trident.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:krakens_grasp" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/vanishing.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/vanishing.json new file mode 100644 index 00000000..4c2a9e67 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/vanishing.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "antarchy:jumpy_boots", + "antarchy:royal_guardian_shield", + "antarchy:royal_assailant_staff" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/weapon.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/weapon.json new file mode 100644 index 00000000..e7175d79 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/enchantable/weapon.json @@ -0,0 +1,15 @@ +{ + "replace": false, + "values": [ + "antarchy:battle_axe", + "antarchy:ultimate_axe", + "antarchy:ultimate_sword", + "antarchy:big_bertha", + "antarchy:nightmare_sword", + "antarchy:basilisk_dagger", + "antarchy:blood_crystal_katana", + "antarchy:mantis_claw", + "antarchy:royal_guardian_sword", + "antarchy:royal_assailant_battleaxe" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/fence_gates.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/fence_gates.json new file mode 100644 index 00000000..383608df --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/fence_gates.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_fence_gate", + "antarchy:peach_fence_gate", + "antarchy:nadir_fence_gate", + "antarchy:royal_fence_gate", + "antarchy:truffalo_fence_gate" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/fishes.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/fishes.json new file mode 100644 index 00000000..12df0487 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/fishes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:cheep" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/flowers.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/flowers.json new file mode 100644 index 00000000..1d611adf --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/flowers.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "antarchy:camellia", + "antarchy:lotus", + "antarchy:orange_milkweed", + "antarchy:pink_milkweed", + "antarchy:spider_lily", + "antarchy:whirlflower", + "antarchy:duskbell" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/foot_armor.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/foot_armor.json new file mode 100644 index 00000000..8a5ef992 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/foot_armor.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_boots", + "antarchy:nightmare_boots", + "antarchy:blood_crystal_boots", + "antarchy:primordial_boots", + "antarchy:jumpy_boots", + "antarchy:royal_guardian_boots", + "antarchy:royal_assailant_boots" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/hanging_signs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/hanging_signs.json new file mode 100644 index 00000000..95e8093f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/hanging_signs.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_hanging_sign", + "antarchy:peach_hanging_sign", + "antarchy:nadir_hanging_sign", + "antarchy:royal_hanging_sign", + "antarchy:truffalo_hanging_sign" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/head_armor.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/head_armor.json new file mode 100644 index 00000000..57ca052f --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/head_armor.json @@ -0,0 +1,13 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_helmet", + "antarchy:nightmare_helmet", + "antarchy:moggles", + "antarchy:blood_crystal_helmet", + "antarchy:fallen_king_crown", + "antarchy:primordial_helmet", + "antarchy:royal_guardian_helmet", + "antarchy:royal_assailant_helmet" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/hoes.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/hoes.json new file mode 100644 index 00000000..eb8474b2 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/hoes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_hoe" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/horse_food.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/horse_food.json new file mode 100644 index 00000000..aa4f6517 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/horse_food.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:peach" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/leaves.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/leaves.json new file mode 100644 index 00000000..aee0c428 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/leaves.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_leaves", + "antarchy:peach_leaves" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/leg_armor.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/leg_armor.json new file mode 100644 index 00000000..02c0f22b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/leg_armor.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_leggings", + "antarchy:nightmare_leggings", + "antarchy:blood_crystal_leggings", + "antarchy:primordial_leggings", + "antarchy:royal_guardian_leggings", + "antarchy:royal_assailant_leggings" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/logs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/logs.json new file mode 100644 index 00000000..0c13e07c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/logs.json @@ -0,0 +1,28 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_log", + "antarchy:ouranwood_wood", + "antarchy:duplicator_log", + "antarchy:mossy_ouranwood_log", + "antarchy:mossy_ouranwood_wood", + "antarchy:stripped_ouranwood_log", + "antarchy:stripped_ouranwood_wood", + "antarchy:peach_log", + "antarchy:peach_wood", + "antarchy:stripped_peach_log", + "antarchy:stripped_peach_wood", + "antarchy:nadir_log", + "antarchy:nadir_wood", + "antarchy:stripped_nadir_log", + "antarchy:stripped_nadir_wood", + "antarchy:royal_log", + "antarchy:royal_wood", + "antarchy:stripped_royal_log", + "antarchy:stripped_royal_wood", + "antarchy:truffalo_log", + "antarchy:truffalo_wood", + "antarchy:stripped_truffalo_log", + "antarchy:stripped_truffalo_wood" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/logs_that_burn.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/logs_that_burn.json new file mode 100644 index 00000000..0c13e07c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/logs_that_burn.json @@ -0,0 +1,28 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_log", + "antarchy:ouranwood_wood", + "antarchy:duplicator_log", + "antarchy:mossy_ouranwood_log", + "antarchy:mossy_ouranwood_wood", + "antarchy:stripped_ouranwood_log", + "antarchy:stripped_ouranwood_wood", + "antarchy:peach_log", + "antarchy:peach_wood", + "antarchy:stripped_peach_log", + "antarchy:stripped_peach_wood", + "antarchy:nadir_log", + "antarchy:nadir_wood", + "antarchy:stripped_nadir_log", + "antarchy:stripped_nadir_wood", + "antarchy:royal_log", + "antarchy:royal_wood", + "antarchy:stripped_royal_log", + "antarchy:stripped_royal_wood", + "antarchy:truffalo_log", + "antarchy:truffalo_wood", + "antarchy:stripped_truffalo_log", + "antarchy:stripped_truffalo_wood" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/meat.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/meat.json new file mode 100644 index 00000000..6e665875 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/meat.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:raw_venison", + "antarchy:cooked_venison", + "antarchy:raw_bug_meat", + "antarchy:cooked_bug_meat" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/parrot_food.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/parrot_food.json new file mode 100644 index 00000000..48cf8010 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/parrot_food.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:corn_seeds" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/pickaxes.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/pickaxes.json new file mode 100644 index 00000000..5418fd4b --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/pickaxes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_pickaxe" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/piglin_safe_armor.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/piglin_safe_armor.json new file mode 100644 index 00000000..697a3e6d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/piglin_safe_armor.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:fallen_king_crown" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/planks.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/planks.json new file mode 100644 index 00000000..09b36e80 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/planks.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_planks", + "antarchy:peach_planks", + "antarchy:nadir_planks", + "antarchy:royal_planks", + "antarchy:truffalo_planks" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/sand.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/sand.json new file mode 100644 index 00000000..d79aca3c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/sand.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:dream_sand" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/saplings.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/saplings.json new file mode 100644 index 00000000..c426a796 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/saplings.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_acorn", + "antarchy:peach_sapling", + "antarchy:nadir_sapling", + "antarchy:royal_sapling", + "antarchy:truffalo_sapling" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/shovels.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/shovels.json new file mode 100644 index 00000000..41d829cb --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/shovels.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_shovel" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/signs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/signs.json new file mode 100644 index 00000000..ab5622a1 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/signs.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_sign", + "antarchy:peach_sign", + "antarchy:nadir_sign", + "antarchy:royal_sign", + "antarchy:truffalo_sign" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/slabs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/slabs.json new file mode 100644 index 00000000..211e4449 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/slabs.json @@ -0,0 +1,30 @@ +{ + "replace": false, + "values": [ + "antarchy:nyxite_slab", + "antarchy:polished_nyxite_slab", + "antarchy:nyxite_brick_slab", + "antarchy:shellstone_slab", + "antarchy:polished_shellstone_slab", + "antarchy:shellstone_brick_slab", + "antarchy:mossy_shellstone_brick_slab", + "antarchy:dream_sandstone_slab", + "antarchy:smooth_dream_sandstone_slab", + "antarchy:cut_dream_sandstone_slab", + "antarchy:typhonite_slab", + "antarchy:typhonite_brick_slab", + "antarchy:polished_typhonite_slab", + "antarchy:cut_uranium_slab", + "antarchy:cut_titanium_slab", + "antarchy:broodstone_slab", + "antarchy:polished_broodstone_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.20.1/src/main/resources/data/minecraft/tags/item/slime_balls.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/slime_balls.json new file mode 100644 index 00000000..1c54cc36 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/slime_balls.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:triffid_goo" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/small_flowers.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/small_flowers.json new file mode 100644 index 00000000..0d084861 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/small_flowers.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:lotus", + "antarchy:spider_lily", + "antarchy:whirlflower", + "antarchy:duskbell" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/stairs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/stairs.json new file mode 100644 index 00000000..93362172 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/stairs.json @@ -0,0 +1,29 @@ +{ + "replace": false, + "values": [ + "antarchy:nyxite_stairs", + "antarchy:nyxite_brick_stairs", + "antarchy:polished_nyxite_stairs", + "antarchy:shellstone_stairs", + "antarchy:polished_shellstone_stairs", + "antarchy:shellstone_brick_stairs", + "antarchy:mossy_shellstone_brick_stairs", + "antarchy:dream_sandstone_stairs", + "antarchy:smooth_dream_sandstone_stairs", + "antarchy:typhonite_stairs", + "antarchy:typhonite_brick_stairs", + "antarchy:polished_typhonite_stairs", + "antarchy:cut_uranium_stairs", + "antarchy:cut_titanium_stairs", + "antarchy:broodstone_stairs", + "antarchy:polished_broodstone_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.20.1/src/main/resources/data/minecraft/tags/item/stone_buttons.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/stone_buttons.json new file mode 100644 index 00000000..bf507d60 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/stone_buttons.json @@ -0,0 +1,5 @@ +{ + "values": [ + "antarchy:polished_nyxite_button" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/swords.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/swords.json new file mode 100644 index 00000000..9cc688f6 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/swords.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "antarchy:ultimate_sword", + "antarchy:nightmare_sword", + "antarchy:basilisk_dagger", + "antarchy:big_bertha", + "antarchy:blood_crystal_katana", + "antarchy:mantis_claw", + "antarchy:royal_guardian_sword" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/tall_flowers.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/tall_flowers.json new file mode 100644 index 00000000..3b73dd8a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/tall_flowers.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "antarchy:camellia", + "antarchy:orange_milkweed", + "antarchy:pink_milkweed", + "antarchy:large_nadir_fern" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/trapdoors.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/trapdoors.json new file mode 100644 index 00000000..617b826c --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/trapdoors.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:uranium_trapdoor", + "antarchy:titanium_trapdoor", + "antarchy:nadir_trapdoor", + "antarchy:royal_trapdoor", + "antarchy:truffalo_trapdoor" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/trim_materials.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/trim_materials.json new file mode 100644 index 00000000..ccedec20 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/trim_materials.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "antarchy:blood_crystal_shard", + "antarchy:nightmare_scale", + "antarchy:uranium_ingot", + "antarchy:titanium_ingot", + "antarchy:bluestone" + ] +} + + diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/trimmable_armor.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/trimmable_armor.json new file mode 100644 index 00000000..e100789d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/trimmable_armor.json @@ -0,0 +1,26 @@ +{ + "replace": true, + "values": [ + "#minecraft:chest_armor", + "#minecraft:leg_armor", + "#minecraft:foot_armor", + "minecraft:leather_helmet", + "minecraft:chainmail_helmet", + "minecraft:golden_helmet", + "minecraft:iron_helmet", + "minecraft:diamond_helmet", + "minecraft:netherite_helmet", + "minecraft:turtle_helmet", + "antarchy:ultimate_helmet", + "antarchy:nightmare_helmet", + "antarchy:primordial_helmet", + "antarchy:blood_crystal_helmet", + "antarchy:jumpy_boots", + "antarchy:tigers_eye_helmet", + "antarchy:tigers_eye_chestplate", + "antarchy:tigers_eye_leggings", + "antarchy:tigers_eye_boots", + "antarchy:royal_guardian_helmet", + "antarchy:royal_assailant_helmet" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/villager_plantable_seeds.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/villager_plantable_seeds.json new file mode 100644 index 00000000..48cf8010 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/villager_plantable_seeds.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:corn_seeds" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/vines.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/vines.json new file mode 100644 index 00000000..8b82d068 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/vines.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "minecraft:vine", + "antarchy:creepvine", + "antarchy:molting_vines", + "antarchy:spiraling_vines", + "antarchy:gorevine" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/walls.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/walls.json new file mode 100644 index 00000000..f08bd19a --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/walls.json @@ -0,0 +1,26 @@ +{ + "replace": false, + "values": [ + "antarchy:nyxite_wall", + "antarchy:polished_nyxite_wall", + "antarchy:nyxite_brick_wall", + "antarchy:shellstone_wall", + "antarchy:polished_shellstone_wall", + "antarchy:shellstone_brick_wall", + "antarchy:mossy_shellstone_brick_wall", + "antarchy:dream_sandstone_wall", + "antarchy:typhonite_wall", + "antarchy:typhonite_brick_wall", + "antarchy:polished_typhonite_wall", + "antarchy:broodstone_wall", + "antarchy:polished_broodstone_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.20.1/src/main/resources/data/minecraft/tags/item/wooden_buttons.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_buttons.json new file mode 100644 index 00000000..4c61cb72 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_buttons.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_button", + "antarchy:peach_button", + "antarchy:nadir_button", + "antarchy:royal_button", + "antarchy:truffalo_button" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_doors.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_doors.json new file mode 100644 index 00000000..9ebbfcaf --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_doors.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_door", + "antarchy:peach_door", + "antarchy:nadir_door", + "antarchy:royal_door", + "antarchy:truffalo_door" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_fences.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_fences.json new file mode 100644 index 00000000..05374ffd --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_fences.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_fence", + "antarchy:peach_fence", + "antarchy:nadir_fence", + "antarchy:royal_fence", + "antarchy:truffalo_fence" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_pressure_plates.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_pressure_plates.json new file mode 100644 index 00000000..080703cf --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_pressure_plates.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_pressure_plate", + "antarchy:peach_pressure_plate", + "antarchy:nadir_pressure_plate", + "antarchy:royal_pressure_plate", + "antarchy:truffalo_pressure_plate" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_slabs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_slabs.json new file mode 100644 index 00000000..7ac806ce --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_slabs.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_slab", + "antarchy:peach_slab", + "antarchy:nadir_slab", + "antarchy:royal_slab", + "antarchy:truffalo_slab" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_stairs.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_stairs.json new file mode 100644 index 00000000..642565ad --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_stairs.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_stairs", + "antarchy:peach_stairs", + "antarchy:nadir_stairs", + "antarchy:royal_stairs", + "antarchy:truffalo_stairs" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_trapdoors.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_trapdoors.json new file mode 100644 index 00000000..c96f6af0 --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/wooden_trapdoors.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "antarchy:ouranwood_trapdoor", + "antarchy:peach_trapdoor", + "antarchy:nadir_trapdoor", + "antarchy:royal_trapdoor", + "antarchy:truffalo_trapdoor" + ] +} diff --git a/common-1.20.1/src/main/resources/data/minecraft/tags/item/wool.json b/common-1.20.1/src/main/resources/data/minecraft/tags/item/wool.json new file mode 100644 index 00000000..5035174d --- /dev/null +++ b/common-1.20.1/src/main/resources/data/minecraft/tags/item/wool.json @@ -0,0 +1,21 @@ +{ + "replace": false, + "values": [ + "antarchy:white_truffalo_tuft", + "antarchy:orange_truffalo_tuft", + "antarchy:magenta_truffalo_tuft", + "antarchy:light_blue_truffalo_tuft", + "antarchy:yellow_truffalo_tuft", + "antarchy:lime_truffalo_tuft", + "antarchy:pink_truffalo_tuft", + "antarchy:gray_truffalo_tuft", + "antarchy:light_gray_truffalo_tuft", + "antarchy:cyan_truffalo_tuft", + "antarchy:purple_truffalo_tuft", + "antarchy:blue_truffalo_tuft", + "antarchy:brown_truffalo_tuft", + "antarchy:green_truffalo_tuft", + "antarchy:red_truffalo_tuft", + "antarchy:black_truffalo_tuft" + ] +} diff --git a/common-1.21.1/build.gradle b/common-1.21.1/build.gradle index fc895548..05dda254 100644 --- a/common-1.21.1/build.gradle +++ b/common-1.21.1/build.gradle @@ -6,7 +6,6 @@ base { archivesName = "${mod_id}-common-1.21.1" } -// Source-only module — each loader module compiles these sources itself. tasks.named('compileJava').configure { enabled = false } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/ContractionAfterimages.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/ContractionAfterimages.java new file mode 100644 index 00000000..bb40e63a --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/ContractionAfterimages.java @@ -0,0 +1,90 @@ +package com.craisinlord.antarchy.content.client; + +import com.craisinlord.antarchy.content.effect.RoyalEffectHooks; +import java.util.ArrayDeque; +import java.util.Deque; +import java.util.Iterator; +import java.util.Map; +import java.util.WeakHashMap; +import net.minecraft.core.Holder; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; + +public final class ContractionAfterimages { + public static final int MAX_SAMPLES = 10; + public static final int SAMPLE_LIFETIME_TICKS = 13; + + private static final Map> HISTORY = new WeakHashMap<>(); + + private ContractionAfterimages() { + } + + public static void tick(ClientLevel level) { + Holder holder = RoyalEffectHooks.contractedHolder(); + int now = (int) (level.getGameTime() & 0x7fffffffL); + + Iterator>> iterator = HISTORY.entrySet().iterator(); + while (iterator.hasNext()) { + LivingEntity tracked = iterator.next().getKey(); + if (tracked == null || holder == null || tracked.isRemoved() || !tracked.isAlive() + || !tracked.hasEffect(holder)) { + iterator.remove(); + } + } + if (holder == null) { + return; + } + + for (Entity entity : level.entitiesForRendering()) { + if (!(entity instanceof LivingEntity living) || living.isInvisible() || !living.hasEffect(holder)) { + continue; + } + Deque samples = HISTORY.computeIfAbsent(living, ignored -> new ArrayDeque<>()); + samples.addFirst(new Sample(living, now)); + while (samples.size() > MAX_SAMPLES) { + samples.removeLast(); + } + } + } + + public static Deque samples(LivingEntity entity) { + return HISTORY.get(entity); + } + + public static float fade(Sample sample, int now) { + float elapsed = now - sample.recordedTick; + return Math.max(0.0F, 1.0F - elapsed / SAMPLE_LIFETIME_TICKS); + } + + public static void clear() { + HISTORY.clear(); + } + + public static final class Sample { + public final double x; + public final double y; + public final double z; + public final float bodyYaw; + public final float headYaw; + public final float xRot; + public final float limbPos; + public final float limbSpeed; + public final float ageInTicks; + public final int recordedTick; + + Sample(LivingEntity entity, int recordedTick) { + this.x = entity.getX(); + this.y = entity.getY(); + this.z = entity.getZ(); + this.bodyYaw = entity.yBodyRot; + this.headYaw = entity.getYHeadRot(); + this.xRot = entity.getXRot(); + this.limbPos = entity.walkAnimation.position(); + this.limbSpeed = Math.min(entity.walkAnimation.speed(), 1.0F); + this.ageInTicks = entity.tickCount; + this.recordedTick = recordedTick; + } + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalAssailantAxeAfterimageLayer.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalAssailantAxeAfterimageLayer.java new file mode 100644 index 00000000..47fb9cdb --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalAssailantAxeAfterimageLayer.java @@ -0,0 +1,86 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.item.RoyalAssailantBattleAxeItem; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.math.Axis; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.player.AbstractClientPlayer; +import net.minecraft.client.renderer.LightTexture; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.LivingEntityRenderer; +import net.minecraft.client.renderer.entity.RenderLayerParent; +import net.minecraft.client.renderer.entity.layers.RenderLayer; +import net.minecraft.world.entity.HumanoidArm; +import net.minecraft.world.item.ItemDisplayContext; +import net.minecraft.world.item.ItemStack; + +public final class RoyalAssailantAxeAfterimageLayer extends RenderLayer> { + private static final int[] TINTS = { + 0x66FFD966, + 0x4DFFC94D, + 0x33FFB52E, + 0x1FFF8C14 + }; + + public RoyalAssailantAxeAfterimageLayer(RenderLayerParent> renderer) { + super(renderer); + } + + @Override + public void render(PoseStack poseStack, MultiBufferSource buffer, int packedLight, AbstractClientPlayer player, + float limbSwing, float limbSwingAmount, float partialTick, float ageInTicks, float netHeadYaw, + float headPitch) { + if (player.isSpectator() || player.isInvisible() || player.getAttackAnim(partialTick) <= 0.01F) { + return; + } + + ItemStack stack = player.getMainHandItem(); + HumanoidArm arm = player.getMainArm(); + if (!(stack.getItem() instanceof RoyalAssailantBattleAxeItem)) { + stack = player.getOffhandItem(); + arm = player.getMainArm() == HumanoidArm.RIGHT ? HumanoidArm.LEFT : HumanoidArm.RIGHT; + } + if (!(stack.getItem() instanceof RoyalAssailantBattleAxeItem)) { + return; + } + + VertexConsumer vertexConsumer = buffer.getBuffer(RenderType.entityTranslucent(this.getTextureLocation(player))); + float swing = player.getAttackAnim(partialTick); + for (int i = TINTS.length - 1; i >= 0; i--) { + poseStack.pushPose(); + float offset = (i + 1) * 0.08F; + poseStack.translate(0.0D, 0.0D, offset); + poseStack.mulPose(Axis.YP.rotation((i + 1) * 0.12F * (swing < 0.5F ? -1.0F : 1.0F))); + this.getParentModel().renderToBuffer( + poseStack, + vertexConsumer, + LightTexture.FULL_BRIGHT, + LivingEntityRenderer.getOverlayCoords(player, 0.0F), + TINTS[i] + ); + poseStack.popPose(); + } + + for (int i = TINTS.length - 1; i >= 0; i--) { + poseStack.pushPose(); + this.getParentModel().translateToHand(arm, poseStack); + poseStack.mulPose(Axis.YP.rotation((i + 1) * 0.12F * (swing < 0.5F ? -1.0F : 1.0F))); + Minecraft.getInstance().getItemRenderer().renderStatic( + player, + stack, + arm == HumanoidArm.RIGHT ? ItemDisplayContext.THIRD_PERSON_RIGHT_HAND : ItemDisplayContext.THIRD_PERSON_LEFT_HAND, + arm == HumanoidArm.LEFT, + poseStack, + buffer, + player.level(), + packedLight, + LivingEntityRenderer.getOverlayCoords(player, 0.0F), + player.getId() + ); + poseStack.popPose(); + } + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalAssailantBlackHoleRenderer.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalAssailantBlackHoleRenderer.java new file mode 100644 index 00000000..36ec3570 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalAssailantBlackHoleRenderer.java @@ -0,0 +1,32 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.model.RoyalBlackHoleModel; +import com.craisinlord.antarchy.content.entity.royal.RoyalAssailantBlackHoleEntity; +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 final class RoyalAssailantBlackHoleRenderer extends GeoEntityRenderer { + public RoyalAssailantBlackHoleRenderer(EntityRendererProvider.Context context) { + super(context, new RoyalBlackHoleModel<>()); + this.shadowRadius = 0.0F; + } + + @Override + public void render(RoyalAssailantBlackHoleEntity entity, float entityYaw, float partialTick, + PoseStack poseStack, MultiBufferSource bufferSource, int packedLight) { + super.render(entity, entityYaw, partialTick, poseStack, bufferSource, 0xF000F0); + } + + @Override + public @Nullable RenderType getRenderType(RoyalAssailantBlackHoleEntity 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/RoyalBossRenderer.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalBossRenderer.java index f318613e..d8a380af 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalBossRenderer.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalBossRenderer.java @@ -3,6 +3,7 @@ package com.craisinlord.antarchy.content.client.renderer; import com.craisinlord.antarchy.content.client.model.RoyalBossModel; import com.craisinlord.antarchy.content.entity.royal.RoyalBossEntity; import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import com.craisinlord.antarchy.content.entity.royal.QueenEntity; import com.craisinlord.antarchy.content.entity.royal.RoyalHead; import com.craisinlord.antarchy.content.entity.royal.beam.RoyalBeamElement; import com.craisinlord.antarchy.content.effect.RoyalEffectHooks; @@ -62,7 +63,9 @@ public class RoyalBossRenderer extends GeoEntityRenderer { if (movement.lengthSqr() < 1.0E-5D) return; RenderType afterimageType = RenderType.entityTranslucent(this.getRenderer().getTextureLocation(animatable)); VertexConsumer afterimageBuffer = bufferSource.getBuffer(afterimageType); - int[] colors = {0x66FF5F6F, 0x4DFF4D60, 0x33FF3B52, 0x1FFF2944}; + int[] colors = animatable instanceof QueenEntity + ? new int[]{0x66FF5F6F, 0x4DFF4D60, 0x33FF3B52, 0x1FFF2944} + : new int[]{0x66FFD966, 0x4DFFC94D, 0x33FFB52E, 0x1FFF8C14}; for (int i = colors.length - 1; i >= 0; i--) { poseStack.pushPose(); Vec3 offset = movement.scale(-(i + 1) * 3.0D / RoyalBossEntity.MODEL_RENDER_SCALE); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TemporalContractionAfterimageLayer.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TemporalContractionAfterimageLayer.java new file mode 100644 index 00000000..542e3048 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TemporalContractionAfterimageLayer.java @@ -0,0 +1,82 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.ContractionAfterimages; +import com.craisinlord.antarchy.content.effect.RoyalEffectHooks; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import java.util.Deque; +import net.minecraft.client.model.EntityModel; +import net.minecraft.client.renderer.LightTexture; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.LivingEntityRenderer; +import net.minecraft.client.renderer.entity.RenderLayerParent; +import net.minecraft.client.renderer.entity.layers.RenderLayer; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.LivingEntity; +import org.joml.Matrix4f; +import org.joml.Vector3f; + +public final class TemporalContractionAfterimageLayer> extends RenderLayer { + private static final int RGB = 0xFFD35A; + private static final float BASE_ALPHA = 0.42F; + private static final int SAMPLE_STRIDE = 2; + + public TemporalContractionAfterimageLayer(RenderLayerParent renderer) { + super(renderer); + } + + @Override + public void render(PoseStack poseStack, MultiBufferSource buffer, int packedLight, T entity, + float limbSwing, float limbSwingAmount, float partialTick, float ageInTicks, float netHeadYaw, + float headPitch) { + if (entity.isSpectator() || entity.isInvisible() || RoyalEffectHooks.contractedHolder() == null + || !entity.hasEffect(RoyalEffectHooks.contractedHolder())) { + return; + } + Deque samples = ContractionAfterimages.samples(entity); + if (samples == null || samples.isEmpty()) { + return; + } + + double curX = Mth.lerp(partialTick, entity.xo, entity.getX()); + double curY = Mth.lerp(partialTick, entity.yo, entity.getY()); + double curZ = Mth.lerp(partialTick, entity.zo, entity.getZ()); + int now = (int) (entity.level().getGameTime() & 0x7fffffffL); + + Matrix4f inverse = new Matrix4f(poseStack.last().pose()).invert(); + M model = this.getParentModel(); + VertexConsumer consumer = buffer.getBuffer(RenderType.entityTranslucent(this.getTextureLocation(entity))); + + int index = 0; + for (ContractionAfterimages.Sample sample : samples) { + if (index++ % SAMPLE_STRIDE != 0) { + continue; + } + double dx = sample.x - curX; + double dy = sample.y - curY; + double dz = sample.z - curZ; + if (dx * dx + dy * dy + dz * dz < 0.0025D) { + continue; + } + float fade = ContractionAfterimages.fade(sample, now); + if (fade <= 0.02F) { + continue; + } + + Vector3f local = inverse.transformDirection(new Vector3f((float) dx, (float) dy, (float) dz)); + int alpha = (int) (BASE_ALPHA * fade * 255.0F) & 0xFF; + int color = alpha << 24 | RGB; + + model.setupAnim(entity, sample.limbPos, sample.limbSpeed, sample.ageInTicks, + sample.headYaw - sample.bodyYaw, sample.xRot); + poseStack.pushPose(); + poseStack.translate(local.x, local.y, local.z); + model.renderToBuffer(poseStack, consumer, LightTexture.FULL_BRIGHT, + LivingEntityRenderer.getOverlayCoords(entity, 0.0F), color); + poseStack.popPose(); + } + + model.setupAnim(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TemporalContractionGeoLayer.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TemporalContractionGeoLayer.java new file mode 100644 index 00000000..60100f40 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TemporalContractionGeoLayer.java @@ -0,0 +1,80 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.ContractionAfterimages; +import com.craisinlord.antarchy.content.effect.RoyalEffectHooks; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import java.util.Deque; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import org.jetbrains.annotations.Nullable; +import org.joml.Matrix4f; +import org.joml.Vector3f; +import software.bernie.geckolib.animatable.GeoAnimatable; +import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.renderer.GeoRenderer; +import software.bernie.geckolib.renderer.layer.GeoRenderLayer; + +public final class TemporalContractionGeoLayer extends GeoRenderLayer { + private static final int RGB = 0xFFD35A; + private static final float BASE_ALPHA = 0.42F; + private static final int SAMPLE_STRIDE = 2; + + public TemporalContractionGeoLayer(GeoRenderer renderer) { + super(renderer); + } + + @Override + public void render(PoseStack poseStack, T animatable, BakedGeoModel bakedModel, @Nullable RenderType renderType, + MultiBufferSource bufferSource, @Nullable VertexConsumer buffer, float partialTick, + int packedLight, int packedOverlay) { + if (!(animatable instanceof Entity entity) || !(entity instanceof LivingEntity living) + || living.isInvisible() || RoyalEffectHooks.contractedHolder() == null + || !living.hasEffect(RoyalEffectHooks.contractedHolder())) { + return; + } + Deque samples = ContractionAfterimages.samples(living); + if (samples == null || samples.isEmpty()) { + return; + } + + double curX = Mth.lerp(partialTick, entity.xo, entity.getX()); + double curY = Mth.lerp(partialTick, entity.yo, entity.getY()); + double curZ = Mth.lerp(partialTick, entity.zo, entity.getZ()); + int now = (int) (entity.level().getGameTime() & 0x7fffffffL); + + Matrix4f inverse = new Matrix4f(poseStack.last().pose()).invert(); + RenderType afterimageType = RenderType.entityTranslucent(this.getRenderer().getTextureLocation(animatable)); + VertexConsumer afterimageBuffer = bufferSource.getBuffer(afterimageType); + + int index = 0; + for (ContractionAfterimages.Sample sample : samples) { + if (index++ % SAMPLE_STRIDE != 0) { + continue; + } + double dx = sample.x - curX; + double dy = sample.y - curY; + double dz = sample.z - curZ; + if (dx * dx + dy * dy + dz * dz < 0.0025D) { + continue; + } + float fade = ContractionAfterimages.fade(sample, now); + if (fade <= 0.02F) { + continue; + } + + Vector3f local = inverse.transformDirection(new Vector3f((float) dx, (float) dy, (float) dz)); + int alpha = (int) (BASE_ALPHA * fade * 255.0F) & 0xFF; + int color = alpha << 24 | RGB; + + poseStack.pushPose(); + poseStack.translate(local.x, local.y, local.z); + this.getRenderer().reRender(bakedModel, poseStack, bufferSource, animatable, afterimageType, + afterimageBuffer, partialTick, 0xF000F0, packedOverlay, color); + poseStack.popPose(); + } + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/screen/RoyalJudgmentScreen.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/screen/RoyalJudgmentScreen.java new file mode 100644 index 00000000..5b47b0a5 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/screen/RoyalJudgmentScreen.java @@ -0,0 +1,32 @@ +package com.craisinlord.antarchy.content.client.screen; + +import com.craisinlord.antarchy.content.menu.RoyalJudgmentMenu; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Inventory; + +public final class RoyalJudgmentScreen extends AbstractContainerScreen { + private static final ResourceLocation INVENTORY_TEXTURE = + ResourceLocation.withDefaultNamespace("textures/gui/container/inventory.png"); + + public RoyalJudgmentScreen(RoyalJudgmentMenu menu, Inventory inventory, Component title) { + super(menu, inventory, title); + this.imageWidth = 176; + this.imageHeight = 166; + this.inventoryLabelY = 84; + } + + @Override + protected void renderBg(GuiGraphics graphics, float partialTick, int mouseX, int mouseY) { + graphics.blit(INVENTORY_TEXTURE, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight); + int gold = 0xD8E6B84A; + graphics.fill(this.leftPos - 2, this.topPos - 2, this.leftPos + this.imageWidth + 2, this.topPos, gold); + graphics.fill(this.leftPos - 2, this.topPos + this.imageHeight, this.leftPos + this.imageWidth + 2, + this.topPos + this.imageHeight + 2, gold); + graphics.fill(this.leftPos - 2, this.topPos - 2, this.leftPos, this.topPos + this.imageHeight + 2, gold); + graphics.fill(this.leftPos + this.imageWidth, this.topPos - 2, this.leftPos + this.imageWidth + 2, + this.topPos + this.imageHeight + 2, gold); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/command/RoyalCommand.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/command/RoyalCommand.java new file mode 100644 index 00000000..2c64b331 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/command/RoyalCommand.java @@ -0,0 +1,71 @@ +package com.craisinlord.antarchy.content.command; + +import com.craisinlord.antarchy.content.entity.royal.KingEntity; +import com.craisinlord.antarchy.content.entity.royal.RoyalPunishmentType; +import com.craisinlord.antarchy.content.entity.royal.decree.RoyalDecree; +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.phys.AABB; + +public final class RoyalCommand { + private RoyalCommand() { + } + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register(Commands.literal("royal") + .requires(source -> source.hasPermission(2)) + .then(Commands.literal("decree") + .then(Commands.argument("id", StringArgumentType.word()) + .executes(RoyalCommand::activateDecree))) + .then(Commands.literal("punishment") + .then(Commands.argument("id", StringArgumentType.word()) + .executes(RoyalCommand::triggerPunishment)))); + } + + private static int activateDecree(CommandContext context) throws CommandSyntaxException { + ServerPlayer player = context.getSource().getPlayerOrException(); + KingEntity king = nearestKing(player); + if (king == null) { + context.getSource().sendFailure(Component.literal("No King found nearby.")); + return 0; + } + String id = StringArgumentType.getString(context, "id"); + if (!king.debugActivateDecree(id, player)) { + context.getSource().sendFailure(Component.literal("Unknown decree: " + id)); + return 0; + } + context.getSource().sendSuccess(() -> Component.literal("Activated decree " + id), true); + return 1; + } + + private static int triggerPunishment(CommandContext context) throws CommandSyntaxException { + ServerPlayer player = context.getSource().getPlayerOrException(); + KingEntity king = nearestKing(player); + if (king == null) { + context.getSource().sendFailure(Component.literal("No King found nearby.")); + return 0; + } + String id = StringArgumentType.getString(context, "id"); + RoyalPunishmentType type = RoyalPunishmentType.fromId(id); + if (type == null || !king.debugTriggerPunishment(type, player)) { + context.getSource().sendFailure(Component.literal("Unknown or unavailable punishment: " + id)); + return 0; + } + context.getSource().sendSuccess(() -> Component.literal("Triggered punishment " + type.id()), true); + return 1; + } + + private static KingEntity nearestKing(ServerPlayer player) { + AABB area = player.getBoundingBox().inflate(128.0D); + return player.serverLevel().getEntitiesOfClass(KingEntity.class, area, LivingEntity::isAlive).stream() + .min((left, right) -> Double.compare(left.distanceToSqr(player), right.distanceToSqr(player))) + .orElse(null); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/effect/ContractedMobEffect.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/effect/ContractedMobEffect.java new file mode 100644 index 00000000..d67c276d --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/effect/ContractedMobEffect.java @@ -0,0 +1,28 @@ +package com.craisinlord.antarchy.content.effect; + +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectCategory; +import net.minecraft.world.entity.LivingEntity; + +public final class ContractedMobEffect extends MobEffect { + public static final double RATE = 2.0D; + public static final double STRONG_RATE = 3.0D; + + public ContractedMobEffect() { + super(MobEffectCategory.BENEFICIAL, 0xD5A63A); + } + + @Override + public boolean applyEffectTick(LivingEntity entity, int amplifier) { + return true; + } + + @Override + public boolean shouldApplyEffectTickThisTick(int duration, int amplifier) { + return true; + } + + public static double rateForAmplifier(int amplifier) { + return amplifier > 0 ? STRONG_RATE : RATE; + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalAssailantBlackHoleEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalAssailantBlackHoleEntity.java new file mode 100644 index 00000000..364e41c8 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalAssailantBlackHoleEntity.java @@ -0,0 +1,49 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchyObjects; +import java.util.UUID; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; + +public final class RoyalAssailantBlackHoleEntity extends RoyalBlackHoleEntity { + public RoyalAssailantBlackHoleEntity(EntityType entityType, Level level) { + super(entityType, level); + } + + public static RoyalAssailantBlackHoleEntity create(ServerLevel level, Vec3 center, @Nullable UUID ownerId) { + RoyalAssailantBlackHoleEntity hole = new RoyalAssailantBlackHoleEntity( + AntarchyObjects.ROYAL_ASSAILANT_BLACK_HOLE.get(), level); + hole.configure(center, AntarchySettings.queenBlackHoleRadius(), + AntarchySettings.queenBlackHoleActiveTicks(), ownerId); + return hole; + } + + @Override + protected boolean risesWhileActive() { + return true; + } + + @Override + protected double timeDilationRadius() { + return Math.max(2.0D, this.radius() * 0.55D); + } + + @Override + protected boolean hasVisibleTimeDilationField() { + return false; + } + + @Override + protected int collapseDurationTicks() { + return 12; + } + + @Override + protected boolean pullsTerrainBlocks() { + return false; + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalPunishmentType.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalPunishmentType.java new file mode 100644 index 00000000..58befce3 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalPunishmentType.java @@ -0,0 +1,30 @@ +package com.craisinlord.antarchy.content.entity.royal; + +import java.util.Locale; + +public enum RoyalPunishmentType { + ROYAL_EXILE("royal_exile"), + ROYAL_TITHE("royal_tithe"), + KINGS_TARGET("kings_target"), + KINGS_SEAL("kings_seal"); + + private final String id; + + RoyalPunishmentType(String id) { + this.id = id; + } + + public String id() { + return this.id; + } + + public static RoyalPunishmentType fromId(String id) { + String normalized = id.toLowerCase(Locale.ROOT).replace('-', '_'); + for (RoyalPunishmentType type : values()) { + if (type.id.equals(normalized)) { + return type; + } + } + return null; + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/fluid/AntiwaterBubbleColumnUtil.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/fluid/AntiwaterBubbleColumnUtil.java new file mode 100644 index 00000000..4afa42da --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/fluid/AntiwaterBubbleColumnUtil.java @@ -0,0 +1,55 @@ +package com.craisinlord.antarchy.content.fluid; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.BubbleColumnBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.FluidState; + +/** Converts a full Antiwater cell next to a vanilla bubble-column source. */ +public final class AntiwaterBubbleColumnUtil { + private AntiwaterBubbleColumnUtil() { + } + + public static void update(LevelAccessor level, BlockPos pos, FluidState fluidState) { + if (!AntarchyFluidChecks.isAntiwater(fluidState) + || (!fluidState.isSource() && fluidState.getAmount() < 7)) { + return; + } + + BlockState below = level.getBlockState(pos.below()); + if (isBubbleSource(below)) { + replaceColumn(level, pos, Direction.UP, below.is(Blocks.MAGMA_BLOCK)); + return; + } + + BlockState above = level.getBlockState(pos.above()); + if (isBubbleSource(above)) { + replaceColumn(level, pos, Direction.DOWN, above.is(Blocks.MAGMA_BLOCK)); + } + } + + private static boolean isBubbleSource(BlockState state) { + return state.is(Blocks.MAGMA_BLOCK) || state.is(Blocks.SOUL_SAND); + } + + private static void replaceColumn(LevelAccessor level, BlockPos start, Direction direction, boolean dragDown) { + BlockPos.MutableBlockPos cursor = start.mutable(); + BlockState columnState = Blocks.BUBBLE_COLUMN.defaultBlockState() + .setValue(BubbleColumnBlock.DRAG_DOWN, dragDown); + + while (true) { + BlockState state = level.getBlockState(cursor); + FluidState fluidState = state.getFluidState(); + if (!AntarchyFluidChecks.isAntiwater(fluidState) + && !state.is(Blocks.BUBBLE_COLUMN)) { + return; + } + + level.setBlock(cursor, columnState, 3); + cursor.move(direction); + } + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/menu/RoyalJudgmentMenu.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/menu/RoyalJudgmentMenu.java new file mode 100644 index 00000000..5a732f52 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/menu/RoyalJudgmentMenu.java @@ -0,0 +1,66 @@ +package com.craisinlord.antarchy.content.menu; + +import com.craisinlord.antarchy.content.AntarchyObjects; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; + +public final class RoyalJudgmentMenu extends AbstractContainerMenu { + public RoyalJudgmentMenu(int containerId, Inventory inventory) { + super(AntarchyObjects.ROYAL_JUDGMENT_MENU.get(), containerId); + for (int row = 0; row < 3; row++) { + for (int column = 0; column < 9; column++) { + int inventorySlot = column + row * 9 + 9; + this.addSlot(new Slot(inventory, inventorySlot, 8 + column * 18, 18 + row * 18) { + @Override + public boolean mayPickup(Player player) { + return !RoyalJudgmentState.isSealed(player.getUUID(), this.getContainerSlot()) + && super.mayPickup(player); + } + + @Override + public boolean mayPlace(ItemStack stack) { + return !RoyalJudgmentState.isSealed(inventory.player.getUUID(), this.getContainerSlot()) + && super.mayPlace(stack); + } + }); + } + } + for (int column = 0; column < 9; column++) { + int inventorySlot = column; + this.addSlot(new Slot(inventory, inventorySlot, 8 + column * 18, 76) { + @Override + public boolean mayPickup(Player player) { + return !RoyalJudgmentState.isSealed(player.getUUID(), this.getContainerSlot()) + && super.mayPickup(player); + } + + @Override + public boolean mayPlace(ItemStack stack) { + return !RoyalJudgmentState.isSealed(inventory.player.getUUID(), this.getContainerSlot()) + && super.mayPlace(stack); + } + }); + } + } + + @Override + public boolean stillValid(Player player) { + return player.isAlive(); + } + + @Override + public ItemStack quickMoveStack(Player player, int index) { + if (index < 0 || index >= this.slots.size()) return ItemStack.EMPTY; + Slot slot = this.slots.get(index); + if (!slot.hasItem()) return ItemStack.EMPTY; + ItemStack original = slot.getItem().copy(); + ItemStack moved = slot.getItem().copy(); + if (!this.moveItemStackTo(moved, 0, this.slots.size(), true)) return ItemStack.EMPTY; + slot.setByPlayer(moved.isEmpty() ? ItemStack.EMPTY : moved); + slot.onTake(player, moved); + return original; + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/menu/RoyalJudgmentState.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/menu/RoyalJudgmentState.java new file mode 100644 index 00000000..678c79db --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/menu/RoyalJudgmentState.java @@ -0,0 +1,25 @@ +package com.craisinlord.antarchy.content.menu; + +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.UUID; + +public final class RoyalJudgmentState { + private static final Map> SEALED_SLOTS = new HashMap<>(); + + private RoyalJudgmentState() { + } + + public static void seal(UUID playerId, Set slots) { + SEALED_SLOTS.put(playerId, Set.copyOf(slots)); + } + + public static boolean isSealed(UUID playerId, int inventorySlot) { + return SEALED_SLOTS.getOrDefault(playerId, Set.of()).contains(inventorySlot); + } + + public static void clear(UUID playerId) { + SEALED_SLOTS.remove(playerId); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/KingsTreeGrid.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/KingsTreeGrid.java new file mode 100644 index 00000000..6b3db6c9 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/KingsTreeGrid.java @@ -0,0 +1,40 @@ +package com.craisinlord.antarchy.content.worldgen.elythia; + +import com.craisinlord.antarchy.Antarchy; +import net.minecraft.core.BlockPos; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.levelgen.structure.Structure; + +public final class KingsTreeGrid { + public static final int SPACING = 5_000; + public static final ResourceKey ELYTHIA = ResourceKey.create( + Registries.DIMENSION, + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "elythia") + ); + public static final ResourceKey STRUCTURE_KEY = ResourceKey.create( + Registries.STRUCTURE, + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "kings_tree") + ); + + private KingsTreeGrid() { + } + + public static int nearestCoordinate(int coordinate, boolean permitZero) { + long gridIndex = Math.round(coordinate / (double) SPACING); + if (!permitZero && gridIndex == 0) { + gridIndex = coordinate < 0 ? -1 : 1; + } + return Math.toIntExact(gridIndex * SPACING); + } + + public static BlockPos nearestTreeCenter(BlockPos origin) { + return new BlockPos( + nearestCoordinate(origin.getX(), false), + origin.getY(), + nearestCoordinate(origin.getZ(), false) + ); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/KingsTreeGridFeature.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/KingsTreeGridFeature.java new file mode 100644 index 00000000..507c614a --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/KingsTreeGridFeature.java @@ -0,0 +1,110 @@ +package com.craisinlord.antarchy.content.worldgen.elythia; + +import com.craisinlord.antarchy.Antarchy; +import com.mojang.serialization.Codec; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.levelgen.Heightmap; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.structure.BoundingBox; +import net.minecraft.world.level.levelgen.structure.templatesystem.BlockIgnoreProcessor; +import net.minecraft.world.level.levelgen.structure.templatesystem.LiquidSettings; +import net.minecraft.world.level.levelgen.structure.templatesystem.StructurePlaceSettings; +import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate; +import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplateManager; + +import java.util.Optional; + +/** Places the authored King's Tree as independently generated chunk slices on a fixed world grid. */ +public final class KingsTreeGridFeature extends Feature { + private static final int TREE_MIN_X = -191; + private static final int TREE_MAX_X = 192; + private static final int TREE_MIN_Z = -227; + private static final int TREE_MAX_Z = 227; + private static final int TREE_BOTTOM_Y = -22; + private static final int TREE_TOP_Y = 335; + + public KingsTreeGridFeature(Codec codec) { + super(codec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + WorldGenLevel level = context.level(); + ChunkPos chunk = new ChunkPos(context.origin()); + int centerX = KingsTreeGrid.nearestCoordinate(chunk.getMiddleBlockX(), true); + int centerZ = KingsTreeGrid.nearestCoordinate(chunk.getMiddleBlockZ(), true); + if (centerX == 0 || centerZ == 0) { + return false; + } + + int relativeMinX = chunk.getMinBlockX() - centerX; + int relativeMaxX = chunk.getMaxBlockX() - centerX; + int relativeMinZ = chunk.getMinBlockZ() - centerZ; + int relativeMaxZ = chunk.getMaxBlockZ() - centerZ; + if (relativeMaxX < TREE_MIN_X || relativeMinX > TREE_MAX_X + || relativeMaxZ < TREE_MIN_Z || relativeMinZ > TREE_MAX_Z) { + return false; + } + int minTileX = Math.floorDiv(relativeMinX, 16); + int maxTileX = Math.floorDiv(relativeMaxX, 16); + int minTileZ = Math.floorDiv(relativeMinZ, 16); + int maxTileZ = Math.floorDiv(relativeMaxZ, 16); + + int surfaceY = context.chunkGenerator().getBaseHeight( + centerX, + centerZ, + Heightmap.Types.WORLD_SURFACE_WG, + level, + level.getLevel().getChunkSource().randomState() + ); + int minimumBaseY = level.getMinBuildHeight() - TREE_BOTTOM_Y; + int maximumBaseY = level.getMaxBuildHeight() - 1 - TREE_TOP_Y; + int baseY = Math.clamp(surfaceY, minimumBaseY, maximumBaseY); + BlockPos treeBottomOrigin = new BlockPos(0, baseY + TREE_BOTTOM_Y, 0); + + BoundingBox chunkBounds = new BoundingBox( + chunk.getMinBlockX(), + level.getMinBuildHeight(), + chunk.getMinBlockZ(), + chunk.getMaxBlockX(), + level.getMaxBuildHeight() - 1, + chunk.getMaxBlockZ() + ); + StructurePlaceSettings settings = new StructurePlaceSettings() + .setBoundingBox(chunkBounds) + .setLiquidSettings(LiquidSettings.IGNORE_WATERLOGGING) + .addProcessor(BlockIgnoreProcessor.STRUCTURE_BLOCK); + StructureTemplateManager templates = level.getLevel().getStructureManager(); + RandomSource random = context.random(); + boolean placed = false; + + for (int tileX = minTileX; tileX <= maxTileX; tileX++) { + for (int tileZ = minTileZ; tileZ <= maxTileZ; tileZ++) { + Optional template = templates.get(tileLocation(tileX, tileZ)); + if (template.isEmpty()) { + continue; + } + BlockPos tileOrigin = treeBottomOrigin.offset(centerX + tileX * 16, 0, centerZ + tileZ * 16); + placed |= template.get().placeInWorld(level, tileOrigin, tileOrigin, settings, random, 2); + } + } + return placed; + } + + private static ResourceLocation tileLocation(int tileX, int tileZ) { + return ResourceLocation.fromNamespaceAndPath( + Antarchy.MODID, + "kings_tree_tiles/" + coordinateName(tileX) + "_" + coordinateName(tileZ) + ); + } + + private static String coordinateName(int coordinate) { + return coordinate < 0 ? "m" + -coordinate : "p" + coordinate; + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/KingsTreeLocateCommandMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/KingsTreeLocateCommandMixin.java new file mode 100644 index 00000000..8e735959 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/KingsTreeLocateCommandMixin.java @@ -0,0 +1,49 @@ +package com.craisinlord.antarchy.mixins; + +import com.craisinlord.antarchy.content.worldgen.elythia.KingsTreeGrid; +import com.mojang.datafixers.util.Pair; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.arguments.ResourceOrTagKeyArgument; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; +import net.minecraft.server.commands.LocateCommand; +import net.minecraft.world.level.levelgen.structure.Structure; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.time.Duration; + +@Mixin(LocateCommand.class) +public abstract class KingsTreeLocateCommandMixin { + @Inject(method = "locateStructure", at = @At("HEAD"), cancellable = true) + private static void antarchy$locateKingsTree( + CommandSourceStack source, + ResourceOrTagKeyArgument.Result requestedStructure, + CallbackInfoReturnable callback + ) { + boolean isKingsTree = requestedStructure.unwrap().map(KingsTreeGrid.STRUCTURE_KEY::equals, tag -> false); + if (!isKingsTree || !source.getLevel().dimension().equals(KingsTreeGrid.ELYTHIA)) { + return; + } + + BlockPos origin = BlockPos.containing(source.getPosition()); + BlockPos target = KingsTreeGrid.nearestTreeCenter(origin); + Holder.Reference holder = source.getLevel() + .registryAccess() + .registryOrThrow(Registries.STRUCTURE) + .getHolderOrThrow(KingsTreeGrid.STRUCTURE_KEY); + int result = LocateCommand.showLocateResult( + source, + requestedStructure, + origin, + Pair.of(target, holder), + "commands.locate.structure.success", + false, + Duration.ZERO + ); + callback.setReturnValue(result); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/client/EntityBoundSoundInstanceAccessor.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/client/EntityBoundSoundInstanceAccessor.java new file mode 100644 index 00000000..cad45d2e --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/client/EntityBoundSoundInstanceAccessor.java @@ -0,0 +1,12 @@ +package com.craisinlord.antarchy.mixins.client; + +import net.minecraft.client.resources.sounds.EntityBoundSoundInstance; +import net.minecraft.world.entity.Entity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(EntityBoundSoundInstance.class) +public interface EntityBoundSoundInstanceAccessor { + @Accessor("entity") + Entity antarchy$getEntity(); +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/client/InventoryScreenRotationBypassMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/client/InventoryScreenRotationBypassMixin.java new file mode 100644 index 00000000..26e94c31 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/client/InventoryScreenRotationBypassMixin.java @@ -0,0 +1,21 @@ +package com.craisinlord.antarchy.mixins.client; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import net.minecraft.client.gui.screens.inventory.InventoryScreen; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(InventoryScreen.class) +public abstract class InventoryScreenRotationBypassMixin { + @Inject(method = "renderEntityInInventoryFollowsMouse", at = @At("HEAD")) + private static void antarchy$enterRotationBypass(CallbackInfo callbackInfo) { + TimeDilationApi.enterRotationBypass(); + } + + @Inject(method = "renderEntityInInventoryFollowsMouse", at = @At("RETURN")) + private static void antarchy$exitRotationBypass(CallbackInfo callbackInfo) { + TimeDilationApi.exitRotationBypass(); + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityCrouchTimeDilationMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityCrouchTimeDilationMixin.java new file mode 100644 index 00000000..62c455c2 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/time/EntityCrouchTimeDilationMixin.java @@ -0,0 +1,23 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Pose; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(Entity.class) +public abstract class EntityCrouchTimeDilationMixin { + @Inject(method = "setPose", at = @At("HEAD"), cancellable = true) + private void antarchy$slowCrouchTransition(Pose pose, CallbackInfo callbackInfo) { + Entity entity = (Entity) (Object) this; + if (entity instanceof LivingEntity living + && (pose == Pose.CROUCHING || living.getPose() == Pose.CROUCHING) + && !TimeDilationApi.consumeTick(entity, "living_crouch")) { + callbackInfo.cancel(); + } + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/time/GeckoLibAnimationControllerTimeDilationMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/time/GeckoLibAnimationControllerTimeDilationMixin.java new file mode 100644 index 00000000..99b523a8 --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/time/GeckoLibAnimationControllerTimeDilationMixin.java @@ -0,0 +1,24 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import com.llamalad7.mixinextras.injector.ModifyReturnValue; +import net.minecraft.world.entity.Entity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import software.bernie.geckolib.animatable.GeoAnimatable; +import software.bernie.geckolib.animation.AnimationController; + +@Mixin(AnimationController.class) +public abstract class GeckoLibAnimationControllerTimeDilationMixin { + @Shadow(remap = false) + protected T animatable; + + @ModifyReturnValue(method = "adjustTick", at = @At("RETURN"), remap = false) + private double antarchy$scaleAnimationTick(double tick) { + if (this.animatable instanceof Entity entity) { + return tick * TimeDilationApi.getRate(entity); + } + return tick; + } +} diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/time/ProjectileTimeDilationMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/time/ProjectileTimeDilationMixin.java new file mode 100644 index 00000000..a471ed0b --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/time/ProjectileTimeDilationMixin.java @@ -0,0 +1,21 @@ +package com.craisinlord.antarchy.mixins.time; + +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import com.craisinlord.antarchy.content.time.TimeDilationManager; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.projectile.Projectile; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(Projectile.class) +public abstract class ProjectileTimeDilationMixin { + @Inject(method = "setOwner", at = @At("TAIL")) + private void antarchy$inheritTimeDilation(Entity owner, CallbackInfo callbackInfo) { + if (owner != null) { + TimeDilationApi.setInheritedRate((Entity) (Object) this, TimeDilationApi.getRate(owner)); + TimeDilationManager.trackPotentiallyAffected((Entity) (Object) this); + } + } +} diff --git a/common-1.21.1/src/main/resources/antarchy-common.mixins.json b/common-1.21.1/src/main/resources/antarchy-common.mixins.json index 2c5f6587..49e1cfe3 100644 --- a/common-1.21.1/src/main/resources/antarchy-common.mixins.json +++ b/common-1.21.1/src/main/resources/antarchy-common.mixins.json @@ -27,6 +27,7 @@ "GlowSquidLumenSpawnMixin", "GlowVinesUnderLeavesMixin", "GrindstoneMenuMixin", + "KingsTreeLocateCommandMixin", "LivingEntityJumpingAccessor", "CommandedMobMixin", "LivingEntityRoyalEffectsMixin", diff --git a/common-1.21.1/src/main/resources/assets/antarchy/animations/worm_medium.animation.json b/common-1.21.1/src/main/resources/assets/antarchy/animations/worm_medium.animation.json new file mode 100644 index 00000000..77075889 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/animations/worm_medium.animation.json @@ -0,0 +1,571 @@ +{ + "format_version": "1.8.0", + "animations": { + "idle": { + "loop": true, + "animation_length": 3, + "bones": { + "root": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -5] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, -5] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [0, 0, -5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -8, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, -8, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "post": { + "vector": [1.1, 0.9, 1.1] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0.9, 1.1, 0.9] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [1.1, 0.9, 1.1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "body": { + "rotation": { + "0.0": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.625": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tooth1": { + "rotation": { + "0.0": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tooth2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "post": { + "vector": [0, 0, 20] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [0, 0, -45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tooth3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "post": { + "vector": [0, 0, -20] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [0, 0, 45] + }, + "lerp_mode": "catmullrom" + } + } + }, + "tooth4": { + "rotation": { + "0.0": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "crawl": { + "loop": true, + "animation_length": 2, + "bones": { + "head": { + "rotation": { + "vector": ["-math.cos(q.anim_time*90*2+180)*4", 0, "math.cos(q.anim_time*90*4+130)*10"] + } + }, + "tooth5": { + "rotation": { + "vector": [0, 0, "-math.cos(q.anim_time*90*2*3-80)*20"] + } + }, + "tooth7": { + "rotation": { + "vector": ["-math.cos(q.anim_time*90*2*3-80)*20", 0, 0] + } + }, + "tooth6": { + "rotation": { + "vector": ["math.cos(q.anim_time*90*2*3)*20", "-math.cos(q.anim_time*90*2*3-50)*10", "-math.cos(q.anim_time*90*2*3)*20"] + } + }, + "tooth8": { + "rotation": { + "vector": ["math.cos(q.anim_time*90*2*3)*20", "math.cos(q.anim_time*90*2*3-50)*10", "math.cos(q.anim_time*90*2*3)*20"] + } + }, + "body": { + "rotation": { + "vector": ["90-math.cos(q.anim_time*90*2+90)*2", "-math.cos(q.anim_time*90*4)*5", 0] + }, + "position": { + "vector": ["math.cos(q.anim_time*90*4-70)", "-14+math.cos(q.anim_time*90*2)-1", 0] + } + }, + "tooth1": { + "rotation": { + "vector": ["-math.cos(q.anim_time*90*2*3)*20", 0, 0] + } + }, + "tooth2": { + "rotation": { + "vector": [0, 0, "-math.cos(q.anim_time*90*2*3)*20"] + } + }, + "tooth3": { + "rotation": { + "vector": [0, 0, "math.cos(q.anim_time*90*2*3)*20"] + } + }, + "tooth4": { + "rotation": { + "vector": ["math.cos(q.anim_time*90*2*3)*20", 0, 0] + } + }, + "tail": { + "rotation": { + "vector": ["-math.cos(q.anim_time*90*2+30)*5", 0, "-math.cos(q.anim_time*90*4+70)*6"] + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.21.1/src/main/resources/assets/antarchy/animations/worm_small.animation.json b/common-1.21.1/src/main/resources/assets/antarchy/animations/worm_small.animation.json new file mode 100644 index 00000000..54c816e6 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/animations/worm_small.animation.json @@ -0,0 +1,1665 @@ +{ + "format_version": "1.8.0", + "animations": { + "idle": { + "loop": true, + "animation_length": 7.5, + "bones": { + "body": { + "rotation": { + "0.0": { + "vector": [0, 0, -5] + }, + "0.0417": { + "vector": [-0.95, 0, -4.75] + }, + "0.0833": { + "vector": [-2.04, 0, -4.07] + }, + "0.125": { + "vector": [-3.13, 0, -3.12] + }, + "0.1667": { + "vector": [-4.07, 0, -2.04] + }, + "0.2083": { + "vector": [-4.75, 0, -0.95] + }, + "0.25": { + "vector": [-5, 0, 0] + }, + "0.2917": { + "vector": [-4.75, 0, 0.95] + }, + "0.3333": { + "vector": [-4.07, 0, 2.04] + }, + "0.375": { + "vector": [-3.13, 0, 3.13] + }, + "0.4167": { + "vector": [-2.04, 0, 4.07] + }, + "0.4583": { + "vector": [-0.95, 0, 4.75] + }, + "0.5": { + "vector": [0, 0, 5] + }, + "0.5417": { + "vector": [0.95, 0, 4.75] + }, + "0.5833": { + "vector": [2.04, 0, 4.07] + }, + "0.625": { + "vector": [3.12, 0, 3.13] + }, + "0.6667": { + "vector": [4.07, 0, 2.04] + }, + "0.7083": { + "vector": [4.75, 0, 0.95] + }, + "0.75": { + "vector": [5, 0, 0] + }, + "0.7917": { + "vector": [4.75, 0, -0.95] + }, + "0.8333": { + "vector": [4.07, 0, -2.04] + }, + "0.875": { + "vector": [3.12, 0, -3.12] + }, + "0.9167": { + "vector": [2.04, 0, -4.07] + }, + "0.9583": { + "vector": [0.95, 0, -4.75] + }, + "1.0": { + "vector": [0, 0, -5] + }, + "1.0417": { + "vector": [-0.95, 0, -4.75] + }, + "1.0833": { + "vector": [-2.04, 0, -4.07] + }, + "1.125": { + "vector": [-3.13, 0, -3.12] + }, + "1.1667": { + "vector": [-4.07, 0, -2.04] + }, + "1.2083": { + "vector": [-4.75, 0, -0.95] + }, + "1.25": { + "vector": [-5, 0, 0] + }, + "1.2917": { + "vector": [-4.75, 0, 0.95] + }, + "1.3333": { + "vector": [-4.07, 0, 2.04] + }, + "1.375": { + "vector": [-3.13, 0, 3.13] + }, + "1.4167": { + "vector": [-2.04, 0, 4.07] + }, + "1.4583": { + "vector": [-0.95, 0, 4.75] + }, + "1.5": { + "vector": [0, 0, 5] + }, + "1.5417": { + "vector": [0.95, 0, 4.75] + }, + "1.5833": { + "vector": [2.04, 0, 4.07] + }, + "1.625": { + "vector": [3.12, 0, 3.13] + }, + "1.6667": { + "vector": [4.07, 0, 2.04] + }, + "1.7083": { + "vector": [4.75, 0, 0.95] + }, + "1.75": { + "vector": [5, 0, 0] + }, + "1.7917": { + "vector": [4.75, 0, -0.95] + }, + "1.8333": { + "vector": [4.07, 0, -2.04] + }, + "1.875": { + "vector": [3.12, 0, -3.12] + }, + "1.9167": { + "vector": [2.04, 0, -4.07] + }, + "1.9583": { + "vector": [0.95, 0, -4.75] + }, + "2.0": { + "vector": [0, 0, -5] + }, + "2.0417": { + "vector": [-0.95, 0, -4.75] + }, + "2.0833": { + "vector": [-2.04, 0, -4.07] + }, + "2.125": { + "vector": [-3.13, 0, -3.12] + }, + "2.1667": { + "vector": [-4.07, 0, -2.04] + }, + "2.2083": { + "vector": [-4.75, 0, -0.95] + }, + "2.25": { + "vector": [-5, 0, 0] + }, + "2.2917": { + "vector": [-4.75, 0, 0.95] + }, + "2.3333": { + "vector": [-4.07, 0, 2.04] + }, + "2.375": { + "vector": [-3.13, 0, 3.13] + }, + "2.4167": { + "vector": [-2.04, 0, 4.07] + }, + "2.4583": { + "vector": [-0.95, 0, 4.75] + }, + "2.5": { + "vector": [0, 0, 5] + }, + "2.5417": { + "vector": [0.95, 0, 4.75] + }, + "2.5833": { + "vector": [2.04, 0, 4.07] + }, + "2.625": { + "vector": [3.12, 0, 3.13] + }, + "2.6667": { + "vector": [4.07, 0, 2.04] + }, + "2.7083": { + "vector": [4.75, 0, 0.95] + }, + "2.75": { + "vector": [5, 0, 0] + }, + "2.7917": { + "vector": [4.75, 0, -0.95] + }, + "2.8333": { + "vector": [4.07, 0, -2.04] + }, + "2.875": { + "vector": [3.12, 0, -3.12] + }, + "2.9167": { + "vector": [2.04, 0, -4.07] + }, + "2.9583": { + "vector": [0.95, 0, -4.75] + }, + "3.0": { + "vector": [0, 0, -5] + }, + "3.0417": { + "vector": [-0.95, 0, -4.75] + }, + "3.0833": { + "vector": [-2.04, 0, -4.07] + }, + "3.125": { + "vector": [-3.13, 0, -3.12] + }, + "3.1667": { + "vector": [-4.07, 0, -2.04] + }, + "3.2083": { + "vector": [-4.75, 0, -0.95] + }, + "3.25": { + "vector": [-5, 0, 0] + }, + "3.2917": { + "vector": [-4.75, 0, 0.95] + }, + "3.3333": { + "vector": [-4.07, 0, 2.04] + }, + "3.375": { + "vector": [-3.13, 0, 3.13] + }, + "3.4167": { + "vector": [-2.04, 0, 4.07] + }, + "3.4583": { + "vector": [-0.95, 0, 4.75] + }, + "3.5": { + "vector": [0, 0, 5] + }, + "3.5417": { + "vector": [0.95, 0, 4.75] + }, + "3.5833": { + "vector": [2.04, 0, 4.07] + }, + "3.625": { + "vector": [3.12, 0, 3.13] + }, + "3.6667": { + "vector": [4.07, 0, 2.04] + }, + "3.7083": { + "vector": [4.75, 0, 0.95] + }, + "3.75": { + "vector": [5, 0, 0] + }, + "3.7917": { + "vector": [4.75, 0, -0.95] + }, + "3.8333": { + "vector": [4.07, 0, -2.04] + }, + "3.875": { + "vector": [3.12, 0, -3.12] + }, + "3.9167": { + "vector": [2.04, 0, -4.07] + }, + "3.9583": { + "vector": [0.95, 0, -4.75] + }, + "4.0": { + "vector": [0, 0, -5] + }, + "4.0417": { + "vector": [-0.95, 0, -4.75] + }, + "4.0833": { + "vector": [-2.04, 0, -4.07] + }, + "4.125": { + "vector": [-3.13, 0, -3.12] + }, + "4.1667": { + "vector": [-4.07, 0, -2.04] + }, + "4.2083": { + "vector": [-4.75, 0, -0.95] + }, + "4.25": { + "vector": [-5, 0, 0] + }, + "4.2917": { + "vector": [-4.75, 0, 0.95] + }, + "4.3333": { + "vector": [-4.07, 0, 2.04] + }, + "4.375": { + "vector": [-3.13, 0, 3.13] + }, + "4.4167": { + "vector": [-2.04, 0, 4.07] + }, + "4.4583": { + "vector": [-0.95, 0, 4.75] + }, + "4.5": { + "vector": [0, 0, 5] + }, + "4.5417": { + "vector": [0.95, 0, 4.75] + }, + "4.5833": { + "vector": [2.04, 0, 4.07] + }, + "4.625": { + "vector": [3.12, 0, 3.13] + }, + "4.6667": { + "vector": [4.07, 0, 2.04] + }, + "4.7083": { + "vector": [4.75, 0, 0.95] + }, + "4.75": { + "vector": [5, 0, 0] + }, + "4.7917": { + "vector": [4.75, 0, -0.95] + }, + "4.8333": { + "vector": [4.07, 0, -2.04] + }, + "4.875": { + "vector": [3.12, 0, -3.12] + }, + "4.9167": { + "vector": [2.04, 0, -4.07] + }, + "4.9583": { + "vector": [0.95, 0, -4.75] + }, + "5.0": { + "vector": [0, 0, -5] + }, + "5.0417": { + "vector": [-0.95, 0, -4.75] + }, + "5.0833": { + "vector": [-2.04, 0, -4.07] + }, + "5.125": { + "vector": [-3.13, 0, -3.12] + }, + "5.1667": { + "vector": [-4.07, 0, -2.04] + }, + "5.2083": { + "vector": [-4.75, 0, -0.95] + }, + "5.25": { + "vector": [-5, 0, 0] + }, + "5.2917": { + "vector": [-4.75, 0, 0.95] + }, + "5.3333": { + "vector": [-4.07, 0, 2.04] + }, + "5.375": { + "vector": [-3.13, 0, 3.13] + }, + "5.4167": { + "vector": [-2.04, 0, 4.07] + }, + "5.4583": { + "vector": [-0.95, 0, 4.75] + }, + "5.5": { + "vector": [0, 0, 5] + }, + "5.5417": { + "vector": [0.95, 0, 4.63] + }, + "5.5833": { + "vector": [2.04, 0, 3.7] + }, + "5.625": { + "vector": [3.12, 0, 2.5] + }, + "5.6667": { + "vector": [4.07, 0, 1.3] + }, + "5.7083": { + "vector": [4.75, 0, 0.37] + }, + "5.75": { + "vector": [5, 0, 0] + }, + "5.7917": { + "vector": [4.63, 0, 0.37] + }, + "5.8333": { + "vector": [3.7, 0, 1.3] + }, + "5.875": { + "vector": [2.5, 0, 2.5] + }, + "5.9167": { + "vector": [1.3, 0, 3.7] + }, + "5.9583": { + "vector": [0.37, 0, 4.63] + }, + "6.0": { + "vector": [0, 0, 5] + }, + "6.0417": { + "vector": [0.37, 0, 4.75] + }, + "6.0833": { + "vector": [1.3, 0, 4.07] + }, + "6.125": { + "vector": [2.5, 0, 3.13] + }, + "6.1667": { + "vector": [3.7, 0, 2.04] + }, + "6.2083": { + "vector": [4.63, 0, 0.95] + }, + "6.25": { + "vector": [5, 0, 0] + }, + "6.2917": { + "vector": [4.75, 0, -0.95] + }, + "6.3333": { + "vector": [4.07, 0, -2.04] + }, + "6.375": { + "vector": [3.12, 0, -3.12] + }, + "6.4167": { + "vector": [2.04, 0, -4.07] + }, + "6.4583": { + "vector": [0.95, 0, -4.75] + }, + "6.5": { + "vector": [0, 0, -5] + }, + "6.5417": { + "vector": [-0.95, 0, -4.75] + }, + "6.5833": { + "vector": [-2.04, 0, -4.07] + }, + "6.625": { + "vector": [-3.13, 0, -3.12] + }, + "6.6667": { + "vector": [-4.07, 0, -2.04] + }, + "6.7083": { + "vector": [-4.75, 0, -0.95] + }, + "6.75": { + "vector": [-5, 0, 0] + }, + "6.7917": { + "vector": [-4.75, 0, 0.95] + }, + "6.8333": { + "vector": [-4.07, 0, 2.04] + }, + "6.875": { + "vector": [-3.13, 0, 3.13] + }, + "6.9167": { + "vector": [-2.04, 0, 4.07] + }, + "6.9583": { + "vector": [-0.95, 0, 4.75] + }, + "7.0": { + "vector": [0, 0, 5] + }, + "7.0417": { + "vector": [0.95, 0, 4.75] + }, + "7.0833": { + "vector": [2.04, 0, 4.07] + }, + "7.125": { + "vector": [3.12, 0, 3.13] + }, + "7.1667": { + "vector": [4.07, 0, 2.04] + }, + "7.2083": { + "vector": [4.75, 0, 0.95] + }, + "7.25": { + "vector": [5, 0, 0] + }, + "7.2917": { + "vector": [4.75, 0, -0.95] + }, + "7.3333": { + "vector": [4.07, 0, -2.04] + }, + "7.375": { + "vector": [3.12, 0, -3.12] + }, + "7.4167": { + "vector": [2.04, 0, -4.07] + }, + "7.4583": { + "vector": [0.95, 0, -4.75] + }, + "7.5": { + "vector": [0, 0, -5] + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.0417": { + "vector": [0, -0.03, 0] + }, + "0.0833": { + "vector": [0, -0.13, 0] + }, + "0.125": { + "vector": [0, -0.26, 0] + }, + "0.1667": { + "vector": [0, -0.42, 0] + }, + "0.2083": { + "vector": [0, -0.58, 0] + }, + "0.25": { + "vector": [0, -0.74, 0] + }, + "0.2917": { + "vector": [0, -0.87, 0] + }, + "0.3333": { + "vector": [0, -0.97, 0] + }, + "0.375": { + "vector": [0, -1, 0] + }, + "0.4167": { + "vector": [0, -0.97, 0] + }, + "0.4583": { + "vector": [0, -0.87, 0] + }, + "0.5": { + "vector": [0, -0.74, 0] + }, + "0.5417": { + "vector": [0, -0.58, 0] + }, + "0.5833": { + "vector": [0, -0.42, 0] + }, + "0.625": { + "vector": [0, -0.26, 0] + }, + "0.6667": { + "vector": [0, -0.13, 0] + }, + "0.7083": { + "vector": [0, -0.03, 0] + }, + "0.75": { + "vector": [0, 0, 0] + }, + "0.7917": { + "vector": [0, -0.03, 0] + }, + "0.8333": { + "vector": [0, -0.13, 0] + }, + "0.875": { + "vector": [0, -0.26, 0] + }, + "0.9167": { + "vector": [0, -0.42, 0] + }, + "0.9583": { + "vector": [0, -0.58, 0] + }, + "1.0": { + "vector": [0, -0.74, 0] + }, + "1.0417": { + "vector": [0, -0.87, 0] + }, + "1.0833": { + "vector": [0, -0.97, 0] + }, + "1.125": { + "vector": [0, -1, 0] + }, + "1.1667": { + "vector": [0, -0.97, 0] + }, + "1.2083": { + "vector": [0, -0.87, 0] + }, + "1.25": { + "vector": [0, -0.74, 0] + }, + "1.2917": { + "vector": [0, -0.58, 0] + }, + "1.3333": { + "vector": [0, -0.42, 0] + }, + "1.375": { + "vector": [0, -0.26, 0] + }, + "1.4167": { + "vector": [0, -0.13, 0] + }, + "1.4583": { + "vector": [0, -0.03, 0] + }, + "1.5": { + "vector": [0, 0, 0] + }, + "1.5417": { + "vector": [0, -0.03, 0] + }, + "1.5833": { + "vector": [0, -0.13, 0] + }, + "1.625": { + "vector": [0, -0.26, 0] + }, + "1.6667": { + "vector": [0, -0.42, 0] + }, + "1.7083": { + "vector": [0, -0.58, 0] + }, + "1.75": { + "vector": [0, -0.74, 0] + }, + "1.7917": { + "vector": [0, -0.87, 0] + }, + "1.8333": { + "vector": [0, -0.97, 0] + }, + "1.875": { + "vector": [0, -1, 0] + }, + "1.9167": { + "vector": [0, -0.97, 0] + }, + "1.9583": { + "vector": [0, -0.87, 0] + }, + "2.0": { + "vector": [0, -0.74, 0] + }, + "2.0417": { + "vector": [0, -0.58, 0] + }, + "2.0833": { + "vector": [0, -0.42, 0] + }, + "2.125": { + "vector": [0, -0.26, 0] + }, + "2.1667": { + "vector": [0, -0.13, 0] + }, + "2.2083": { + "vector": [0, -0.03, 0] + }, + "2.25": { + "vector": [0, 0, 0] + }, + "2.2917": { + "vector": [0, -0.03, 0] + }, + "2.3333": { + "vector": [0, -0.13, 0] + }, + "2.375": { + "vector": [0, -0.26, 0] + }, + "2.4167": { + "vector": [0, -0.42, 0] + }, + "2.4583": { + "vector": [0, -0.58, 0] + }, + "2.5": { + "vector": [0, -0.74, 0] + }, + "2.5417": { + "vector": [0, -0.87, 0] + }, + "2.5833": { + "vector": [0, -0.97, 0] + }, + "2.625": { + "vector": [0, -1, 0] + }, + "2.6667": { + "vector": [0, -0.97, 0] + }, + "2.7083": { + "vector": [0, -0.87, 0] + }, + "2.75": { + "vector": [0, -0.74, 0] + }, + "2.7917": { + "vector": [0, -0.58, 0] + }, + "2.8333": { + "vector": [0, -0.42, 0] + }, + "2.875": { + "vector": [0, -0.26, 0] + }, + "2.9167": { + "vector": [0, -0.13, 0] + }, + "2.9583": { + "vector": [0, -0.03, 0] + }, + "3.0": { + "vector": [0, 0, 0] + }, + "3.0417": { + "vector": [0, -0.03, 0] + }, + "3.0833": { + "vector": [0, -0.13, 0] + }, + "3.125": { + "vector": [0, -0.26, 0] + }, + "3.1667": { + "vector": [0, -0.42, 0] + }, + "3.2083": { + "vector": [0, -0.58, 0] + }, + "3.25": { + "vector": [0, -0.74, 0] + }, + "3.2917": { + "vector": [0, -0.87, 0] + }, + "3.3333": { + "vector": [0, -0.97, 0] + }, + "3.375": { + "vector": [0, -1, 0] + }, + "3.4167": { + "vector": [0, -0.97, 0] + }, + "3.4583": { + "vector": [0, -0.87, 0] + }, + "3.5": { + "vector": [0, -0.74, 0] + }, + "3.5417": { + "vector": [0, -0.58, 0] + }, + "3.5833": { + "vector": [0, -0.42, 0] + }, + "3.625": { + "vector": [0, -0.26, 0] + }, + "3.6667": { + "vector": [0, -0.13, 0] + }, + "3.7083": { + "vector": [0, -0.03, 0] + }, + "3.75": { + "vector": [0, 0, 0] + }, + "3.7917": { + "vector": [0, -0.03, 0] + }, + "3.8333": { + "vector": [0, -0.13, 0] + }, + "3.875": { + "vector": [0, -0.26, 0] + }, + "3.9167": { + "vector": [0, -0.42, 0] + }, + "3.9583": { + "vector": [0, -0.58, 0] + }, + "4.0": { + "vector": [0, -0.74, 0] + }, + "4.0417": { + "vector": [0, -0.87, 0] + }, + "4.0833": { + "vector": [0, -0.97, 0] + }, + "4.125": { + "vector": [0, -1, 0] + }, + "4.1667": { + "vector": [0, -0.97, 0] + }, + "4.2083": { + "vector": [0, -0.87, 0] + }, + "4.25": { + "vector": [0, -0.74, 0] + }, + "4.2917": { + "vector": [0, -0.58, 0] + }, + "4.3333": { + "vector": [0, -0.42, 0] + }, + "4.375": { + "vector": [0, -0.26, 0] + }, + "4.4167": { + "vector": [0, -0.13, 0] + }, + "4.4583": { + "vector": [0, -0.03, 0] + }, + "4.5": { + "vector": [0, 0, 0] + }, + "4.5417": { + "vector": [0, -0.03, 0] + }, + "4.5833": { + "vector": [0, -0.13, 0] + }, + "4.625": { + "vector": [0, -0.26, 0] + }, + "4.6667": { + "vector": [0, -0.42, 0] + }, + "4.7083": { + "vector": [0, -0.58, 0] + }, + "4.75": { + "vector": [0, -0.74, 0] + }, + "4.7917": { + "vector": [0, -0.87, 0] + }, + "4.8333": { + "vector": [0, -0.97, 0] + }, + "4.875": { + "vector": [0, -1, 0] + }, + "4.9167": { + "vector": [0, -0.97, 0] + }, + "4.9583": { + "vector": [0, -0.87, 0] + }, + "5.0": { + "vector": [0, -0.74, 0] + }, + "5.0417": { + "vector": [0, -0.58, 0] + }, + "5.0833": { + "vector": [0, -0.42, 0] + }, + "5.125": { + "vector": [0, -0.26, 0] + }, + "5.1667": { + "vector": [0, -0.13, 0] + }, + "5.2083": { + "vector": [0, -0.03, 0] + }, + "5.25": { + "vector": [0, 0, 0] + }, + "5.2917": { + "vector": [0, -0.03, 0] + }, + "5.3333": { + "vector": [0, -0.13, 0] + }, + "5.375": { + "vector": [0, -0.26, 0] + }, + "5.4167": { + "vector": [0, -0.42, 0] + }, + "5.4583": { + "vector": [0, -0.58, 0] + }, + "5.5": { + "vector": [0, -0.74, 0] + }, + "5.5417": { + "vector": [0, -0.87, 0] + }, + "5.5833": { + "vector": [0, -0.97, 0] + }, + "5.625": { + "vector": [0, -1, 0] + }, + "5.6667": { + "vector": [0, -0.97, 0] + }, + "5.7083": { + "vector": [0, -0.87, 0] + }, + "5.75": { + "vector": [0, -0.74, 0] + }, + "5.7917": { + "vector": [0, -0.58, 0] + }, + "5.8333": { + "vector": [0, -0.42, 0] + }, + "5.875": { + "vector": [0, -0.26, 0] + }, + "5.9167": { + "vector": [0, -0.13, 0] + }, + "5.9583": { + "vector": [0, -0.03, 0] + }, + "6.0": { + "vector": [0, 0, 0] + }, + "6.0417": { + "vector": [0, -0.03, 0] + }, + "6.0833": { + "vector": [0, -0.13, 0] + }, + "6.125": { + "vector": [0, -0.26, 0] + }, + "6.1667": { + "vector": [0, -0.42, 0] + }, + "6.2083": { + "vector": [0, -0.58, 0] + }, + "6.25": { + "vector": [0, -0.74, 0] + }, + "6.2917": { + "vector": [0, -0.87, 0] + }, + "6.3333": { + "vector": [0, -0.97, 0] + }, + "6.375": { + "vector": [0, -1, 0] + }, + "6.4167": { + "vector": [0, -0.97, 0] + }, + "6.4583": { + "vector": [0, -0.87, 0] + }, + "6.5": { + "vector": [0, -0.74, 0] + }, + "6.5417": { + "vector": [0, -0.58, 0] + }, + "6.5833": { + "vector": [0, -0.42, 0] + }, + "6.625": { + "vector": [0, -0.26, 0] + }, + "6.6667": { + "vector": [0, -0.13, 0] + }, + "6.7083": { + "vector": [0, -0.03, 0] + }, + "6.75": { + "vector": [0, 0, 0] + }, + "6.7917": { + "vector": [0, -0.03, 0] + }, + "6.8333": { + "vector": [0, -0.13, 0] + }, + "6.875": { + "vector": [0, -0.26, 0] + }, + "6.9167": { + "vector": [0, -0.42, 0] + }, + "6.9583": { + "vector": [0, -0.58, 0] + }, + "7.0": { + "vector": [0, -0.74, 0] + }, + "7.0417": { + "vector": [0, -0.87, 0] + }, + "7.0833": { + "vector": [0, -0.97, 0] + }, + "7.125": { + "vector": [0, -1, 0] + }, + "7.1667": { + "vector": [0, -0.97, 0] + }, + "7.2083": { + "vector": [0, -0.87, 0] + }, + "7.25": { + "vector": [0, -0.74, 0] + }, + "7.2917": { + "vector": [0, -0.58, 0] + }, + "7.3333": { + "vector": [0, -0.42, 0] + }, + "7.375": { + "vector": [0, -0.26, 0] + }, + "7.4167": { + "vector": [0, -0.13, 0] + }, + "7.4583": { + "vector": [0, -0.03, 0] + }, + "7.5": { + "vector": [0, 0, 0] + } + }, + "scale": { + "0.0": { + "vector": [1.1, 0.9, 1.1] + }, + "0.0417": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "0.0833": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "0.125": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "0.1667": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "0.2083": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "0.25": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "0.2917": { + "vector": [1.01, 0.99, 1.01] + }, + "0.3333": { + "vector": [0.99, 1.01, 0.99] + }, + "0.375": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "0.4167": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "0.4583": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "0.5": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "0.5417": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "0.5833": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "0.625": { + "vector": [0.9, 1.1, 0.9] + }, + "0.6667": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "0.7083": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "0.75": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "0.7917": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "0.8333": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "0.875": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "0.9167": { + "vector": [0.99, 1.01, 0.99] + }, + "0.9583": { + "vector": [1.01, 0.99, 1.01] + }, + "1.0": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "1.0417": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "1.0833": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "1.125": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "1.1667": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "1.2083": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "1.25": { + "vector": [1.1, 0.9, 1.1] + }, + "1.2917": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "1.3333": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "1.375": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "1.4167": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "1.4583": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "1.5": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "1.5417": { + "vector": [1.01, 0.99, 1.01] + }, + "1.5833": { + "vector": [0.99, 1.01, 0.99] + }, + "1.625": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "1.6667": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "1.7083": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "1.75": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "1.7917": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "1.8333": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "1.875": { + "vector": [0.9, 1.1, 0.9] + }, + "1.9167": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "1.9583": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "2.0": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "2.0417": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "2.0833": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "2.125": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "2.1667": { + "vector": [0.99, 1.01, 0.99] + }, + "2.2083": { + "vector": [1.01, 0.99, 1.01] + }, + "2.25": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "2.2917": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "2.3333": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "2.375": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "2.4167": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "2.4583": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "2.5": { + "vector": [1.1, 0.9, 1.1] + }, + "2.5417": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "2.5833": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "2.625": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "2.6667": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "2.7083": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "2.75": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "2.7917": { + "vector": [1.01, 0.99, 1.01] + }, + "2.8333": { + "vector": [0.99, 1.01, 0.99] + }, + "2.875": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "2.9167": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "2.9583": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "3.0": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "3.0417": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "3.0833": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "3.125": { + "vector": [0.9, 1.1, 0.9] + }, + "3.1667": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "3.2083": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "3.25": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "3.2917": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "3.3333": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "3.375": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "3.4167": { + "vector": [0.99, 1.01, 0.99] + }, + "3.4583": { + "vector": [1.01, 0.99, 1.01] + }, + "3.5": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "3.5417": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "3.5833": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "3.625": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "3.6667": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "3.7083": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "3.75": { + "vector": [1.1, 0.9, 1.1] + }, + "3.7917": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "3.8333": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "3.875": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "3.9167": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "3.9583": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "4.0": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "4.0417": { + "vector": [1.01, 0.99, 1.01] + }, + "4.0833": { + "vector": [0.99, 1.01, 0.99] + }, + "4.125": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "4.1667": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "4.2083": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "4.25": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "4.2917": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "4.3333": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "4.375": { + "vector": [0.9, 1.1, 0.9] + }, + "4.4167": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "4.4583": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "4.5": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "4.5417": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "4.5833": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "4.625": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "4.6667": { + "vector": [0.99, 1.01, 0.99] + }, + "4.7083": { + "vector": [1.01, 0.99, 1.01] + }, + "4.75": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "4.7917": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "4.8333": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "4.875": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "4.9167": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "4.9583": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "5.0": { + "vector": [1.1, 0.9, 1.1] + }, + "5.0417": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "5.0833": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "5.125": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "5.1667": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "5.2083": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "5.25": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "5.2917": { + "vector": [1.01, 0.99, 1.01] + }, + "5.3333": { + "vector": [0.99, 1.01, 0.99] + }, + "5.375": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "5.4167": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "5.4583": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "5.5": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "5.5417": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "5.5833": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "5.625": { + "vector": [0.9, 1.1, 0.9] + }, + "5.6667": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "5.7083": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "5.75": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "5.7917": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "5.8333": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "5.875": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "5.9167": { + "vector": [0.99, 1.01, 0.99] + }, + "5.9583": { + "vector": [1.01, 0.99, 1.01] + }, + "6.0": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "6.0417": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "6.0833": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "6.125": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "6.1667": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "6.2083": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "6.25": { + "vector": [1.1, 0.9, 1.1] + }, + "6.2917": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "6.3333": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "6.375": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "6.4167": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "6.4583": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "6.5": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "6.5417": { + "vector": [1.01, 0.99, 1.01] + }, + "6.5833": { + "vector": [0.99, 1.01, 0.99] + }, + "6.625": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "6.6667": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "6.7083": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "6.75": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "6.7917": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "6.8333": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "6.875": { + "vector": [0.9, 1.1, 0.9] + }, + "6.9167": { + "vector": [0.9025, 1.0975, 0.9025] + }, + "6.9583": { + "vector": [0.9097, 1.0903, 0.9097] + }, + "7.0": { + "vector": [0.9208, 1.0792, 0.9208] + }, + "7.0417": { + "vector": [0.9351, 1.0649, 0.9351] + }, + "7.0833": { + "vector": [0.9519, 1.0481, 0.9519] + }, + "7.125": { + "vector": [0.9704, 1.0296, 0.9704] + }, + "7.1667": { + "vector": [0.99, 1.01, 0.99] + }, + "7.2083": { + "vector": [1.01, 0.99, 1.01] + }, + "7.25": { + "vector": [1.0296, 0.9704, 1.0296] + }, + "7.2917": { + "vector": [1.0481, 0.9519, 1.0481] + }, + "7.3333": { + "vector": [1.0649, 0.9351, 1.0649] + }, + "7.375": { + "vector": [1.0792, 0.9208, 1.0792] + }, + "7.4167": { + "vector": [1.0903, 0.9097, 1.0903] + }, + "7.4583": { + "vector": [1.0975, 0.9025, 1.0975] + }, + "7.5": { + "vector": [1.1, 0.9, 1.1] + } + } + } + } + }, + "crawl": { + "loop": true, + "animation_length": 0.5, + "bones": { + "body": { + "rotation": { + "vector": [90, 0, 0] + }, + "position": { + "vector": [0, -3, "math.cos(q.anim_time*90*4*2)"] + }, + "scale": { + "vector": ["1+math.cos(q.anim_time*90*4*2+80)/5/2", "1-math.cos(q.anim_time*90*4*2+80)/5", "1+math.cos(q.anim_time*90*4*2+80)/5/2"] + } + } + } + } + } +} \ No newline at end of file diff --git a/common-1.21.1/src/main/resources/assets/antarchy/geo/worm_medium.geo.json b/common-1.21.1/src/main/resources/assets/antarchy/geo/worm_medium.geo.json new file mode 100644 index 00000000..5f74e8bb --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/geo/worm_medium.geo.json @@ -0,0 +1,69 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.mediumworm", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 2, + "visible_bounds_height": 3.5, + "visible_bounds_offset": [0, 1.25, 0] + }, + "bones": [ + { + "name": "root", + "pivot": [0, 0, 0] + }, + { + "name": "body", + "parent": "root", + "pivot": [0, 16, 0], + "cubes": [ + {"origin": [-2.5, 16, -2.5], "size": [5, 16, 5], "uv": [0, 0]} + ] + }, + { + "name": "tooth1", + "parent": "body", + "pivot": [0, 32, 2.5], + "cubes": [ + {"origin": [-0.5, 32, 1.5], "size": [1, 3, 1], "uv": [20, 20]} + ] + }, + { + "name": "tooth2", + "parent": "body", + "pivot": [-2.5, 32, 0], + "cubes": [ + {"origin": [-2.5, 32, -0.5], "size": [1, 3, 1], "uv": [4, 21]} + ] + }, + { + "name": "tooth3", + "parent": "body", + "pivot": [2.5, 32, 0], + "cubes": [ + {"origin": [1.5, 32, -0.5], "size": [1, 3, 1], "uv": [8, 21]} + ] + }, + { + "name": "tooth4", + "parent": "body", + "pivot": [0, 32, -2.5], + "cubes": [ + {"origin": [-0.5, 32, -2.5], "size": [1, 3, 1], "uv": [0, 21]} + ] + }, + { + "name": "tail", + "parent": "body", + "pivot": [0, 16, 0], + "cubes": [ + {"origin": [-2, 0, -2], "size": [4, 16, 4], "uv": [20, 0]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common-1.21.1/src/main/resources/assets/antarchy/geo/worm_small.geo.json b/common-1.21.1/src/main/resources/assets/antarchy/geo/worm_small.geo.json new file mode 100644 index 00000000..bde1caca --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/geo/worm_small.geo.json @@ -0,0 +1,29 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.smallworm", + "texture_width": 16, + "texture_height": 16, + "visible_bounds_width": 2, + "visible_bounds_height": 1.5, + "visible_bounds_offset": [0, 0.25, 0] + }, + "bones": [ + { + "name": "root", + "pivot": [0, 0, 0] + }, + { + "name": "body", + "parent": "root", + "pivot": [0, 4, 0], + "cubes": [ + {"origin": [-1, 0, -1], "size": [2, 8, 2], "uv": [0, 0]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/mob/king/decree.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/mob/king/decree.ogg new file mode 100644 index 00000000..9329727b Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/mob/king/decree.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/mob/king/judgement.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/mob/king/judgement.ogg new file mode 100644 index 00000000..a19d0263 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/mob/king/judgement.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/mob/king/success.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/mob/king/success.ogg new file mode 100644 index 00000000..f477e84f Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/mob/king/success.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/king/fire_ball.png.mcmeta b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/king/fire_ball.png.mcmeta new file mode 100644 index 00000000..73e1d375 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/king/fire_ball.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 4, + "interpolate": false + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/dream_fire_ball.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/dream_fire_ball.png new file mode 100644 index 00000000..e98f1ee9 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/dream_fire_ball.png differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/dream_fire_ball.png.mcmeta b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/dream_fire_ball.png.mcmeta new file mode 100644 index 00000000..73e1d375 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/dream_fire_ball.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 4, + "interpolate": false + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_end_1.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_end_1.png new file mode 100644 index 00000000..a3e06013 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_end_1.png differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_end_2.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_end_2.png new file mode 100644 index 00000000..be3c8a6d Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_end_2.png differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_inner.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_inner.png new file mode 100644 index 00000000..a1e8c354 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_inner.png differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_outer.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_outer.png new file mode 100644 index 00000000..81ee65f5 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_black_beam_outer.png differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_end_1.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_end_1.png new file mode 100644 index 00000000..c3f6118e Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_end_1.png differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_end_2.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_end_2.png new file mode 100644 index 00000000..f93fca80 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_end_2.png differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_inner.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_inner.png new file mode 100644 index 00000000..7658c7b8 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_inner.png differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_outer.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_outer.png new file mode 100644 index 00000000..74143aa6 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_purple_beam_outer.png differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_end_1.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_end_1.png new file mode 100644 index 00000000..cc82be0d Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_end_1.png differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_end_2.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_end_2.png new file mode 100644 index 00000000..db0829f2 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_end_2.png differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_inner.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_inner.png new file mode 100644 index 00000000..5bd02124 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_inner.png differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_outer.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_outer.png new file mode 100644 index 00000000..74143aa6 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/queen/queen_red_beam_outer.png differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/worm/worm_medium.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/worm/worm_medium.png new file mode 100644 index 00000000..ac0d2450 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/worm/worm_medium.png differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/worm/worm_small.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/worm/worm_small.png new file mode 100644 index 00000000..1ac97196 Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/entity/worm/worm_small.png differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/advancement/enter_the_speed_force.json b/common-1.21.1/src/main/resources/data/antarchy/advancement/enter_the_speed_force.json new file mode 100644 index 00000000..34f3141d --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/advancement/enter_the_speed_force.json @@ -0,0 +1,39 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "become_contracted": { + "conditions": { + "effects": { + "antarchy:contracted": {} + } + }, + "trigger": "minecraft:effects_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.enter_the_speed_force.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "minecraft:potion", + "components": { + "minecraft:potion_contents": { + "potion": "antarchy:time_contraction" + } + } + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.enter_the_speed_force.title" + } + }, + "requirements": [ + [ + "become_contracted" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/advancement/probably_wondering_how_i_got_here.json b/common-1.21.1/src/main/resources/data/antarchy/advancement/probably_wondering_how_i_got_here.json new file mode 100644 index 00000000..a9e78b70 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/advancement/probably_wondering_how_i_got_here.json @@ -0,0 +1,39 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "become_dilated": { + "conditions": { + "effects": { + "antarchy:dilated": {} + } + }, + "trigger": "minecraft:effects_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.probably_wondering_how_i_got_here.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "minecraft:potion", + "components": { + "minecraft:potion_contents": { + "potion": "antarchy:time_dilation" + } + } + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.probably_wondering_how_i_got_here.title" + } + }, + "requirements": [ + [ + "become_dilated" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/advancement/temporal_contradiction.json b/common-1.21.1/src/main/resources/data/antarchy/advancement/temporal_contradiction.json new file mode 100644 index 00000000..f75d40bc --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/advancement/temporal_contradiction.json @@ -0,0 +1,35 @@ +{ + "parent": "antarchy:enter_the_speed_force", + "criteria": { + "become_contradictory": { + "conditions": { + "effects": { + "antarchy:contracted": {}, + "antarchy:dilated": {} + } + }, + "trigger": "minecraft:effects_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.temporal_contradiction.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:clock" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.temporal_contradiction.title" + } + }, + "requirements": [ + [ + "become_contradictory" + ] + ], + "sends_telemetry_event": true +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m1.nbt new file mode 100644 index 00000000..a8b9fc2d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m2.nbt new file mode 100644 index 00000000..7fdcf804 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m3.nbt new file mode 100644 index 00000000..8f78e875 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m4.nbt new file mode 100644 index 00000000..be838b89 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m5.nbt new file mode 100644 index 00000000..d6270df3 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p0.nbt new file mode 100644 index 00000000..f6f16685 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p1.nbt new file mode 100644 index 00000000..73c32e69 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m10_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m2.nbt new file mode 100644 index 00000000..0e57eb8e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m3.nbt new file mode 100644 index 00000000..738686db Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m4.nbt new file mode 100644 index 00000000..72a55ef0 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m11_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_m2.nbt new file mode 100644 index 00000000..9b150b18 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_m3.nbt new file mode 100644 index 00000000..3dd1a084 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_p14.nbt new file mode 100644 index 00000000..2ef1bb7a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m12_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m1.nbt new file mode 100644 index 00000000..4c825d04 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m10.nbt new file mode 100644 index 00000000..05921807 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m11.nbt new file mode 100644 index 00000000..aadcab8a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m12.nbt new file mode 100644 index 00000000..d2d80f7f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m13.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m13.nbt new file mode 100644 index 00000000..61887500 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m13.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m14.nbt new file mode 100644 index 00000000..59b21a1f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m2.nbt new file mode 100644 index 00000000..9cd896cd Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m3.nbt new file mode 100644 index 00000000..8bce10b2 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m4.nbt new file mode 100644 index 00000000..af97de2d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m5.nbt new file mode 100644 index 00000000..f0a75732 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m6.nbt new file mode 100644 index 00000000..83e7a294 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m7.nbt new file mode 100644 index 00000000..82da7f0c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m8.nbt new file mode 100644 index 00000000..a5cc093d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m9.nbt new file mode 100644 index 00000000..99cd7d0c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p0.nbt new file mode 100644 index 00000000..30f56d22 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p1.nbt new file mode 100644 index 00000000..1814a9e2 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p10.nbt new file mode 100644 index 00000000..a482993d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p11.nbt new file mode 100644 index 00000000..783244e7 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p2.nbt new file mode 100644 index 00000000..5c1a6ebd Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p3.nbt new file mode 100644 index 00000000..e7f298d5 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p4.nbt new file mode 100644 index 00000000..dd00785d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p5.nbt new file mode 100644 index 00000000..76c498e7 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p6.nbt new file mode 100644 index 00000000..7e21bca0 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p7.nbt new file mode 100644 index 00000000..04fed1d1 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p8.nbt new file mode 100644 index 00000000..f30a50ef Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p9.nbt new file mode 100644 index 00000000..d54b22c1 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m1_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m1.nbt new file mode 100644 index 00000000..8d2c933a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m10.nbt new file mode 100644 index 00000000..4b144acd Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m11.nbt new file mode 100644 index 00000000..81a19917 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m12.nbt new file mode 100644 index 00000000..58597c85 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m13.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m13.nbt new file mode 100644 index 00000000..2b05bceb Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m13.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m2.nbt new file mode 100644 index 00000000..4cd16d1f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m3.nbt new file mode 100644 index 00000000..aa83392b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m4.nbt new file mode 100644 index 00000000..e0853aba Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m5.nbt new file mode 100644 index 00000000..d3dbb78a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m6.nbt new file mode 100644 index 00000000..72be1008 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m7.nbt new file mode 100644 index 00000000..1e9def73 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m8.nbt new file mode 100644 index 00000000..90c6783d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m9.nbt new file mode 100644 index 00000000..937b8d04 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p0.nbt new file mode 100644 index 00000000..989f85c8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p1.nbt new file mode 100644 index 00000000..6cbeb913 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p10.nbt new file mode 100644 index 00000000..91331990 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p11.nbt new file mode 100644 index 00000000..e0632b03 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p2.nbt new file mode 100644 index 00000000..9303cdc9 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p3.nbt new file mode 100644 index 00000000..544b0a00 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p4.nbt new file mode 100644 index 00000000..d60da68a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p5.nbt new file mode 100644 index 00000000..f7b72a68 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p6.nbt new file mode 100644 index 00000000..1f139e4d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p7.nbt new file mode 100644 index 00000000..e0cd1ab8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p8.nbt new file mode 100644 index 00000000..bb59af25 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p9.nbt new file mode 100644 index 00000000..7f2a8684 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m2_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m1.nbt new file mode 100644 index 00000000..c81bfc9f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m10.nbt new file mode 100644 index 00000000..5b810c3e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m11.nbt new file mode 100644 index 00000000..e694b78c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m12.nbt new file mode 100644 index 00000000..2accb997 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m13.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m13.nbt new file mode 100644 index 00000000..4a36c549 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m13.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m2.nbt new file mode 100644 index 00000000..a86e6f5e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m3.nbt new file mode 100644 index 00000000..e1e840c8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m4.nbt new file mode 100644 index 00000000..2f2caddc Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m5.nbt new file mode 100644 index 00000000..a183604e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m6.nbt new file mode 100644 index 00000000..350ee217 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m7.nbt new file mode 100644 index 00000000..ea129e59 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m8.nbt new file mode 100644 index 00000000..d6b8b717 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m9.nbt new file mode 100644 index 00000000..35ddf28a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p0.nbt new file mode 100644 index 00000000..04348da6 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p1.nbt new file mode 100644 index 00000000..caa16db0 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p10.nbt new file mode 100644 index 00000000..1fef5e67 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p11.nbt new file mode 100644 index 00000000..90579b17 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p12.nbt new file mode 100644 index 00000000..15a3c9d9 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p2.nbt new file mode 100644 index 00000000..730e80da Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p3.nbt new file mode 100644 index 00000000..cc642193 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p4.nbt new file mode 100644 index 00000000..2307e392 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p5.nbt new file mode 100644 index 00000000..577a895a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p6.nbt new file mode 100644 index 00000000..bb1e2df9 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p7.nbt new file mode 100644 index 00000000..0c9e4f43 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p8.nbt new file mode 100644 index 00000000..c7647352 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p9.nbt new file mode 100644 index 00000000..1fa2ffa2 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m3_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m1.nbt new file mode 100644 index 00000000..8086403c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m10.nbt new file mode 100644 index 00000000..321a76c2 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m11.nbt new file mode 100644 index 00000000..66b4396c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m12.nbt new file mode 100644 index 00000000..361d2055 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m13.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m13.nbt new file mode 100644 index 00000000..db6aaec5 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m13.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m2.nbt new file mode 100644 index 00000000..a23ea5a0 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m3.nbt new file mode 100644 index 00000000..c6ee76fd Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m4.nbt new file mode 100644 index 00000000..d1d27cc5 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m5.nbt new file mode 100644 index 00000000..30d22aa3 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m6.nbt new file mode 100644 index 00000000..0ccb4a1a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m7.nbt new file mode 100644 index 00000000..acdad21a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m8.nbt new file mode 100644 index 00000000..d6728149 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m9.nbt new file mode 100644 index 00000000..1248ee35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p0.nbt new file mode 100644 index 00000000..c98f06ec Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p1.nbt new file mode 100644 index 00000000..34b8ff85 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p10.nbt new file mode 100644 index 00000000..a543de10 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p11.nbt new file mode 100644 index 00000000..4e66ed0b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p12.nbt new file mode 100644 index 00000000..bf164301 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p2.nbt new file mode 100644 index 00000000..c6630e73 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p3.nbt new file mode 100644 index 00000000..7cc906e6 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p4.nbt new file mode 100644 index 00000000..79e3a876 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p5.nbt new file mode 100644 index 00000000..82fbcb7e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p6.nbt new file mode 100644 index 00000000..fef72688 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p7.nbt new file mode 100644 index 00000000..f2f9f691 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p8.nbt new file mode 100644 index 00000000..9532565c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p9.nbt new file mode 100644 index 00000000..94a31d26 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m4_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m1.nbt new file mode 100644 index 00000000..9d5d3d53 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m10.nbt new file mode 100644 index 00000000..41d5ee33 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m11.nbt new file mode 100644 index 00000000..077b2710 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m12.nbt new file mode 100644 index 00000000..d90fbf84 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m13.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m13.nbt new file mode 100644 index 00000000..875de447 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m13.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m2.nbt new file mode 100644 index 00000000..08866ac1 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m3.nbt new file mode 100644 index 00000000..19cd78c1 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m4.nbt new file mode 100644 index 00000000..448a281d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m5.nbt new file mode 100644 index 00000000..27882086 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m6.nbt new file mode 100644 index 00000000..31b5c69e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m7.nbt new file mode 100644 index 00000000..692b6ad8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m8.nbt new file mode 100644 index 00000000..efb0b3b6 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m9.nbt new file mode 100644 index 00000000..d0aab4c5 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p0.nbt new file mode 100644 index 00000000..5b9a333e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p1.nbt new file mode 100644 index 00000000..c0da43b4 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p10.nbt new file mode 100644 index 00000000..f74857ab Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p11.nbt new file mode 100644 index 00000000..cab9e0f5 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p2.nbt new file mode 100644 index 00000000..53392088 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p3.nbt new file mode 100644 index 00000000..320abd66 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p4.nbt new file mode 100644 index 00000000..653fd149 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p5.nbt new file mode 100644 index 00000000..4fc85ed9 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p6.nbt new file mode 100644 index 00000000..0212420a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p7.nbt new file mode 100644 index 00000000..5a3dd9bc Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p8.nbt new file mode 100644 index 00000000..e0c8267d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p9.nbt new file mode 100644 index 00000000..72943351 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m5_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m1.nbt new file mode 100644 index 00000000..5f92da5b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m10.nbt new file mode 100644 index 00000000..115a0ed4 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m11.nbt new file mode 100644 index 00000000..b816c66a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m12.nbt new file mode 100644 index 00000000..8da549cc Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m2.nbt new file mode 100644 index 00000000..3d9265fd Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m3.nbt new file mode 100644 index 00000000..c1c79e99 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m4.nbt new file mode 100644 index 00000000..b30fbfa0 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m5.nbt new file mode 100644 index 00000000..755fec02 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m6.nbt new file mode 100644 index 00000000..8eed1fb2 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m7.nbt new file mode 100644 index 00000000..e3f1f85d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m8.nbt new file mode 100644 index 00000000..900848f6 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m9.nbt new file mode 100644 index 00000000..024381a1 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p0.nbt new file mode 100644 index 00000000..522d6b2a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p1.nbt new file mode 100644 index 00000000..36b1410b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p10.nbt new file mode 100644 index 00000000..8b115024 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p11.nbt new file mode 100644 index 00000000..4ec19990 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p2.nbt new file mode 100644 index 00000000..a86969f5 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p3.nbt new file mode 100644 index 00000000..d3a4ccab Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p4.nbt new file mode 100644 index 00000000..af3b4160 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p5.nbt new file mode 100644 index 00000000..c0dc01cc Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p6.nbt new file mode 100644 index 00000000..b85c3bb2 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p7.nbt new file mode 100644 index 00000000..7f45119d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p8.nbt new file mode 100644 index 00000000..460b09ca Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p9.nbt new file mode 100644 index 00000000..35182d31 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m6_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m1.nbt new file mode 100644 index 00000000..ad57d66a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m10.nbt new file mode 100644 index 00000000..3e546770 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m11.nbt new file mode 100644 index 00000000..03de2473 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m12.nbt new file mode 100644 index 00000000..050c90ff Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m2.nbt new file mode 100644 index 00000000..3db90175 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m3.nbt new file mode 100644 index 00000000..1262db96 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m4.nbt new file mode 100644 index 00000000..b8c4f6dc Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m5.nbt new file mode 100644 index 00000000..3cf16abb Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m6.nbt new file mode 100644 index 00000000..87ca97b9 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m7.nbt new file mode 100644 index 00000000..f218c5f4 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m8.nbt new file mode 100644 index 00000000..24b229a7 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m9.nbt new file mode 100644 index 00000000..fb062037 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p0.nbt new file mode 100644 index 00000000..2dab9e8f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p1.nbt new file mode 100644 index 00000000..85b9d6f7 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p10.nbt new file mode 100644 index 00000000..5d89f84c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p11.nbt new file mode 100644 index 00000000..d85a5aab Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p2.nbt new file mode 100644 index 00000000..2d41fc5f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p3.nbt new file mode 100644 index 00000000..d408edb0 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p4.nbt new file mode 100644 index 00000000..415b629a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p5.nbt new file mode 100644 index 00000000..9895e3ae Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p6.nbt new file mode 100644 index 00000000..14337856 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p7.nbt new file mode 100644 index 00000000..389bac01 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p8.nbt new file mode 100644 index 00000000..cbc3a06c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p9.nbt new file mode 100644 index 00000000..e775a115 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m7_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m1.nbt new file mode 100644 index 00000000..9b2ab7a0 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m10.nbt new file mode 100644 index 00000000..94a507ae Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m11.nbt new file mode 100644 index 00000000..dd7363d0 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m2.nbt new file mode 100644 index 00000000..c9bcb9f8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m3.nbt new file mode 100644 index 00000000..71e67918 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m4.nbt new file mode 100644 index 00000000..ad084f41 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m5.nbt new file mode 100644 index 00000000..755b1bc8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m6.nbt new file mode 100644 index 00000000..a0400c29 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m7.nbt new file mode 100644 index 00000000..f3d41d77 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m8.nbt new file mode 100644 index 00000000..fde60ed5 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m9.nbt new file mode 100644 index 00000000..681febdf Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p0.nbt new file mode 100644 index 00000000..a784d036 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p1.nbt new file mode 100644 index 00000000..edef91f2 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p10.nbt new file mode 100644 index 00000000..23334ce2 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p11.nbt new file mode 100644 index 00000000..02c4db07 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p2.nbt new file mode 100644 index 00000000..7754f29f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p3.nbt new file mode 100644 index 00000000..1d6e3144 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p4.nbt new file mode 100644 index 00000000..b1220eb1 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p5.nbt new file mode 100644 index 00000000..968ee63e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p6.nbt new file mode 100644 index 00000000..455606f9 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p7.nbt new file mode 100644 index 00000000..51880fa4 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p8.nbt new file mode 100644 index 00000000..b13da1e5 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p9.nbt new file mode 100644 index 00000000..2f72c022 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m8_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m1.nbt new file mode 100644 index 00000000..f5f98380 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m10.nbt new file mode 100644 index 00000000..b985e94f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m11.nbt new file mode 100644 index 00000000..8e160c15 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m2.nbt new file mode 100644 index 00000000..e6f6d132 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m3.nbt new file mode 100644 index 00000000..7e718ad2 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m4.nbt new file mode 100644 index 00000000..8d8dcde5 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m5.nbt new file mode 100644 index 00000000..363a6421 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m6.nbt new file mode 100644 index 00000000..17bcb944 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m7.nbt new file mode 100644 index 00000000..d1244bbf Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m8.nbt new file mode 100644 index 00000000..285e9cb8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m9.nbt new file mode 100644 index 00000000..891fb8f1 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p0.nbt new file mode 100644 index 00000000..26c4c166 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p1.nbt new file mode 100644 index 00000000..acb6e9ba Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p10.nbt new file mode 100644 index 00000000..56603812 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p11.nbt new file mode 100644 index 00000000..814108f4 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p2.nbt new file mode 100644 index 00000000..738ca0fb Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p3.nbt new file mode 100644 index 00000000..28bc6367 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p4.nbt new file mode 100644 index 00000000..4910857b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p5.nbt new file mode 100644 index 00000000..a47e4ce7 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p6.nbt new file mode 100644 index 00000000..1d61daa1 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p7.nbt new file mode 100644 index 00000000..6818276d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p8.nbt new file mode 100644 index 00000000..4f85ba1e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p9.nbt new file mode 100644 index 00000000..bcd5fd70 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/m9_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m1.nbt new file mode 100644 index 00000000..e5998509 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m10.nbt new file mode 100644 index 00000000..18455c1d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m11.nbt new file mode 100644 index 00000000..1b3efc1c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m12.nbt new file mode 100644 index 00000000..52c9e9dc Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m13.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m13.nbt new file mode 100644 index 00000000..68c97a90 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m13.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m14.nbt new file mode 100644 index 00000000..07fe3808 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m2.nbt new file mode 100644 index 00000000..b81bb055 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m3.nbt new file mode 100644 index 00000000..c239a924 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m4.nbt new file mode 100644 index 00000000..1a74c893 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m5.nbt new file mode 100644 index 00000000..93d4529c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m6.nbt new file mode 100644 index 00000000..ef4f163b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m7.nbt new file mode 100644 index 00000000..c75be083 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m8.nbt new file mode 100644 index 00000000..1049620b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m9.nbt new file mode 100644 index 00000000..433d5ed5 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p0.nbt new file mode 100644 index 00000000..7460d207 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p1.nbt new file mode 100644 index 00000000..d88338cd Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p10.nbt new file mode 100644 index 00000000..3c736091 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p11.nbt new file mode 100644 index 00000000..332abfaa Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p12.nbt new file mode 100644 index 00000000..07db7f83 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p2.nbt new file mode 100644 index 00000000..8aeab647 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p3.nbt new file mode 100644 index 00000000..cd6a9323 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p4.nbt new file mode 100644 index 00000000..51af32db Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p5.nbt new file mode 100644 index 00000000..61f6d7c1 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p6.nbt new file mode 100644 index 00000000..268bd3fb Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p7.nbt new file mode 100644 index 00000000..9203d748 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p8.nbt new file mode 100644 index 00000000..9077f920 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p9.nbt new file mode 100644 index 00000000..29cb5464 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p0_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m1.nbt new file mode 100644 index 00000000..8080a9f1 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m2.nbt new file mode 100644 index 00000000..79ec26b3 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m3.nbt new file mode 100644 index 00000000..20763ea7 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m4.nbt new file mode 100644 index 00000000..640a632d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m5.nbt new file mode 100644 index 00000000..7aa56436 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_p0.nbt new file mode 100644 index 00000000..bed992d1 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p10_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p11_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p11_m1.nbt new file mode 100644 index 00000000..41df6d90 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p11_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m1.nbt new file mode 100644 index 00000000..6bfe9340 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m10.nbt new file mode 100644 index 00000000..404feadb Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m11.nbt new file mode 100644 index 00000000..5445e78a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m12.nbt new file mode 100644 index 00000000..6c0d2720 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m13.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m13.nbt new file mode 100644 index 00000000..027f1f8d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m13.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m2.nbt new file mode 100644 index 00000000..56c73413 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m3.nbt new file mode 100644 index 00000000..2ef4b35c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m4.nbt new file mode 100644 index 00000000..6ab4187f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m5.nbt new file mode 100644 index 00000000..6d9269ad Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m6.nbt new file mode 100644 index 00000000..03dffe2a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m7.nbt new file mode 100644 index 00000000..3289e8d0 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m8.nbt new file mode 100644 index 00000000..e6d185f1 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m9.nbt new file mode 100644 index 00000000..dd0a5950 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p0.nbt new file mode 100644 index 00000000..cb3e6ccb Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p1.nbt new file mode 100644 index 00000000..6e6d3e81 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p10.nbt new file mode 100644 index 00000000..e6aa9a3f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p11.nbt new file mode 100644 index 00000000..71d2eb55 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p12.nbt new file mode 100644 index 00000000..4dd7d1b5 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p13.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p13.nbt new file mode 100644 index 00000000..6e0ce2b8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p13.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p2.nbt new file mode 100644 index 00000000..9cb8ca5c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p3.nbt new file mode 100644 index 00000000..d8aff916 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p4.nbt new file mode 100644 index 00000000..907a6676 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p5.nbt new file mode 100644 index 00000000..7aa63c18 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p6.nbt new file mode 100644 index 00000000..879e7cf6 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p7.nbt new file mode 100644 index 00000000..b2c9ff99 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p8.nbt new file mode 100644 index 00000000..10bf40ed Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p9.nbt new file mode 100644 index 00000000..4a1d476a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p1_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m1.nbt new file mode 100644 index 00000000..402b82a1 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m10.nbt new file mode 100644 index 00000000..c53b6597 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m11.nbt new file mode 100644 index 00000000..0c21ab63 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m12.nbt new file mode 100644 index 00000000..d278121b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m13.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m13.nbt new file mode 100644 index 00000000..94c0f443 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m13.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m14.nbt new file mode 100644 index 00000000..3f566e18 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m2.nbt new file mode 100644 index 00000000..0bee3cc8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m3.nbt new file mode 100644 index 00000000..69b724ce Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m4.nbt new file mode 100644 index 00000000..22c827f8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m5.nbt new file mode 100644 index 00000000..1a8d917e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m6.nbt new file mode 100644 index 00000000..afa803ef Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m7.nbt new file mode 100644 index 00000000..37dbf597 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m8.nbt new file mode 100644 index 00000000..99517865 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m9.nbt new file mode 100644 index 00000000..fed0f20d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p0.nbt new file mode 100644 index 00000000..229ed1d6 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p1.nbt new file mode 100644 index 00000000..6214f51e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p10.nbt new file mode 100644 index 00000000..dcde4f4b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p11.nbt new file mode 100644 index 00000000..6476490e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p12.nbt new file mode 100644 index 00000000..8b215517 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p13.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p13.nbt new file mode 100644 index 00000000..d63e41b6 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p13.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p2.nbt new file mode 100644 index 00000000..e1a4de01 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p3.nbt new file mode 100644 index 00000000..75cf9a33 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p4.nbt new file mode 100644 index 00000000..eea02379 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p5.nbt new file mode 100644 index 00000000..2b1a2af6 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p6.nbt new file mode 100644 index 00000000..e67550d1 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p7.nbt new file mode 100644 index 00000000..d0e9ed51 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p8.nbt new file mode 100644 index 00000000..88c21479 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p9.nbt new file mode 100644 index 00000000..02d0597d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p2_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m1.nbt new file mode 100644 index 00000000..3befd74b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m10.nbt new file mode 100644 index 00000000..f9e0b8b8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m11.nbt new file mode 100644 index 00000000..0ca3a235 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m12.nbt new file mode 100644 index 00000000..a5bcf5a3 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m2.nbt new file mode 100644 index 00000000..53a333c7 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m3.nbt new file mode 100644 index 00000000..9f9ba11d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m4.nbt new file mode 100644 index 00000000..4b8885e2 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m5.nbt new file mode 100644 index 00000000..2cb3bfe6 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m6.nbt new file mode 100644 index 00000000..48c68fcd Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m7.nbt new file mode 100644 index 00000000..7bb57877 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m8.nbt new file mode 100644 index 00000000..eb45507e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m9.nbt new file mode 100644 index 00000000..4e309d0f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p0.nbt new file mode 100644 index 00000000..c60eef4c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p1.nbt new file mode 100644 index 00000000..0ff3f33e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p10.nbt new file mode 100644 index 00000000..4fdb765c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p11.nbt new file mode 100644 index 00000000..adf2e457 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p12.nbt new file mode 100644 index 00000000..6cdac1b3 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p13.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p13.nbt new file mode 100644 index 00000000..b0a9d71e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p13.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p2.nbt new file mode 100644 index 00000000..4b14a0de Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p3.nbt new file mode 100644 index 00000000..0313f5f8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p4.nbt new file mode 100644 index 00000000..450fd7c2 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p5.nbt new file mode 100644 index 00000000..d9b5ba7f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p6.nbt new file mode 100644 index 00000000..9c614794 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p7.nbt new file mode 100644 index 00000000..701c80e1 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p8.nbt new file mode 100644 index 00000000..55b608b6 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p9.nbt new file mode 100644 index 00000000..329940d6 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p3_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m1.nbt new file mode 100644 index 00000000..5e018672 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m10.nbt new file mode 100644 index 00000000..7538c50f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m11.nbt new file mode 100644 index 00000000..8c729645 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m12.nbt new file mode 100644 index 00000000..b5a22dff Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m2.nbt new file mode 100644 index 00000000..cfd2cca6 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m3.nbt new file mode 100644 index 00000000..e154b41a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m4.nbt new file mode 100644 index 00000000..3d03b2d6 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m5.nbt new file mode 100644 index 00000000..35b6ac0e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m6.nbt new file mode 100644 index 00000000..2b242d78 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m7.nbt new file mode 100644 index 00000000..07dd3865 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m8.nbt new file mode 100644 index 00000000..811edd17 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m9.nbt new file mode 100644 index 00000000..ffd5a7c8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p0.nbt new file mode 100644 index 00000000..74401973 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p1.nbt new file mode 100644 index 00000000..9c72a350 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p10.nbt new file mode 100644 index 00000000..79610387 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p11.nbt new file mode 100644 index 00000000..ee0a4427 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p12.nbt new file mode 100644 index 00000000..97caff0e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p13.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p13.nbt new file mode 100644 index 00000000..073052ae Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p13.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p14.nbt new file mode 100644 index 00000000..bba066ee Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p2.nbt new file mode 100644 index 00000000..87e8c7e5 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p3.nbt new file mode 100644 index 00000000..c606a43c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p4.nbt new file mode 100644 index 00000000..8c893022 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p5.nbt new file mode 100644 index 00000000..5b1dec37 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p6.nbt new file mode 100644 index 00000000..a4034055 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p7.nbt new file mode 100644 index 00000000..ce51cfee Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p8.nbt new file mode 100644 index 00000000..4f2c711b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p9.nbt new file mode 100644 index 00000000..e5261c93 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p4_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m1.nbt new file mode 100644 index 00000000..53a34e4c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m10.nbt new file mode 100644 index 00000000..48c6beae Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m11.nbt new file mode 100644 index 00000000..9001e260 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m2.nbt new file mode 100644 index 00000000..32fb07f5 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m3.nbt new file mode 100644 index 00000000..22a9de63 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m4.nbt new file mode 100644 index 00000000..612777fe Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m5.nbt new file mode 100644 index 00000000..0a64d1ec Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m6.nbt new file mode 100644 index 00000000..24103baf Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m7.nbt new file mode 100644 index 00000000..d4ef54a5 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m8.nbt new file mode 100644 index 00000000..25031873 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m9.nbt new file mode 100644 index 00000000..1e73c16f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p0.nbt new file mode 100644 index 00000000..0bd7227f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p1.nbt new file mode 100644 index 00000000..53e2f455 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p10.nbt new file mode 100644 index 00000000..874a7534 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p11.nbt new file mode 100644 index 00000000..ea561d70 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p12.nbt new file mode 100644 index 00000000..4d3e4482 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p13.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p13.nbt new file mode 100644 index 00000000..7adc5310 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p13.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p2.nbt new file mode 100644 index 00000000..efada274 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p3.nbt new file mode 100644 index 00000000..358ad963 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p4.nbt new file mode 100644 index 00000000..985dbb65 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p5.nbt new file mode 100644 index 00000000..6fc1ef75 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p6.nbt new file mode 100644 index 00000000..6a12c4ba Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p7.nbt new file mode 100644 index 00000000..ac37c18c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p8.nbt new file mode 100644 index 00000000..abc6a472 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p9.nbt new file mode 100644 index 00000000..6a93a7df Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p5_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m1.nbt new file mode 100644 index 00000000..8ebc0b8f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m10.nbt new file mode 100644 index 00000000..0fd8c418 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m2.nbt new file mode 100644 index 00000000..63adadf0 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m3.nbt new file mode 100644 index 00000000..b647ccdf Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m4.nbt new file mode 100644 index 00000000..4c363f8e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m5.nbt new file mode 100644 index 00000000..46bdfc3e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m6.nbt new file mode 100644 index 00000000..1f0a4e71 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m7.nbt new file mode 100644 index 00000000..f4237dc8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m8.nbt new file mode 100644 index 00000000..3faa5d43 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m9.nbt new file mode 100644 index 00000000..4d6c31de Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p0.nbt new file mode 100644 index 00000000..1bb8d63d Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p1.nbt new file mode 100644 index 00000000..2bce3847 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p10.nbt new file mode 100644 index 00000000..cd7fe17a Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p11.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p11.nbt new file mode 100644 index 00000000..544f3406 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p11.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p12.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p12.nbt new file mode 100644 index 00000000..b68c1da8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p12.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p2.nbt new file mode 100644 index 00000000..8eb7461b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p3.nbt new file mode 100644 index 00000000..b6f770a8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p4.nbt new file mode 100644 index 00000000..f436cec0 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p5.nbt new file mode 100644 index 00000000..b417ff48 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p6.nbt new file mode 100644 index 00000000..a59f15cf Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p7.nbt new file mode 100644 index 00000000..50359a28 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p8.nbt new file mode 100644 index 00000000..ef7ae843 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p9.nbt new file mode 100644 index 00000000..9eb7319f Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p6_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m1.nbt new file mode 100644 index 00000000..82695ce2 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m10.nbt new file mode 100644 index 00000000..9967cf3b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m2.nbt new file mode 100644 index 00000000..b6022f5b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m3.nbt new file mode 100644 index 00000000..e667ec00 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m4.nbt new file mode 100644 index 00000000..cc1b7324 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m5.nbt new file mode 100644 index 00000000..55fd9e3b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m6.nbt new file mode 100644 index 00000000..637f9696 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m7.nbt new file mode 100644 index 00000000..09162ef8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m8.nbt new file mode 100644 index 00000000..3cf62caf Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m9.nbt new file mode 100644 index 00000000..653cc630 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_m9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p0.nbt new file mode 100644 index 00000000..4eb4d147 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p1.nbt new file mode 100644 index 00000000..48433e0b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p10.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p10.nbt new file mode 100644 index 00000000..c0f727a5 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p10.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p14.nbt new file mode 100644 index 00000000..640bcc35 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p2.nbt new file mode 100644 index 00000000..7edf0aa5 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p3.nbt new file mode 100644 index 00000000..a3f210d2 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p4.nbt new file mode 100644 index 00000000..864d371b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p5.nbt new file mode 100644 index 00000000..ffcb7497 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p6.nbt new file mode 100644 index 00000000..01cce988 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p7.nbt new file mode 100644 index 00000000..4a5141d0 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p8.nbt new file mode 100644 index 00000000..c473c5e8 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p9.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p9.nbt new file mode 100644 index 00000000..2a36b829 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p7_p9.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m1.nbt new file mode 100644 index 00000000..4d5588ae Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m2.nbt new file mode 100644 index 00000000..020243cf Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m3.nbt new file mode 100644 index 00000000..8723b0f9 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m4.nbt new file mode 100644 index 00000000..82fc2d17 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m5.nbt new file mode 100644 index 00000000..80a1cb66 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m6.nbt new file mode 100644 index 00000000..aee28190 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m7.nbt new file mode 100644 index 00000000..c9433c23 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m8.nbt new file mode 100644 index 00000000..89a32e1c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_m8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p0.nbt new file mode 100644 index 00000000..0f04d095 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p1.nbt new file mode 100644 index 00000000..cc1b35db Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p14.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p14.nbt new file mode 100644 index 00000000..bcd2f22b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p14.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p2.nbt new file mode 100644 index 00000000..d1de3f6e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p3.nbt new file mode 100644 index 00000000..58a93cda Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p4.nbt new file mode 100644 index 00000000..7df92c0c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p5.nbt new file mode 100644 index 00000000..df3b6be6 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p6.nbt new file mode 100644 index 00000000..6ea6dddc Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p7.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p7.nbt new file mode 100644 index 00000000..b9b92d73 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p7.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p8.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p8.nbt new file mode 100644 index 00000000..64e3f048 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p8_p8.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m1.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m1.nbt new file mode 100644 index 00000000..e9cc8c2b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m1.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m2.nbt new file mode 100644 index 00000000..0957b55c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m3.nbt new file mode 100644 index 00000000..e526562e Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m4.nbt new file mode 100644 index 00000000..9960dded Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m5.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m5.nbt new file mode 100644 index 00000000..2b5df36b Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m5.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m6.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m6.nbt new file mode 100644 index 00000000..d81d9b03 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_m6.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p0.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p0.nbt new file mode 100644 index 00000000..5a4f467c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p0.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p2.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p2.nbt new file mode 100644 index 00000000..d708c521 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p2.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p3.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p3.nbt new file mode 100644 index 00000000..bd4274d2 Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p3.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p4.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p4.nbt new file mode 100644 index 00000000..3e2deb1c Binary files /dev/null and b/common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles/p9_p4.nbt differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/tags/entity_type/queen_does_not_attack.json b/common-1.21.1/src/main/resources/data/antarchy/tags/entity_type/queen_does_not_attack.json new file mode 100644 index 00000000..59264160 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/tags/entity_type/queen_does_not_attack.json @@ -0,0 +1,13 @@ +{ + "replace": false, + "values": [ + "antarchy:manticore", + "antarchy:nightmare", + "antarchy:lucid", + "antarchy:reverie", + "antarchy:bed_bug", + "antarchy:creeping_horror", + "antarchy:lurking_terror", + "antarchy:jumpy_bug" + ] +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/worldgen/biome/wormy_caves.json b/common-1.21.1/src/main/resources/data/antarchy/worldgen/biome/wormy_caves.json new file mode 100644 index 00000000..709f910c --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/worldgen/biome/wormy_caves.json @@ -0,0 +1,84 @@ +{ + "has_precipitation": false, + "temperature": 0.82, + "downfall": 1.0, + "effects": { + "fog_color": 5738556, + "water_color": 4159204, + "water_fog_color": 2058784, + "sky_color": 5738556, + "foliage_color": 3158803, + "grass_color": 4943948, + "grass_color_modifier": "none", + "particle": { + "probability": 0.012, + "options": { + "type": "minecraft:spore_blossom_air" + } + }, + "music": { + "sound": "antarchy:music.game.cavaryn", + "min_delay": 600, + "max_delay": 1800, + "replace_current_music": true + } + }, + "spawn_costs": { + "antarchy:worm": { + "energy_budget": 0.55, + "charge": 0.32 + } + }, + "carvers": { + "air": [], + "liquid": [] + }, + "features": [ + [], + [], + [], + [], + [], + [], + [ + "antarchy:myrmite_coal_ore", + "antarchy:broodstone_uranium_ore", + "antarchy:broodstone_titanium_ore" + ], + [], + [], + [ + "antarchy:wormy_caves_mucus", + "antarchy:wormy_caves_creepvine", + "antarchy:wormy_caves_hanging_creeproots", + "antarchy:wormy_caves_molting_vines", + "antarchy:wormy_caves_ground_molting_vines" + ], + [] + ], + "creature_spawn_probability": 0.65, + "spawners": { + "monster": [ + { + "type": "antarchy:worm", + "weight": 35, + "minCount": 1, + "maxCount": 2 + } + ], + "creature": [], + "ambient": [ + { + "type": "minecraft:bat", + "weight": 1, + "minCount": 1, + "maxCount": 2 + } + ], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + } +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/worldgen/configured_feature/kings_tree_grid.json b/common-1.21.1/src/main/resources/data/antarchy/worldgen/configured_feature/kings_tree_grid.json new file mode 100644 index 00000000..95573198 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/worldgen/configured_feature/kings_tree_grid.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:kings_tree_grid", + "config": {} +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/worldgen/configured_feature/wormy_caves_mucus.json b/common-1.21.1/src/main/resources/data/antarchy/worldgen/configured_feature/wormy_caves_mucus.json new file mode 100644 index 00000000..cd829c25 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/worldgen/configured_feature/wormy_caves_mucus.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:multiface_growth", + "config": { + "block": "antarchy:mucus", + "search_range": 16, + "can_place_on_floor": true, + "can_place_on_ceiling": true, + "can_place_on_wall": true, + "chance_of_spreading": 0.72, + "can_be_placed_on": [ + "antarchy:loam", + "minecraft:mud", + "antarchy:myrmite" + ] + } +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/kings_tree_grid.json b/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/kings_tree_grid.json new file mode 100644 index 00000000..1606d647 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/kings_tree_grid.json @@ -0,0 +1,4 @@ +{ + "feature": "antarchy:kings_tree_grid", + "placement": [] +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_creepvine.json b/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_creepvine.json new file mode 100644 index 00000000..eccfb999 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_creepvine.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:cavaryn_creepvine", + "placement": [ + { + "type": "minecraft:count", + "count": 28 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 8 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_ground_molting_vines.json b/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_ground_molting_vines.json new file mode 100644 index 00000000..d9985f9a --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_ground_molting_vines.json @@ -0,0 +1,31 @@ +{ + "feature": "antarchy:ground_molting_vines", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 10, + "max_inclusive": 16 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 8 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_hanging_creeproots.json b/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_hanging_creeproots.json new file mode 100644 index 00000000..49f6cf24 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_hanging_creeproots.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:hanging_creeproots", + "placement": [ + { + "type": "minecraft:count", + "count": 32 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 8 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_molting_vines.json b/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_molting_vines.json new file mode 100644 index 00000000..44af6c83 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_molting_vines.json @@ -0,0 +1,31 @@ +{ + "feature": "antarchy:molting_vines", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 12, + "max_inclusive": 18 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 8 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_mucus.json b/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_mucus.json new file mode 100644 index 00000000..2ed3df08 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/worldgen/placed_feature/wormy_caves_mucus.json @@ -0,0 +1,31 @@ +{ + "feature": "antarchy:wormy_caves_mucus", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 64, + "max_inclusive": 96 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 8 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/worldgen/structure_set/elythia_rare.json b/common-1.21.1/src/main/resources/data/antarchy/worldgen/structure_set/elythia_rare.json index 88f980cb..8d7cb57d 100644 --- a/common-1.21.1/src/main/resources/data/antarchy/worldgen/structure_set/elythia_rare.json +++ b/common-1.21.1/src/main/resources/data/antarchy/worldgen/structure_set/elythia_rare.json @@ -35,10 +35,6 @@ { "structure": "antarchy:toreterror_arena", "weight": 6 - }, - { - "structure": "antarchy:kings_tree", - "weight": 1 } ], "placement": { diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabric.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabric.java index 7edab2bd..c4007a3c 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabric.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabric.java @@ -116,6 +116,10 @@ public final class AntarchyFabric implements ModInitializer { Registries.PLACED_FEATURE, new ResourceLocation(Antarchy.MODID, "titanium_ore") ); + private static final ResourceKey KINGS_TREE_GRID = ResourceKey.create( + Registries.PLACED_FEATURE, + new ResourceLocation(Antarchy.MODID, "kings_tree_grid") + ); private static final ResourceKey FLOWER_FOREST_MILKWEED = ResourceKey.create( Registries.PLACED_FEATURE, new ResourceLocation(Antarchy.MODID, "flower_forest_milkweed") @@ -262,6 +266,11 @@ public final class AntarchyFabric implements ModInitializer { GenerationStep.Decoration.UNDERGROUND_ORES, TITANIUM_ORE ); + BiomeModifications.addFeature( + BiomeSelectors.tag(IS_ELYTHIA), + GenerationStep.Decoration.VEGETAL_DECORATION, + KINGS_TREE_GRID + ); BiomeModifications.addFeature( BiomeSelectors.tag(MILKWEED_SPAWN_BIOMES), GenerationStep.Decoration.VEGETAL_DECORATION, diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java index 8d993f74..15c782d9 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java @@ -448,7 +448,9 @@ public final class AntarchyFabricContent { com.craisinlord.antarchy.content.time.TimeDilationApi.setFieldSyncDispatcher( com.craisinlord.antarchy.fabric.network.AntarchyFabricTimeDilationNetworking::syncFields); AntarchyObjects.setTimeDilationField(() -> AntarchyFabricEntities.TIME_DILATION_FIELD.get()); + AntarchyObjects.setRoyalAssailantBlackHole(() -> AntarchyFabricEntities.ROYAL_ASSAILANT_BLACK_HOLE.get()); AntarchyObjects.setDilatedEffect(() -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.DILATED)); + AntarchyObjects.setContractedEffect(() -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.CONTRACTED)); com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.setSendToPlayer((player, payload) -> AntarchyFabricNetworking.sendToPlayer(player, payload, com.craisinlord.antarchy.content.network.TigerEyeCamouflageStatePayload.STREAM_CODEC, diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java index 537fda08..f10d5dd6 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java @@ -125,6 +125,7 @@ public final class AntarchyFabricClientBootstrap { EntityRendererRegistry.register(AntarchyFabricEntities.NIGHTMARE_BITE.get(), NightmareBiteRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.DIMENSIONAL_TEAR.get(), DimensionalTearRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.TIME_DILATION_FIELD.get(), TimeDilationFieldRenderer::new); + EntityRendererRegistry.register(AntarchyFabricEntities.ROYAL_ASSAILANT_BLACK_HOLE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalAssailantBlackHoleRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.LUCID.get(), LucidRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.BED_BUG.get(), BedBugRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.WASP.get(), WaspRenderer::new); @@ -455,6 +456,8 @@ public final class AntarchyFabricClientBootstrap { registrationHelper.register(new GlimmeringLivingLayer(playerRenderer)); registrationHelper.register(new BrutalflyElytraLayer(playerRenderer)); registrationHelper.register(new FallenKingCrownLayer(playerRenderer)); + registrationHelper.register(new com.craisinlord.antarchy.content.client.renderer.TemporalContractionAfterimageLayer(playerRenderer)); + registrationHelper.register(new com.craisinlord.antarchy.content.client.renderer.RoyalAssailantAxeAfterimageLayer(playerRenderer)); } return; } @@ -467,11 +470,13 @@ public final class AntarchyFabricClientBootstrap { (software.bernie.geckolib.renderer.GeoEntityRenderer) (Object) renderer; geoRenderer.addRenderLayer(new ParalyzedStoneGeoLayer(geoRenderer)); geoRenderer.addRenderLayer(new GoopedGeoLayer(geoRenderer)); + geoRenderer.addRenderLayer(new com.craisinlord.antarchy.content.client.renderer.TemporalContractionGeoLayer(geoRenderer)); return; } registrationHelper.register(new ParalyzedStoneLivingLayer(renderer)); registrationHelper.register(new GoopedLivingLayer(renderer)); registrationHelper.register(new GlimmeringLivingLayer(renderer)); + registrationHelper.register(new com.craisinlord.antarchy.content.client.renderer.TemporalContractionAfterimageLayer(renderer)); }); } @@ -479,6 +484,7 @@ public final class AntarchyFabricClientBootstrap { ClientTickEvents.END_CLIENT_TICK.register(client -> { if (client.level != null) { com.craisinlord.antarchy.content.client.ClientTimeDilationTicker.tick(client.level); + com.craisinlord.antarchy.content.client.ContractionAfterimages.tick(client.level); } CameraShakeClientState.tick(); HerculesBeetleImpactShakeClientState.tick(); diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/content/fluid/AntiwaterFluid.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/content/fluid/AntiwaterFluid.java index 9b32a774..8ae24da3 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/content/fluid/AntiwaterFluid.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/content/fluid/AntiwaterFluid.java @@ -1,4 +1,6 @@ package com.craisinlord.antarchy.fabric.content.fluid; + +import com.craisinlord.antarchy.content.fluid.AntiwaterBubbleColumnUtil; import com.craisinlord.antarchy.fabric.registry.AntarchyFabricBlocks; import com.craisinlord.antarchy.fabric.registry.AntarchyFabricItems; import com.craisinlord.antarchy.fabric.registry.AntarchyFabricMisc; @@ -169,6 +171,8 @@ public abstract class AntiwaterFluid extends FlowingFluid { return; } + AntiwaterBubbleColumnUtil.update(level, pos, state); + if (!state.isSource() && !this.isFlowingStateValid(level, pos, state)) { level.setBlockAndUpdate(pos, net.minecraft.world.level.block.Blocks.AIR.defaultBlockState()); this.scheduleCleanup(level, pos); diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricTimeDilationNetworking.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricTimeDilationNetworking.java new file mode 100644 index 00000000..7b69caa7 --- /dev/null +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricTimeDilationNetworking.java @@ -0,0 +1,38 @@ +package com.craisinlord.antarchy.fabric.network; + +import com.craisinlord.antarchy.content.network.TimeDilationFieldsPayload; +import com.craisinlord.antarchy.content.network.TimeDilationRatePayload; +import com.craisinlord.antarchy.content.time.TimeDilationFieldSnapshot; +import com.craisinlord.antarchy.content.time.TimeDilationApi; +import java.util.List; +import net.fabricmc.fabric.api.networking.v1.PlayerLookup; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.Entity; + +public final class AntarchyFabricTimeDilationNetworking { + private AntarchyFabricTimeDilationNetworking() {} + + public static void syncRate(Entity entity, double rate) { + TimeDilationRatePayload payload = new TimeDilationRatePayload(entity.getUUID(), rate); + for (ServerPlayer player : PlayerLookup.tracking(entity)) { + AntarchyFabricNetworking.sendToPlayer(player, payload, TimeDilationRatePayload.STREAM_CODEC, TimeDilationRatePayload.TYPE); + } + if (entity instanceof ServerPlayer player) { + AntarchyFabricNetworking.sendToPlayer(player, payload, TimeDilationRatePayload.STREAM_CODEC, TimeDilationRatePayload.TYPE); + } + } + + public static void syncRateToPlayer(ServerPlayer player, Entity entity, double rate) { + TimeDilationRatePayload payload = new TimeDilationRatePayload(entity.getUUID(), rate); + AntarchyFabricNetworking.sendToPlayer(player, payload, TimeDilationRatePayload.STREAM_CODEC, TimeDilationRatePayload.TYPE); + } + + public static void syncFields(ServerPlayer player, List fields) { + AntarchyFabricNetworking.sendToPlayer(player, new TimeDilationFieldsPayload(fields), + TimeDilationFieldsPayload.STREAM_CODEC, TimeDilationFieldsPayload.TYPE); + } + + public static void handleRate(Entity ignored, TimeDilationRatePayload payload) { + TimeDilationApi.applySyncedRate(payload.entityUuid(), payload.rate()); + } +} diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java index 9caf3c67..39ccff3e 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java @@ -468,6 +468,14 @@ public final class AntarchyFabricEntities { .updateInterval(20) .build("time_dilation_field")); + public static final DeferredHolder, EntityType> ROYAL_ASSAILANT_BLACK_HOLE = ENTITY_TYPES.register("royal_assailant_black_hole", + () -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.royal.RoyalAssailantBlackHoleEntity::new, MobCategory.MISC) + .sized(1.0F, 1.0F) + .clientTrackingRange(16) + .updateInterval(2) + .fireImmune() + .build("royal_assailant_black_hole")); + public static final DeferredHolder, EntityType> TORETERROR = ENTITY_TYPES.register("toreterror", () -> EntityType.Builder.of(ToreterrorEntity::new, MobCategory.MONSTER) diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java index 893dca03..9310f860 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java @@ -30,6 +30,7 @@ import com.craisinlord.antarchy.content.effect.ParalyzedMobEffect; import com.craisinlord.antarchy.content.effect.ShrinkMobEffect; import com.craisinlord.antarchy.content.effect.StinkyMobEffect; import com.craisinlord.antarchy.content.effect.DilatedMobEffect; +import com.craisinlord.antarchy.content.effect.ContractedMobEffect; import com.craisinlord.antarchy.content.worldgen.elythia.CoralSpikeFeature; import com.craisinlord.antarchy.content.worldgen.elythia.ElythiaBiomeSource; import com.craisinlord.antarchy.content.worldgen.elythia.ElythiaRiverCarveFunction; @@ -49,6 +50,7 @@ import com.craisinlord.antarchy.content.worldgen.elythia.LumenPoolFeature; import com.craisinlord.antarchy.content.worldgen.elythia.LumenLilyPadFeature; import com.craisinlord.antarchy.content.worldgen.elythia.LumenStreamFeature; import com.craisinlord.antarchy.content.worldgen.elythia.LumenSpireFeature; +import com.craisinlord.antarchy.content.worldgen.elythia.KingsTreeGridFeature; import com.craisinlord.antarchy.content.worldgen.elythia.MolewormTunnelsFeature; import com.craisinlord.antarchy.content.worldgen.elythia.MolewormWarrensFeature; import com.craisinlord.antarchy.content.worldgen.elythia.OuranwoodCocoonTreeFeature; @@ -350,6 +352,7 @@ public final class AntarchyFabricMisc { public static final DeferredHolder INVERTED = MOB_EFFECTS.register("inverted", InvertedMobEffect::new); public static final DeferredHolder DILATED = MOB_EFFECTS.register("dilated", DilatedMobEffect::new); + public static final DeferredHolder CONTRACTED = MOB_EFFECTS.register("contracted", ContractedMobEffect::new); public static final DeferredHolder STINKY = MOB_EFFECTS.register("stinky", StinkyMobEffect::new); @@ -569,6 +572,9 @@ public final class AntarchyFabricMisc { public static final DeferredHolder, ElythiaFloraFeature> ELYTHIA_FOREST_FLORA = FEATURES.register("elythia_forest_flora", () -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.FOREST)); + public static final DeferredHolder, KingsTreeGridFeature> KINGS_TREE_GRID = FEATURES.register("kings_tree_grid", + () -> new KingsTreeGridFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, ElythiaFloraFeature> ELYTHIA_MEADOW_FLORA = FEATURES.register("elythia_meadow_flora", () -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.MEADOW)); diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabric.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabric.java index 2b1701de..2982e304 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabric.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabric.java @@ -116,6 +116,10 @@ public final class AntarchyFabric implements ModInitializer { Registries.PLACED_FEATURE, ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "titanium_ore") ); + private static final ResourceKey KINGS_TREE_GRID = ResourceKey.create( + Registries.PLACED_FEATURE, + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "kings_tree_grid") + ); private static final ResourceKey FLOWER_FOREST_MILKWEED = ResourceKey.create( Registries.PLACED_FEATURE, ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "flower_forest_milkweed") @@ -263,6 +267,11 @@ public final class AntarchyFabric implements ModInitializer { GenerationStep.Decoration.UNDERGROUND_ORES, TITANIUM_ORE ); + BiomeModifications.addFeature( + BiomeSelectors.tag(IS_ELYTHIA), + GenerationStep.Decoration.VEGETAL_DECORATION, + KINGS_TREE_GRID + ); BiomeModifications.addFeature( BiomeSelectors.tag(MILKWEED_SPAWN_BIOMES), GenerationStep.Decoration.VEGETAL_DECORATION, 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 8182b37e..5f583546 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 @@ -410,7 +410,7 @@ public final class AntarchyFabricBlocks { public static final DeferredBlock ROYAL_FLOWERING_LEAVES = BLOCKS.register("royal_flowering_leaves", - () -> new com.craisinlord.antarchy.content.block.RoyalLeavesBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LEAVES).randomTicks())); + () -> new com.craisinlord.antarchy.content.block.RoyalLeavesBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LEAVES).randomTicks().lightLevel(state -> 12))); public static final DeferredBlock ROYAL_SAPLING = BLOCKS.register("royal_sapling", 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 107ca7fd..be3c825b 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 @@ -54,6 +54,7 @@ import com.craisinlord.antarchy.content.worldgen.elythia.LumenPoolFeature; import com.craisinlord.antarchy.content.worldgen.elythia.LumenLilyPadFeature; import com.craisinlord.antarchy.content.worldgen.elythia.LumenStreamFeature; import com.craisinlord.antarchy.content.worldgen.elythia.LumenSpireFeature; +import com.craisinlord.antarchy.content.worldgen.elythia.KingsTreeGridFeature; import com.craisinlord.antarchy.content.worldgen.elythia.MolewormTunnelsFeature; import com.craisinlord.antarchy.content.worldgen.elythia.MolewormWarrensFeature; import com.craisinlord.antarchy.content.worldgen.elythia.OuranwoodCocoonTreeFeature; @@ -635,6 +636,9 @@ public final class AntarchyFabricMisc { public static final DeferredHolder, RoyalTreeFeature> ROYAL_TREE_FEATURE = FEATURES.register("royal_tree", () -> new RoyalTreeFeature(RoyalTreeConfiguration.CODEC)); + public static final DeferredHolder, KingsTreeGridFeature> KINGS_TREE_GRID = FEATURES.register("kings_tree_grid", + () -> new KingsTreeGridFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, ElythiaFloraFeature> ELYTHIA_FOREST_FLORA = FEATURES.register("elythia_forest_flora", () -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.FOREST)); diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyForge.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyForge.java index 76aced34..66afd8ec 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyForge.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyForge.java @@ -367,7 +367,9 @@ public class AntarchyForge { AntarchyObjects.setSpiritApple(() -> AntarchyForgeItems.SPIRIT_APPLE.get()); AntarchyObjects.setGlimmeringEffect(() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.GLIMMERING)); AntarchyObjects.setTimeDilationField(() -> AntarchyForgeEntites.TIME_DILATION_FIELD.get()); + AntarchyObjects.setRoyalAssailantBlackHole(() -> AntarchyForgeEntites.ROYAL_ASSAILANT_BLACK_HOLE.get()); AntarchyObjects.setDilatedEffect(() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.DILATED)); + AntarchyObjects.setContractedEffect(() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.CONTRACTED)); AntarchyObjects.setElka(AntarchyForgeEntites.ELKA); AntarchyObjects.setPeach(() -> AntarchyForgeItems.PEACH.get()); AntarchyObjects.setCorn(() -> AntarchyForgeItems.CORN.get()); diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/client/AntarchyForgeClient.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/client/AntarchyForgeClient.java index 6b07b078..dc7ba2ae 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/client/AntarchyForgeClient.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/client/AntarchyForgeClient.java @@ -127,6 +127,7 @@ public final class AntarchyForgeClient { event.registerEntityRenderer(AntarchyForgeEntites.NIGHTMARE_BITE.get(), NightmareBiteRenderer::new); event.registerEntityRenderer(AntarchyForgeEntites.DIMENSIONAL_TEAR.get(), DimensionalTearRenderer::new); event.registerEntityRenderer(AntarchyForgeEntites.TIME_DILATION_FIELD.get(), TimeDilationFieldRenderer::new); + event.registerEntityRenderer(AntarchyForgeEntites.ROYAL_ASSAILANT_BLACK_HOLE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalAssailantBlackHoleRenderer::new); event.registerEntityRenderer(AntarchyForgeEntites.LUCID.get(), context -> withParalyzedGeoLayer(new LucidRenderer(context))); event.registerEntityRenderer(AntarchyForgeEntites.BED_BUG.get(), context -> withParalyzedGeoLayer(new BedBugRenderer(context))); event.registerEntityRenderer(AntarchyForgeEntites.WASP.get(), context -> withParalyzedGeoLayer(new WaspRenderer(context))); @@ -174,6 +175,8 @@ public final class AntarchyForgeClient { renderer.addLayer(new GlimmeringLivingLayer(renderer)); renderer.addLayer(new BrutalflyElytraLayer(renderer)); renderer.addLayer(new FallenKingCrownLayer(renderer)); + renderer.addLayer(new com.craisinlord.antarchy.content.client.renderer.TemporalContractionAfterimageLayer(renderer)); + renderer.addLayer(new com.craisinlord.antarchy.content.client.renderer.RoyalAssailantAxeAfterimageLayer(renderer)); } } LivingEntityRenderer armorStandRenderer = @@ -211,11 +214,13 @@ public final class AntarchyForgeClient { livingRenderer.addLayer(new ParalyzedStoneLivingLayer<>(livingRenderer)); livingRenderer.addLayer(new GoopedLivingLayer<>(livingRenderer)); livingRenderer.addLayer(new GlimmeringLivingLayer<>(livingRenderer)); + livingRenderer.addLayer(new com.craisinlord.antarchy.content.client.renderer.TemporalContractionAfterimageLayer(livingRenderer)); } private static GeoEntityRenderer withParalyzedGeoLayer(GeoEntityRenderer renderer) { renderer.addRenderLayer(new ParalyzedStoneGeoLayer<>(renderer)); renderer.addRenderLayer(new GoopedGeoLayer<>(renderer)); + renderer.addRenderLayer(new com.craisinlord.antarchy.content.client.renderer.TemporalContractionGeoLayer<>(renderer)); return renderer; } diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/client/ClientTimeDilationHandler.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/client/ClientTimeDilationHandler.java new file mode 100644 index 00000000..c314ee3a --- /dev/null +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/client/ClientTimeDilationHandler.java @@ -0,0 +1,25 @@ +package com.craisinlord.antarchy.forge.client; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.client.ClientTimeDilationTicker; +import net.minecraft.client.Minecraft; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.event.TickEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; + +@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.FORGE) +public final class ClientTimeDilationHandler { + private ClientTimeDilationHandler() {} + + @SubscribeEvent + public static void onClientTick(TickEvent.ClientTickEvent event) { + if (event.phase == TickEvent.Phase.END) { + Minecraft mc = Minecraft.getInstance(); + if (mc.level != null) { + ClientTimeDilationTicker.tick(mc.level); + com.craisinlord.antarchy.content.client.ContractionAfterimages.tick(mc.level); + } + } + } +} diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/content/fluid/AntiwaterFluid.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/content/fluid/AntiwaterFluid.java index a8a56866..f1ebadb9 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/content/fluid/AntiwaterFluid.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/content/fluid/AntiwaterFluid.java @@ -1,5 +1,7 @@ package com.craisinlord.antarchy.forge.content.fluid; +import com.craisinlord.antarchy.content.fluid.AntiwaterBubbleColumnUtil; + import com.craisinlord.antarchy.forge.registry.AntarchyForgeBlocks; import java.util.HashSet; import java.util.Set; @@ -173,6 +175,8 @@ public abstract class AntiwaterFluid extends ForgeFlowingFluid { return; } + AntiwaterBubbleColumnUtil.update(level, pos, state); + if (!state.isSource() && !this.isFlowingStateValid(level, pos, state)) { level.setBlockAndUpdate(pos, net.minecraft.world.level.block.Blocks.AIR.defaultBlockState()); this.scheduleCleanup(level, pos); diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/network/AntarchyTimeDilationNetworking.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/network/AntarchyTimeDilationNetworking.java new file mode 100644 index 00000000..e98a3912 --- /dev/null +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/network/AntarchyTimeDilationNetworking.java @@ -0,0 +1,31 @@ +package com.craisinlord.antarchy.forge.network; + +import com.craisinlord.antarchy.content.network.TimeDilationFieldsPayload; +import com.craisinlord.antarchy.content.network.TimeDilationRatePayload; +import com.craisinlord.antarchy.content.time.TimeDilationFieldSnapshot; +import java.util.List; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.Entity; + +public final class AntarchyTimeDilationNetworking { + private AntarchyTimeDilationNetworking() {} + + public static void register() { + AntarchyForgeNetworkCore.registerS2C(TimeDilationRatePayload.class, TimeDilationRatePayload.STREAM_CODEC, + payload -> com.craisinlord.antarchy.content.time.TimeDilationApi.applySyncedRate(payload.entityUuid(), payload.rate())); + AntarchyForgeNetworkCore.registerS2C(TimeDilationFieldsPayload.class, TimeDilationFieldsPayload.STREAM_CODEC, + payload -> com.craisinlord.antarchy.content.client.ClientTimeDilationTicker.applyFields(payload.fields())); + } + + public static void syncRate(Entity entity, double rate) { + AntarchyForgeNetworkCore.sendToTrackingEntity(entity, new TimeDilationRatePayload(entity.getUUID(), rate)); + } + + public static void syncRateToPlayer(ServerPlayer player, Entity entity, double rate) { + AntarchyForgeNetworkCore.sendToPlayer(player, new TimeDilationRatePayload(entity.getUUID(), rate)); + } + + public static void syncFields(ServerPlayer player, List fields) { + AntarchyForgeNetworkCore.sendToPlayer(player, new TimeDilationFieldsPayload(fields)); + } +} diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeEntites.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeEntites.java index d4f11c83..066610d4 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeEntites.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeEntites.java @@ -435,6 +435,13 @@ public final class AntarchyForgeEntites { .clientTrackingRange(16) .updateInterval(20) .build("time_dilation_field")); + public static final RegistryObject> ROYAL_ASSAILANT_BLACK_HOLE = ENTITY_TYPES.register("royal_assailant_black_hole", + () -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.royal.RoyalAssailantBlackHoleEntity::new, MobCategory.MISC) + .sized(1.0F, 1.0F) + .clientTrackingRange(16) + .updateInterval(2) + .fireImmune() + .build("royal_assailant_black_hole")); private AntarchyForgeEntites() {} diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeMisc.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeMisc.java index 2252ade7..668b0b81 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeMisc.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeMisc.java @@ -11,6 +11,7 @@ import com.craisinlord.antarchy.content.effect.ParalyzedMobEffect; import com.craisinlord.antarchy.content.effect.ShrinkMobEffect; import com.craisinlord.antarchy.content.effect.StinkyMobEffect; import com.craisinlord.antarchy.content.effect.DilatedMobEffect; +import com.craisinlord.antarchy.content.effect.ContractedMobEffect; import com.craisinlord.antarchy.content.recipe.AmericanizeRecipe; import com.craisinlord.antarchy.content.worldgen.ants.BrownAntNestFeature; import com.craisinlord.antarchy.content.worldgen.ants.RainbowAntNestFeature; @@ -100,6 +101,7 @@ public final class AntarchyForgeMisc { public static final RegistryObject PARALYZED = MOB_EFFECTS.register("paralyzed", ParalyzedMobEffect::new); public static final RegistryObject INVERTED = MOB_EFFECTS.register("inverted", InvertedMobEffect::new); public static final RegistryObject DILATED = MOB_EFFECTS.register("dilated", DilatedMobEffect::new); + public static final RegistryObject CONTRACTED = MOB_EFFECTS.register("contracted", ContractedMobEffect::new); public static final RegistryObject STINKY = MOB_EFFECTS.register("stinky", StinkyMobEffect::new); public static final RegistryObject GOOPED = MOB_EFFECTS.register("gooped", GoopedMobEffect::new); public static final RegistryObject BLOODGLASS_WARD = MOB_EFFECTS.register("bloodglass_ward", com.craisinlord.antarchy.content.effect.BloodglassWardEffect::new); @@ -220,6 +222,9 @@ public final class AntarchyForgeMisc { () -> new PeachTreeFeature(PeachTreeConfiguration.CODEC)); public static final RegistryObject ELYTHIA_FOREST_FLORA = FEATURES.register("elythia_forest_flora", () -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.FOREST)); + + public static final RegistryObject KINGS_TREE_GRID = FEATURES.register("kings_tree_grid", + () -> new KingsTreeGridFeature(NoneFeatureConfiguration.CODEC)); public static final RegistryObject ELYTHIA_MEADOW_FLORA = FEATURES.register("elythia_meadow_flora", () -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.MEADOW)); public static final RegistryObject PEACH_FOREST_FLORA = FEATURES.register("peach_forest_flora", 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 0e35c95d..87b243e5 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 @@ -239,7 +239,7 @@ public final class AntarchyNeoforgeBlocks { public static final DeferredBlock ROYAL_LEAVES = BLOCKS.register("royal_leaves", () -> new RoyalLeavesBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LEAVES).randomTicks())); public static final DeferredBlock ROYAL_FLOWERING_LEAVES = BLOCKS.register("royal_flowering_leaves", - () -> new RoyalLeavesBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LEAVES).randomTicks())); + () -> new RoyalLeavesBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LEAVES).randomTicks().lightLevel(state -> 12))); public static final DeferredBlock ROYAL_SAPLING = BLOCKS.register("royal_sapling", () -> new RoyalSaplingBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).noCollission())); public static final DeferredBlock POTTED_ROYAL_SAPLING = BLOCKS.register("potted_royal_sapling", 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 601d6bce..5bfae5f0 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 @@ -270,6 +270,8 @@ public final class AntarchyNeoforgeMisc { () -> new TruffaloTreeFeature(TruffaloTreeConfiguration.CODEC)); public static final DeferredHolder, RoyalTreeFeature> ROYAL_TREE_FEATURE = FEATURES.register("royal_tree", () -> new RoyalTreeFeature(RoyalTreeConfiguration.CODEC)); + public static final DeferredHolder, KingsTreeGridFeature> KINGS_TREE_GRID = FEATURES.register("kings_tree_grid", + () -> new KingsTreeGridFeature(NoneFeatureConfiguration.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/resources/data/antarchy/neoforge/biome_modifier/kings_tree_grid_in_elythia.json b/neoforge-1.21.1/src/main/resources/data/antarchy/neoforge/biome_modifier/kings_tree_grid_in_elythia.json new file mode 100644 index 00000000..4aac60a3 --- /dev/null +++ b/neoforge-1.21.1/src/main/resources/data/antarchy/neoforge/biome_modifier/kings_tree_grid_in_elythia.json @@ -0,0 +1,8 @@ +{ + "type": "neoforge:add_features", + "biomes": "#antarchy:is_elythia", + "features": [ + "antarchy:kings_tree_grid" + ], + "step": "vegetal_decoration" +} diff --git a/tools/split_kings_tree_nbt.mjs b/tools/split_kings_tree_nbt.mjs new file mode 100644 index 00000000..be924348 --- /dev/null +++ b/tools/split_kings_tree_nbt.mjs @@ -0,0 +1,330 @@ +import fs from "node:fs"; +import path from "node:path"; +import zlib from "node:zlib"; + +const TAG = { + END: 0, + BYTE: 1, + SHORT: 2, + INT: 3, + LONG: 4, + FLOAT: 5, + DOUBLE: 6, + BYTE_ARRAY: 7, + STRING: 8, + LIST: 9, + COMPOUND: 10, + INT_ARRAY: 11, + LONG_ARRAY: 12 +}; + +class Reader { + constructor(buffer) { + this.buffer = buffer; + this.offset = 0; + } + + byte() { return this.buffer.readInt8(this.offset++); } + ushort() { const value = this.buffer.readUInt16BE(this.offset); this.offset += 2; return value; } + short() { const value = this.buffer.readInt16BE(this.offset); this.offset += 2; return value; } + int() { const value = this.buffer.readInt32BE(this.offset); this.offset += 4; return value; } + long() { const value = this.buffer.readBigInt64BE(this.offset); this.offset += 8; return value; } + float() { const value = this.buffer.readFloatBE(this.offset); this.offset += 4; return value; } + double() { const value = this.buffer.readDoubleBE(this.offset); this.offset += 8; return value; } + string() { const length = this.ushort(); const value = this.buffer.toString("utf8", this.offset, this.offset + length); this.offset += length; return value; } + + payload(type) { + switch (type) { + case TAG.BYTE: return this.byte(); + case TAG.SHORT: return this.short(); + case TAG.INT: return this.int(); + case TAG.LONG: return this.long(); + case TAG.FLOAT: return this.float(); + case TAG.DOUBLE: return this.double(); + case TAG.BYTE_ARRAY: { + const length = this.int(); + const value = Buffer.from(this.buffer.subarray(this.offset, this.offset + length)); + this.offset += length; + return value; + } + case TAG.STRING: return this.string(); + case TAG.LIST: { + const elementType = this.byte(); + const length = this.int(); + const items = new Array(length); + for (let i = 0; i < length; i++) items[i] = this.payload(elementType); + return { elementType, items }; + } + case TAG.COMPOUND: { + const value = {}; + while (true) { + const childType = this.byte(); + if (childType === TAG.END) break; + value[this.string()] = { type: childType, value: this.payload(childType) }; + } + return value; + } + case TAG.INT_ARRAY: { + const length = this.int(); + const value = new Int32Array(length); + for (let i = 0; i < length; i++) value[i] = this.int(); + return value; + } + case TAG.LONG_ARRAY: { + const length = this.int(); + const value = new Array(length); + for (let i = 0; i < length; i++) value[i] = this.long(); + return value; + } + default: throw new Error(`Unsupported NBT tag type ${type}`); + } + } + + root() { + const type = this.byte(); + if (type !== TAG.COMPOUND) throw new Error(`Expected compound root, got ${type}`); + this.string(); + return { type, value: this.payload(type) }; + } +} + +class Writer { + constructor() { this.parts = []; } + push(buffer) { this.parts.push(buffer); } + byte(value) { const b = Buffer.allocUnsafe(1); b.writeInt8(value); this.push(b); } + short(value) { const b = Buffer.allocUnsafe(2); b.writeInt16BE(value); this.push(b); } + ushort(value) { const b = Buffer.allocUnsafe(2); b.writeUInt16BE(value); this.push(b); } + int(value) { const b = Buffer.allocUnsafe(4); b.writeInt32BE(value); this.push(b); } + long(value) { const b = Buffer.allocUnsafe(8); b.writeBigInt64BE(BigInt(value)); this.push(b); } + float(value) { const b = Buffer.allocUnsafe(4); b.writeFloatBE(value); this.push(b); } + double(value) { const b = Buffer.allocUnsafe(8); b.writeDoubleBE(value); this.push(b); } + string(value) { const b = Buffer.from(value, "utf8"); this.ushort(b.length); this.push(b); } + + payload(type, value) { + switch (type) { + case TAG.BYTE: this.byte(value); break; + case TAG.SHORT: this.short(value); break; + case TAG.INT: this.int(value); break; + case TAG.LONG: this.long(value); break; + case TAG.FLOAT: this.float(value); break; + case TAG.DOUBLE: this.double(value); break; + case TAG.BYTE_ARRAY: this.int(value.length); this.push(value); break; + case TAG.STRING: this.string(value); break; + case TAG.LIST: + this.byte(value.elementType); + this.int(value.items.length); + for (const item of value.items) this.payload(value.elementType, item); + break; + case TAG.COMPOUND: + for (const [name, child] of Object.entries(value)) { + this.byte(child.type); + this.string(name); + this.payload(child.type, child.value); + } + this.byte(TAG.END); + break; + case TAG.INT_ARRAY: + this.int(value.length); + for (const item of value) this.int(item); + break; + case TAG.LONG_ARRAY: + this.int(value.length); + for (const item of value) this.long(item); + break; + default: throw new Error(`Unsupported NBT tag type ${type}`); + } + } + + root(root) { + this.byte(TAG.COMPOUND); + this.string(""); + this.payload(TAG.COMPOUND, root.value); + return Buffer.concat(this.parts); + } +} + +const inputDir = path.resolve("common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree"); +const outputDir = path.resolve("common-1.21.1/src/main/resources/data/antarchy/structure/kings_tree_tiles"); +const Y_SHIFT = 22; +const TREE_HEIGHT = 358; +const CENTER_X = 137; +const CENTER_Z = 163; +const sources = [ + { file: "kings_tree_bottom.nbt", offset: [0, -22, 0] }, + { file: "kings_tree1.nbt", offset: [0, 0, 0] }, + { file: "kings_tree2.nbt", offset: [-40, 12, -52] }, + { file: "kings_tree3.nbt", offset: [-40, 149, -52] }, + { file: "kings_tree4.nbt", offset: [-54, 233, -64] } +]; +const expectedConnections = [ + ["kings_tree1.nbt", [287, 0, 363], "kings_tree_bottom.nbt", [287, 21, 363]], + ["kings_tree1.nbt", [274, 11, 363], "kings_tree2.nbt", [314, 0, 415]], + ["kings_tree2.nbt", [314, 136, 442], "kings_tree3.nbt", [314, 0, 442]], + ["kings_tree3.nbt", [314, 83, 420], "kings_tree4.nbt", [328, 0, 432]] +]; + +const intList = (...values) => ({ type: TAG.LIST, value: { elementType: TAG.INT, items: values } }); +const doubleList = (...values) => ({ type: TAG.LIST, value: { elementType: TAG.DOUBLE, items: values } }); +const floorDiv = (value, divisor) => Math.floor(value / divisor); +const floorMod = (value, divisor) => ((value % divisor) + divisor) % divisor; +const paletteKey = value => JSON.stringify(value, (_, item) => typeof item === "bigint" ? `${item}n` : item); +const tileNamePart = value => value < 0 ? `m${-value}` : `p${value}`; + +const tiles = new Map(); +const globalPalette = []; +const globalPaletteIds = new Map(); +let dataVersion; +let sourceBlockCount = 0; +let skippedMarkerCount = 0; +const jigsaws = new Map(); + +function getTile(tileX, tileZ) { + const key = `${tileX},${tileZ}`; + let tile = tiles.get(key); + if (!tile) { + tile = { tileX, tileZ, blocks: new Map(), entities: [] }; + tiles.set(key, tile); + } + return tile; +} + +function paletteId(stateTag) { + const key = paletteKey(stateTag); + let id = globalPaletteIds.get(key); + if (id === undefined) { + id = globalPalette.length; + globalPaletteIds.set(key, id); + globalPalette.push(stateTag); + } + return id; +} + +for (const source of sources) { + const compressed = fs.readFileSync(path.join(inputDir, source.file)); + const root = new Reader(zlib.gunzipSync(compressed)).root(); + dataVersion ??= root.value.DataVersion; + const paletteTag = root.value.palette; + if (!paletteTag || paletteTag.type !== TAG.LIST) throw new Error(`${source.file} has no primary palette`); + const palette = paletteTag.value.items; + const remap = palette.map(paletteId); + const blocks = root.value.blocks?.value.items ?? []; + sourceBlockCount += blocks.length; + + for (const block of blocks) { + const stateIndex = block.state.value; + const blockName = palette[stateIndex].Name.value; + if (blockName === "minecraft:jigsaw") { + jigsaws.set(`${source.file}:${block.pos.value.items.join(",")}`, { + state: palette[stateIndex], + nbt: block.nbt?.value ?? {} + }); + } + if (blockName === "minecraft:jigsaw" || blockName === "minecraft:structure_void" || blockName === "minecraft:structure_block") { + skippedMarkerCount++; + continue; + } + + const [x, y, z] = block.pos.value.items; + const relativeX = x + source.offset[0] - CENTER_X; + const relativeY = y + source.offset[1] + Y_SHIFT; + const relativeZ = z + source.offset[2] - CENTER_Z; + if (relativeY < 0 || relativeY >= TREE_HEIGHT) throw new Error(`${source.file} produced out-of-range Y ${relativeY}`); + const tileX = floorDiv(relativeX, 16); + const tileZ = floorDiv(relativeZ, 16); + const localX = floorMod(relativeX, 16); + const localZ = floorMod(relativeZ, 16); + const translated = { + ...block, + pos: intList(localX, relativeY, localZ), + state: { type: TAG.INT, value: remap[stateIndex] } + }; + getTile(tileX, tileZ).blocks.set(`${localX},${relativeY},${localZ}`, translated); + } + + const entities = root.value.entities?.value.items ?? []; + for (const entity of entities) { + const [blockX, blockY, blockZ] = entity.blockPos.value.items; + const [x, y, z] = entity.pos.value.items; + const relativeBlockX = blockX + source.offset[0] - CENTER_X; + const relativeBlockY = blockY + source.offset[1] + Y_SHIFT; + const relativeBlockZ = blockZ + source.offset[2] - CENTER_Z; + const tileX = floorDiv(relativeBlockX, 16); + const tileZ = floorDiv(relativeBlockZ, 16); + const tileOriginX = tileX * 16; + const tileOriginZ = tileZ * 16; + getTile(tileX, tileZ).entities.push({ + ...entity, + blockPos: intList(relativeBlockX - tileOriginX, relativeBlockY, relativeBlockZ - tileOriginZ), + pos: doubleList( + x + source.offset[0] - CENTER_X - tileOriginX, + y + source.offset[1] + Y_SHIFT, + z + source.offset[2] - CENTER_Z - tileOriginZ + ) + }); + } +} + +for (const [parentFile, parentPos, childFile, childPos] of expectedConnections) { + const parent = sources.find(source => source.file === parentFile); + const child = sources.find(source => source.file === childFile); + const parentJigsaw = jigsaws.get(`${parentFile}:${parentPos.join(",")}`); + const childJigsaw = jigsaws.get(`${childFile}:${childPos.join(",")}`); + if (!parentJigsaw || !childJigsaw) { + throw new Error(`Missing expected jigsaw connection between ${parentFile} and ${childFile}`); + } + const parentTarget = parentJigsaw.nbt.target?.value; + const childName = childJigsaw.nbt.name?.value; + if (parentTarget !== childName) { + throw new Error(`Jigsaw target mismatch: ${parentFile} targets ${parentTarget}, but ${childFile} is named ${childName}`); + } + const parentOrientation = parentJigsaw.state.Properties?.value.orientation?.value; + const childOrientation = childJigsaw.state.Properties?.value.orientation?.value; + console.log(`${parentFile} ${parentOrientation} -> ${childFile} ${childOrientation}`); + const [parentFront, parentTop] = parentOrientation.split("_"); + const [childFront, childTop] = childOrientation.split("_"); + const opposite = { up: "down", down: "up", north: "south", south: "north", east: "west", west: "east" }; + const facingStep = { + up: [0, 1, 0], down: [0, -1, 0], north: [0, 0, -1], + south: [0, 0, 1], east: [1, 0, 0], west: [-1, 0, 0] + }; + const parentWorld = parentPos.map((value, axis) => value + parent.offset[axis]); + const expectedChildWorld = parentWorld.map((value, axis) => value + facingStep[parentFront][axis]); + const childWorld = childPos.map((value, axis) => value + child.offset[axis]); + if (expectedChildWorld.some((value, axis) => value !== childWorld[axis])) { + throw new Error(`Misaligned jigsaw connection: ${parentFile} expects ${expectedChildWorld}, but ${childFile} is at ${childWorld}`); + } + if (opposite[parentFront] !== childFront) { + throw new Error(`Jigsaw facing mismatch: ${parentOrientation} cannot connect to ${childOrientation}`); + } + const joint = parentJigsaw.nbt.joint?.value ?? "rollable"; + if (joint === "aligned" && parentTop !== childTop) { + throw new Error(`Jigsaw ${parentFile} requires a rotated child: ${parentOrientation} vs ${childOrientation}`); + } +} + +fs.rmSync(outputDir, { recursive: true, force: true }); +fs.mkdirSync(outputDir, { recursive: true }); +let outputBlockCount = 0; +for (const tile of tiles.values()) { + if (tile.blocks.size === 0 && tile.entities.length === 0) continue; + const root = { + type: TAG.COMPOUND, + value: { + DataVersion: dataVersion, + size: intList(16, TREE_HEIGHT, 16), + palette: { type: TAG.LIST, value: { elementType: TAG.COMPOUND, items: globalPalette } }, + blocks: { type: TAG.LIST, value: { elementType: TAG.COMPOUND, items: [...tile.blocks.values()] } }, + entities: { type: TAG.LIST, value: { elementType: TAG.COMPOUND, items: tile.entities } } + } + }; + outputBlockCount += tile.blocks.size; + const encoded = new Writer().root(root); + const name = `${tileNamePart(tile.tileX)}_${tileNamePart(tile.tileZ)}.nbt`; + fs.writeFileSync(path.join(outputDir, name), zlib.gzipSync(encoded, { level: 9 })); +} + +console.log(`Read ${sourceBlockCount.toLocaleString()} blocks from ${sources.length} templates.`); +console.log(`Skipped ${skippedMarkerCount.toLocaleString()} structure marker blocks.`); +console.log(`Wrote ${outputBlockCount.toLocaleString()} blocks in ${tiles.size} chunk-local templates.`); +console.log(`Global palette contains ${globalPalette.length} block states.`); +console.log(`Validated ${expectedConnections.length} matching jigsaw connections.`);